Professional Course

Design of Computer Programs

Udacity, Online
48 hours
Next course start
Free E-Learning: Start Anytime! See details
Self-paced Online
48 hours
Next course start
Free E-Learning: Start Anytime! See details
Self-paced Online
This provider usually responds within 48 hours 👍

Course description

Design of Computer Programs: E-learning from Udacity

Design of Computer Programs E-learning from Udacity

Knowing the right way to approach programming and create solutions is a crucial skill for any Python developer. This e-learning course is designed to guide participants through the methods, patterns and concepts that will grow coding abilities. Move from beginner to expert quickly with this highly engaging course led by programming savant, Peter Norvig.

Practical, hands-on learning

This course is designed to provide learners with the relevant practice necessary for moving from the description of a problem to formulating its solution. Working through a number of different assignments, learners will gain valuable techniques and shortcuts to implement when faced with programming challenges.

Do you work at this company and want to update this page?

Is there out-of-date information about your company or courses published here? Fill out this form to get in touch with us.

Upcoming start dates

1 start date available

Free E-Learning: Start Anytime!

  • Self-paced Online
  • Online

Who should attend?

This Design of Computer Programs course is intended for anyone wanting to learn how to work through programming challenges.


Course participants are expected to be able to use Python and be familiar with the language's syntax. They are also expected to understand programming concepts like basic algorithms, data structures and lambda functions. 

Find out if this course is right for you - request more information here!

Training content

This Design of Computer Programs course is divided into seven lessons, including:

Winning Poker Hands

  • Steps of the design process; Developing for clarity and generality; Arguments for program correctness; Experimentation and simulation.; Design tradeoffs; Simplicity and Clarity. Decomposition and composability.

Back of the Envelope

  • Back of envelope calculations; When to use brute force and when to be clever; The Zebra puzzle; Generator expressions; Permutations and combinations. Cryptarithmetic; Recursive and wishful thinking; Longest palindrome substring algorithm.

Regular Expressions, other languages and interpreters

  • Defining the language of regular expressions; Interpreting the language; Defining the set of strings matched by a regular expression; Other languages.

Dealing with complexity through search

  • Search: finding your way with a flashlight or boat; pouring water. Analyzing the efficiency of an algorithm; Recurrence relations; Matching data types with algorithms.

Dealing with uncertainty through probability

  • Probability: the game of Pig; Maximizing expected utility to optimize strategy.

Word Games

  • Managing complexity; Large sets of words; Appropriate data structures; Word games.


  • Final exam/project


It is free to start this Web Development course

Estimated time for completion assuming 6 hours per week: Approx. 2 months

2-Week Free Trial: Love it or Leave it

All Udacity courses are offered with a two-week free trial. Learners will have plenty of time to make sure that the program fits their needs. If it's not working out for any reason - user can cancel their subscription fee of charge.

Contact this provider

Contact course provider

Before we redirect you to this supplier's website, do you mind filling out this form so that we can stay in touch? You can unsubscribe at any time.
If you want us to recommend other suitable courses, please fill out all fields below and check the box beside "Please recommend similar options"
Country *

reCAPTCHA logo This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.