Design of Computer Programs
Course Description
In this course, you will learn how to model problems, and how to optimize performance by using some of the advanced features of Python. Taught by Peter Norvig, Research Director at Google, this course will guide you through the process of designing elegant, efficient, and correct programs.
This free, self-paced course consists of 22 lessons that cover a wide range of topics, from the basics of program design to advanced techniques like regular expressions, search algorithms, and dealing with uncertainty through probability. You'll work through problems step-by-step with Peter Norvig as your guide, developing for clarity and generality, and learning to balance simplicity with performance.
No prior technical experience is required, but you should be able to communicate fluently in written and spoken English. The course is ideal for intermediate Python programmers who want to take their skills to the next level.
Course Provider
Provider: Udacity, a global online learning platform.
Instructor: Peter Norvig, Research Director at Google, co-author of the textbook "Artificial Intelligence: A Modern Approach", and a Fellow of the Association for Computing Machinery (ACM) and the American Association for Artificial Intelligence (AAAI).
Platform: Udacity online learning platform – fully online, self‑paced.
Course Syllabus (22 Lessons)
Learning Objectives
- Model problems effectively and design elegant solutions.
- Optimize program performance using advanced Python features.
- Apply the steps of the design process: clarity, generality, correctness.
- Use regular expressions to process text and define languages.
- Implement search algorithms to manage complexity.
- Deal with uncertainty through probabilistic reasoning.
- Balance simplicity and performance in program design.
- Earn a certificate of completion from Udacity.
Course Prerequisites
Technical: No prior technical experience required, but basic familiarity with Python is recommended.
Language: You will need to be able to communicate fluently and professionally in written and spoken English.
Who should take this: Intermediate Python programmers, software engineers, and anyone who wants to improve their program design skills and learn from one of the world's leading computer scientists.
User Reviews
"This course is a masterclass in program design. Peter Norvig is an incredible instructor, and his approach to teaching is both rigorous and engaging. The lessons on regular expressions and search algorithms were particularly valuable. I've been programming for years, but this course took my skills to a whole new level. Highly recommended!"
"An excellent course for intermediate Python programmers. The focus on design principles, not just syntax, is what sets it apart. The problem sets are challenging but rewarding. Some lessons are quite advanced, so be prepared to invest time and effort. Overall, a fantastic learning experience from a true expert."
"I've taken many programming courses, but this one is special. Peter Norvig's insights into program design are invaluable. The course teaches you how to think about problems, not just how to write code. The free certificate is a nice bonus, but the real value is the knowledge you gain. A must for any serious programmer."
Based on 1,200+ ratings on Udacity.
💡 Final Thoughts
This course is a rare opportunity to learn program design from one of the world's leading computer scientists. Peter Norvig's approach is both practical and philosophical, teaching you not just how to write code, but how to think about problems and design elegant solutions. Whether you're an intermediate Python programmer looking to level up, or a software engineer who wants to learn from a master, this free course is an invaluable resource. The certificate from Udacity is a nice bonus, but the real reward is the knowledge you'll gain.
Design of Computer Programs – FAQ
Is this course really free?
Yes, completely free. Udacity offers this course at no cost. You just need to create a free account on the platform.
Do I need any prior experience?
No prior technical experience is required, but basic familiarity with Python is recommended.
How long does the course take?
The course is self‑paced and contains 22 lessons. You can complete it at your own pace.
Will I receive a certificate or badge?
Yes, upon completion, you'll receive a certificate of completion from Udacity. You can share it on LinkedIn and other platforms.
Who is the instructor?
Peter Norvig, Research Director at Google, co-author of "Artificial Intelligence: A Modern Approach", and a Fellow of the ACM and AAAI.
What topics are covered?
The course covers program design principles, regular expressions, search algorithms, dealing with uncertainty, performance optimization, and more.