Udacity

Design of Computer Programs

Engineering and Technology

Short Description

Learn how to model problems, and how to optimize performance by using some of the advanced features of Python.

Long Description

The course Design of Computer Programs on Udacity covers a range of topics related to designing and developing computer programs. It starts with discussing the steps of the design process and emphasizes the importance of clarity and generality in program development. The course also explores arguments for program correctness and the use of experimentation and simulation. Design tradeoffs, such as simplicity and clarity, are examined, along with concepts like decomposition and composability. The course then delves into back of the envelope calculations, teaching when to use brute force and when to be clever. It uses examples like the Zebra puzzle to demonstrate the use of generator expressions, permutations, and combinations. The topic of cryptarithmetic is covered, including recursive and wishful thinking, as well as the longest palindrome substring algorithm. Regular expressions and their interpretation are discussed, along with the use of other languages and interpreters. The course also addresses dealing with complexity through search, analyzing algorithm efficiency, and matching data types with algorithms using recurrence relations. Dealing with uncertainty through probability is explored, using the game of Pig as an example and discussing how to maximize expected utility to optimize strategy. Word games are used to teach managing complexity and appropriate data structures. The course concludes with interviews and a practice exam.

Course Details

Duration
8 weeks
Difficulty
Advanced
Format
Short Course
Price
Free
Course Link
More Information
Udacity
Description
Udacity is an online learning platform that offers a wide range of courses and programs in various fields such as technology, business, data science, and artificial intelligence. It was founded in 2012 by Sebastian Thrun, David Stavens, and Mike Sokolsky with the aim of providing accessible and affordable education to individuals worldwide. Udacity's courses are designed in collaboration with industry experts and leading companies, ensuring that the content is relevant and up-to-date. The platform offers both self-paced courses and guided programs, allowing learners to choose the learning style that suits them best. Udacity also provides career services and support, including resume reviews, interview preparation, and job placement assistance, to help learners transition into their desired careers.