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.
Upcoming start dates
Free E-Learning: Start Anytime!
- Self-paced 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!
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.
- 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.