We may earn an affiliate commission when you visit our partners.
Matt Hogan

With the help of the Raspberry Pi Foundation, this course will guide you through basic programming concepts and teach you how to write Python programs that respond to a user's input, perform calculations, and solve problems.

Over the 4 weeks of the course you'll work on creating your own text-based adventure game. As you become more confident with your programming, you'll progress to making more of your own choices about how you'll meet a design brief.

Read more

With the help of the Raspberry Pi Foundation, this course will guide you through basic programming concepts and teach you how to write Python programs that respond to a user's input, perform calculations, and solve problems.

Over the 4 weeks of the course you'll work on creating your own text-based adventure game. As you become more confident with your programming, you'll progress to making more of your own choices about how you'll meet a design brief.

Along the way you'll also experience other specific pedagogical approaches that you can use to help learners build their code comprehension skills, such as the Predict–Run–Investigate–Modify–Make (PRIMM) approach. You'll also learn how to tackle everything from the overall programming task to how to work on specific lines of code.

What's inside

Learning objectives

  • Over the next 4 weeks, you will:
  • Explore basic programming concepts such as sequencing and repetition
  • Identify use cases for 'for' and 'while' loops, 'if' statements, and functions
  • Apply your knowledge of basic python syntax to interpret error messages
  • Produce a text-based adventure game

Syllabus

You'll cover:
Basic programming concepts such as repetition and sequencing
When and how to use a 'for' loop, an 'if' statement, a 'while' loop, and functions
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Introduces basic programming concepts like sequencing and repetition, which are fundamental for beginners
Uses Python, a widely-used language in introductory programming courses and various industries
Develops skills in interpreting error messages, a crucial skill for debugging and problem-solving
Explores pedagogical approaches like PRIMM, which can enhance code comprehension skills in learners
Culminates in creating a text-based adventure game, providing a hands-on project for practical application
Presented by the Raspberry Pi Foundation, which is known for its educational resources and initiatives in computing

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Teach teens python & pedagogy

According to learners, this course offers a largely positive experience for those looking to teach basic Python programming, particularly to teens. Students highlight the clear explanations of core programming concepts like loops and conditionals. A major draw is the hands-on project of building a text-based adventure game, which many found to be an engaging and practical way to apply learned skills. The course also introduces pedagogical approaches like the PRIMM method, aimed at helping educators teach coding effectively, though experiences with understanding and applying this method vary among learners. While praised for being beginner-friendly, some with prior coding experience found the content quite basic. Overall, it provides a solid foundation suitable for educators and absolute beginners.
Specific teaching method introduced.
"The PRIMM approach was a new concept for me, I'm interested in trying to use it in my classroom."
"I found the explanation of PRIMM a bit confusing and struggled to see how it fully integrated with the coding lessons."
"It was interesting to learn about pedagogical methods alongside the coding instruction."
"Some parts about the teaching method felt less clear than the coding parts."
Hands-on game project is engaging.
"Building the text adventure game was the highlight, it really helped tie the concepts together."
"My students loved working on the game, it kept them motivated and interested in Python."
"The project provided a fun and practical way to apply the Python skills learned in the lessons."
"Working through the steps to create the game felt very rewarding and solidified my understanding."
Excellent for those new to coding.
"A great starting point for learning Python basics, even for someone with no prior coding experience."
"The explanations were clear and easy to follow, perfect for introducing programming to kids."
"I felt comfortable tackling the coding concepts presented, everything was well-explained and accessible."
"Ideal course if you or your students have never coded before."
May be too simple for some learners.
"If you already know basic Python syntax, the initial weeks might feel a bit slow and repetitive."
"I was hoping for slightly more advanced programming topics or alternative project ideas for variety."
"Good for absolute beginners, but it doesn't go into much depth beyond the fundamental concepts."
"Suitable as a first introduction, but experienced coders won't learn new Python here."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Teach teens computing: Programming in Python with these activities:
Review Basic Programming Concepts
Reinforce foundational programming concepts like variables, data types, and control flow to prepare for the course's Python-specific implementation.
Show steps
  • Read introductory materials on programming fundamentals.
  • Complete online quizzes to test your understanding.
  • Write pseudocode for simple programming problems.
