Design of Computer Programs

  • 0.0
Approx. 2 months

Brief Introduction

Move along the path towards becoming an expert programmer! In this class you will practice going from a problem description to a solution, using a series of assignments. During office hours segments, Peter will also share his own personal tips and tricks for approaching programming problems - and his techniques may surprise you!

Course Summary

Learn how to design efficient and elegant computer programs with this course. Gain coding skills that will help you write better software and become a more effective programmer.

Key Learning Points

  • Learn how to design complex programs using Python
  • Understand the principles of functional programming and abstraction
  • Develop your problem-solving skills and learn how to write elegant code

Job Positions & Salaries of people who have taken this course might have

    • USA: $95,000 - $150,000
    • India: ₹600,000 - ₹2,000,000
    • Spain: €30,000 - €50,000
    • USA: $95,000 - $150,000
    • India: ₹600,000 - ₹2,000,000
    • Spain: €30,000 - €50,000

    • USA: $65,000 - $95,000
    • India: ₹400,000 - ₹1,000,000
    • Spain: €25,000 - €35,000
    • USA: $95,000 - $150,000
    • India: ₹600,000 - ₹2,000,000
    • Spain: €30,000 - €50,000

    • USA: $65,000 - $95,000
    • India: ₹400,000 - ₹1,000,000
    • Spain: €25,000 - €35,000

    • USA: $80,000 - $120,000
    • India: ₹500,000 - ₹1,500,000
    • Spain: €25,000 - €45,000

Related Topics for further study


Learning Outcomes

  • Design efficient and elegant computer programs
  • Develop problem-solving skills
  • Write better software

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of Python programming
  • Familiarity with programming concepts like data structures and algorithms

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced
  • Interactive

Similar Courses

  • Algorithms, Part I
  • Introduction to Computer Science and Programming Using Python
  • Functional Programming Principles in Scala

Related Education Paths


Related Books

Description

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

Requirements

  • This course is intended for experienced Python programmers; students should be familiar with the Python syntax, as well as familiar with the following programming concepts: data structures, basic algorithms, and lambda functions. This course is intended to challenge you. Be ready to struggle (and learn)! See the Technology Requirements for using Udacity.

Knowledge

  • Instructor videosLearn by doing exercisesTaught by industry professionals

Outline

  • lesson 1 Winning Poker Hands Steps of the design process and developing for clarity and generality. Arguments for program correctness and experimentation and simulation. Design tradeoffs; Simplicity and Clarity. Decomposition and composability. lesson 2 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. lesson 3 Regular Expressions, other languages and interpreters Defining the language of regular expressions and Interpreting the language. Defining the set of strings matched by a regular expression Other languages. lesson 4 Dealing with complexity through search Search: finding your way with a flashlight or boat. Analyzing the efficiency of an algorithm. Recurrence relations and Matching data types with algorithms. lesson 5 Dealing with uncertainty through probability Probability: the game of Pig. Maximizing expected utility to optimize strategy. lesson 6 Word Games Managing complexity. Large sets of words. Appropriate data structures. lesson 7 Conclusion Interviews and practice exam.

Summary of User Reviews

Key Aspect Users Liked About This Course

The course provides a comprehensive approach to problem-solving and algorithm design

Pros from User Reviews

  • Excellent course content
  • Great instructor and teaching assistants
  • Challenging assignments that improve problem-solving skills
  • Good community support through forums and Slack channel

Cons from User Reviews

  • Some assignments can be time-consuming
  • Lack of interactive quizzes or games to reinforce learning
  • Not suitable for beginners in programming
Free
Available now
Approx. 2 months
Peter Norvig
Udacity

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses