• 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.

6,396 enrolled on this course

A PC character and a server character connected by a cable. They both are giving a "thumbs up". They are surrounded by items representing the course, including sockets, devices, messages and a pixellated cartoon of the Mona Lisa.

Networking with Python: Socket Programming for Communication

6,396 enrolled on this course

  • 3 weeks

  • 2 hours per week

  • Accreditation available

  • Digital certificate when eligible

  • Intermediate level

Find out more about how to join this course

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 join a global classroom of learners. If the course hasn’t started yet you’ll see the future date listed below.

  • Available now

Learning on this course

On every step of the course you can meet other learners, share your ideas and join in with active discussions in the comments.

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

This course is part of the National Centre for Computing Education (NCCE). Funded by the Department for Education and partners, we aim to change the way computing is taught in schools across England, and enable more young people to benefit from studying this important subject.

If you are a teacher in England you can get free upgraded access to this course, and use it towards NCCE certification. To do this, you must join the course through the Teach Computing website

Endorsers and supporters

supported by

Google logo

Ways to learn

Buy this course

Subscribe & save

Limited access

Choose the best way to learn for you!

$39/one-off payment



Automatically renews


Fulfill your current learning needDevelop skills to further your careerSample the course materials
Access to this courseticktick

Access expires 17 Dec 2022

Access to 1,000+ coursescrosstickcross
Learn at your own paceticktickcross
Discuss your learning in commentstickticktick
Certificate when you're eligiblePrinted and digitalDigital onlycross
Continue & Upgrade

Cancel for free anytime

Ways to learn

Choose the best way to learn for you!

Subscribe & save

$27.99 /month

Automatically renews

Develop skills to further your career

  • Access to this course
  • Access to 1,000+ courses
  • Learn at your own pace
  • Discuss your learning in comments
  • Digital certificate when you're eligible

Cancel for free anytime

Buy this course

$39/one-off payment

Fulfill your current learning need

  • Access to this course
  • Learn at your own pace
  • Discuss your learning in comments
  • Printed and digital certificate when you’re eligible

Limited access


Sample the course materials

  • Access expires 17 Dec 2022

Find out more about certificates, Unlimited or buying a course (Upgrades)

Learning on FutureLearn

Your learning, your rules

  • Courses are split into weeks, activities, and steps to help you keep track of your learning
  • 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 and refresh the page to view this content.

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.