Review "Python Crash Course"
Solidify your understanding of Python syntax and programming fundamentals by working through the examples and exercises in "Python Crash Course."
Show steps
  • Read the chapters covering basic Python syntax and data structures.
  • Complete the exercises at the end of each chapter.
  • Experiment with the code examples and modify them to explore different functionalities.
Practice Python Syntax Exercises
Reinforce your understanding of Python syntax through targeted practice exercises, focusing on areas like loops, conditional statements, and functions.
Browse courses on Python Syntax
Show steps
  • Find online resources with Python syntax exercises.
  • Complete at least 10 exercises per week, focusing on different syntax elements.
  • Review your solutions and identify areas for improvement.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Expand the Adventure Game
Deepen your understanding of Python programming by expanding the text-based adventure game created during the course with new features and functionalities.
Show steps
  • Brainstorm new features to add to the game, such as new locations, characters, or items.
  • Implement the new features using Python code, focusing on modularity and code reusability.
  • Test the game thoroughly and debug any errors.
  • Share your expanded game with others and gather feedback.
Create a Python Programming Tutorial
Solidify your knowledge of Python programming by creating a tutorial that explains a specific concept or technique to other learners.
Browse courses on Python Programming
Show steps
  • Choose a Python programming topic that you understand well.
  • Write a clear and concise tutorial that explains the topic in a step-by-step manner.
  • Include code examples and exercises to help learners practice the concept.
  • Share your tutorial online and gather feedback.
Review "Automate the Boring Stuff with Python"
Explore practical applications of Python programming beyond game development to broaden your understanding of the language's capabilities.
Show steps
  • Read chapters related to automating tasks that interest you.
  • Try out the code examples and adapt them to your own needs.
  • Identify tasks in your daily life that you can automate using Python.
Contribute to a Python Project
Enhance your Python programming skills by contributing to an open-source project, gaining experience in collaborative development and working with real-world codebases.
Browse courses on Python
Show steps
  • Find an open-source Python project that aligns with your interests and skill level.
  • Review the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes and address any feedback from the project maintainers.

Career center

