• raspberry pi
  • National Centre for Computing Education logo

Networking with Python: Socket Programming for Communication

Discover how you can create networked applications in Python by using sockets. Supported by Google.

4,451 enrolled on this course

Networking with Python: Socket Programming for Communication
The CPD Certification Service

This course has been certified by the CPD Certification Service as conforming to continuing professional development principles. Find out more.

Build your practical network application skills and understanding

On this course from the Raspberry Pi Foundation, you’ll learn how to create programs that communicate over the internet.

You’ll explore the principles that industry professionals use when programming for networks, and learn how sockets are used to abstract the complexities of the internet.

In the final week, you’ll design and create your own protocol for a networked quiz that you’ll program using Python. This final challenge will help you to consolidate and apply your learning from the course.

Download video: standard or HD

Skip to 0 minutes and 2 seconds How can you communicate using the power of the internet? What is a protocol? How does data travel across a computer network? This free course will teach you how to program sockets using Python, how to transmit different types of data between a client and server and how to create your own protocols. You’ll also take part in practical activities to program a server and client for a quiz game to play over a network. This three week course also contains peer led discussions, trainer interaction, and feedback on your knowledge as you progress. You can learn whenever and wherever you want.

Skip to 0 minutes and 37 seconds So whether you’re a teacher with students of your own or simply want to boost your programming skills, this course will help you design and create network applications. Sign up now rpf.io/sockets.


  • Week 1


    • Introduction to the course

      Find out what you’ll be doing over the next three weeks and meet your course facilitators and fellow learners.

    • Networks and sockets

      Welcome to the world of network programming. You will investigate the layered model and client/server relationships and be introduced to sockets.

    • Sockets and Python

      How can you create and use sockets in your Python programs?

    • Handling two-way messaging

      Use Python and sockets to create a two-way messaging system with which you can send messages across the internet.

    • End of week one

      Review your learning from the week.

  • Week 2

    Dealing with lossy communications

    • Unreliable and reliable communication

      Meet a new protocol — UDP — and find out the differences between unreliable and reliable communication.

    • Python and UDP

      Unreliable communication can be used to send a lot of data very quickly. Create a UDP socket in Python and discover how they work.

    • Testing and simulating errors

      Proper testing is important to iron out the bugs in your programs. Testing techniques such as simulation can help you make sure your code is as bug-free as possible.

    • End of week two

      Test your understanding of network principles and review the week.

  • Week 3

    Designing and coding protocols

    • Welcome to week three

      Find out what you’ll learn in this final week, and take a moment to reflect on your learning so far.

    • Protocols

      In order to program networked applications, you need to understand the rules of networks - protocols! Learn how protocols work and how to create your own.

    • Design a networked quiz

      Start work on an amazing networked quiz machine to show off your new skills. The first step is to design the machine and the protocol it will use.

    • Coding your quiz

      Take the plans and designs you have made for your networked quiz and turn them into Python code.

    • Quiz royale

      Your quiz has taken shape, and it is now time to add your own touches to the project. You are going to make the quiz your own, playing the part of quiz master.

    • End of the course

      Wrap up the course and see where you can go next.

Who is this accredited by?

The CPD Certification Service
The CPD Certification Service:

The CPD Certification Service was established in 1996 and is the leading independent CPD accreditation institution operating across industry sectors to complement the CPD policies of professional and academic bodies.

When would you like to start?

Start straight away and learn at your own pace. If the course hasn’t started yet you’ll see the future date listed below.

  • Available now

What will you achieve?

By the end of the course, you‘ll be able to...

  • Describe the layers of the TCP/IP model
  • Produce Python programs using sockets
  • Demonstrate a knowledge of the life cycle of a socket
  • Compare reliable and unreliable communication
  • Develop a protocol of your own
  • Produce programs that use both TCP and UDP
  • Investigate the causes of network errors
  • Describe methods of correcting errors

Who is the course for?

This course is designed for teachers who deliver lessons on network principles in the classroom, at GCSE level or equivalent.

To take part in this course, you will need experience in the following areas of programming:

  • Using functions, including parameters and returns
  • Using multiple data types
  • Debugging Python programs

It may also be beneficial to have some experience with classes and methods.

Who will you learn with?

Hey, my name is Mac. I am a Learning Manager at The Raspberry Pi Foundation. I love teaching and digital making, especially when I get to do them both at the same time.

I love technology and creating projects and learning resources for Raspberry Pi. As a child I wanted to be either a computer scientist, astronaut or snowboard instructor.

Who developed the course?

Raspberry Pi Foundation

The Raspberry Pi Foundation works to put the power of digital making into the hands of people all over the world, so they are capable of understanding and shaping our increasingly digital world.

National Centre for Computing Education

National Centre for Computing Education courses


supported by

Google logo

Learning on FutureLearn

Your learning, your rules

  • Courses are split into weeks, activities, and steps, but you can complete them as quickly or slowly as you like
  • Learn through a mix of bite-sized videos, long- and short-form articles, audio, and practical activities
  • Stay motivated by using the Progress page to keep track of your step completion and assessment scores

Join a global classroom

  • Experience the power of social learning, and get inspired by an international network of learners
  • Share ideas with your peers and course educators on every step of the course
  • Join the conversation by reading, @ing, liking, bookmarking, and replying to comments from others

Map your progress

  • As you work through the course, use notifications and the Progress page to guide your learning
  • Whenever you’re ready, mark each step as complete, you’re in control
  • Complete 90% of course steps and all of the assessments to earn your certificate

Want to know more about learning on FutureLearn? Using FutureLearn

Learner reviews

Learner reviews cannot be loaded due to your cookie settings. Please enable all cookies and refresh the page to view this content.

Join this course

Start this couse for free, upgrade for extra benefits, or buy Unlimited to access this course and hundreds of other short courses for a year.



Join free and you will get:

  • Access to this course for 5 weeks



Upgrade this course and you will get:

  • Access to this course for as long as it’s on FutureLearn
  • A print and digital Certificate of Achievement once you’re eligible


$279.99 for one year

Buy Unlimited and you will get:

  • Access to this course, and hundreds of other FutureLearn short courses and tests for a year
  • A printable digital Certificate of Achievement on all short courses once you’re eligible
  • The freedom to keep access to any course you've achieved a digital Certificate of Achievement on, for as long as the course exists on FutureLearn
  • The flexibility to complete your choice of short courses in your own time within the year

Find out more about upgrades or Unlimited.

Do you know someone who'd love this course? Tell them about it...

You can use the hashtag #RPiLearn to talk about this course on social media.