Learners who complete Teach teens computing: Programming in Python will develop knowledge and skills that may be useful to these careers:
Computer Science Teacher
A computer science teacher educates students in various aspects of computer science, including coding and programming. This course is particularly useful because it explores pedagogical approaches for teaching programming, such as PRIMM, which are directly relevant to educators. The course gives experience in using Python and also teaches the basics of Python syntax, error messages, and common programming concepts, which are all elements that a computer science teacher may need to educate. A computer science teacher should take this course to also further their understanding of common errors and how to solve them.
Coding Tutor
A coding tutor provides individualized instruction and guidance to students learning to program. This course directly addresses how to teach programming and improve code comprehension, which is essential for tutors. The course not only teaches basic Python concepts, but it also explores pedagogical approaches such as PRIMM, which are all useful. A coding tutor might take this course to develop their skills in teaching students how to code and to refine their own understanding of basic error messages.
Software Developer
A software developer creates applications, writes code, and tests software programs. This course provides a valuable introduction to Python programming, a language frequently used by software developers, and helps build a foundation in core programming concepts like sequencing, loops, and conditional statements. It also introduces debugging skills, which are essential for a developer, as well as helping one to learn how to write a program to solve a simple problem. Further, by learning how to create a text-based game, an aspiring software developer begins to develop crucial problem-solving skills that are useful in the job.
Python Programmer
A Python programmer writes, tests, and debugs code using the Python programming language. This course provides a solid introduction to core Python concepts, such as loops, conditional statements, functions, and syntax, which are all essential for a Python programmer. Creating text-based games reinforces basic programming logic and application. A Python programmer would benefit by taking this course to have a solid foundation in the language.
Game Developer
A game developer designs and builds video games, typically incorporating programming, story telling, and art. This course is relevant as it provides experience building a text-based adventure game using Python, which is often the first step in developing more complex video games. This course helps a game developer learn programming and gives them an introduction to basic game design. Any aspiring game developer can benefit from the practical experience of building a game such as this one, which is why they should take this course.
Curriculum Developer
A curriculum developer creates educational materials and frameworks for instruction, often in specific subject areas like computer science. This course is pertinent as it provides an understanding of programming concepts in Python and also introduces pedagogical methods, both of which are useful in developing an engaging computer science curriculum. Experiencing the learning process firsthand, by building a text-based game, gives insights into the student perspective, which is valuable for anybody trying to assess curriculum. A curriculum developer should take this course to build a deeper understanding of foundational programming concepts.
Educational Software Developer
An educational software developer creates software and applications aimed at enhancing the learning experience. This course is relevant as it not only provides experience with programming in Python but also explores methods of teaching programming concepts to others. Learning how to build a text-based game gives insights into creating engaging learning tools, which is valuable. An educational software developer should take this course to learn more about the experience of a learner.
Technology Trainer
A technology trainer provides instruction on using various software and technologies to other users. This course is valuable because it focuses on teaching programming in Python and also explores different teaching approaches that help in delivering clear instruction. The course also provides a hands-on experience in building a project, such as a text based game, that can be used to further explain concepts. A technology trainer may take this course to improve their skills in teaching a technical subject.
Educational Consultant
An educational consultant assists schools and organizations with improving educational programs and practices. This course may be helpful as it focuses on teaching Python programming and explores pedagogy, such as the PRIMM approach, that can be useful for consulting on computer science curriculum development. Learning how to create a game can be valuable as consultants are often called upon to advise on how to make learning more engaging. An educational consultant might take this course to gain insights into the landscape of computer science education.
Instructional Designer
An instructional designer develops learning materials and activities to help students learn effectively. This course may be useful because it models various educational approaches, including the PRIMM approach, that can be applied to instructional design. By learning how to teach programming concepts and how to build a game, an instructional designer gains valuable insight into a learner's perspective. An instructional designer should take this course to have further understanding of the challenges that students face with computer programming.
Robotics Engineer
A robotics engineer designs, builds, tests, and maintains robots. This course is helpful to a budding robotics engineer because it provides a foundation in Python programming, a language often used in robotics. The course gives experience in creating computer programs and solving problems using code, skills also required of a robotics engineer. A robotics engineer would benefit from this course as it gives a general understanding of how code works.
Data Analyst
A data analyst collects, processes, and performs analysis of large data sets to make informed decisions. This course is beneficial because it provides foundational skills in Python programming, which is frequently used in data analysis and data science. The course helps develop good coding practices as well as teaching how to solve problems using a computer program. A data analyst could take this course to improve their understanding of Python.
Web Developer
A web developer creates and maintains websites and web applications. While this course does not focus on web development directly, it provides a solid foundation in Python programming, which can be used in backend web development. The course also teaches basic troubleshooting and how to solve problems using code. A web developer may take this course to further their understanding of Python programming.
Academic Researcher
An academic researcher conducts in depth research on a chosen topic. While this course does not directly apply to research, it can give a researcher a foundation in programming, which they may implement in their research process. Python is used in a wide variety of fields, so this course can help build the skills needed to learn more complex programming techniques in the future. An academic researcher may take this course to further their technical skills.
IT Support Specialist
An IT support specialist provides technical assistance to users of computer systems. While this course is not directly related, it can help an IT support specialist develop a better general understanding of computer programming. In addition, the course helps build problem-solving skills when debugging an error message, which is useful. An IT support specialist may find this course helpful in improving their general knowledge of computer systems.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Teach teens computing: Programming in Python.
Provides a solid introduction to Python programming, covering fundamental concepts and syntax in a clear and accessible manner. It is particularly useful for beginners with little to no prior programming experience. The project-based approach aligns well with the course's focus on creating a text-based adventure game, offering practical examples and guidance. It is commonly used as a textbook for introductory Python courses.
Provides a practical introduction to Python programming by focusing on automating everyday tasks. While not directly related to game development, it demonstrates the power and versatility of Python in solving real-world problems. It can inspire students to think creatively about how they can use Python to automate tasks in their own lives. This book is valuable as additional reading to expand the student's perspective on Python's capabilities.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser