Coursera
Explore
  • Browse
  • Search
  • For Enterprise
  • Log In
  • Sign Up

Learn to Program: Crafting Quality Code

OverviewSyllabusFAQsCreatorsRatings and Reviews

HomeComputer ScienceSoftware Development

Learn to Program: Crafting Quality Code

University of Toronto

About this course: Not all programs are created equal.  In this course, we'll focus on writing quality code that runs correctly and efficiently.  We'll design, code and validate our programs and learn how to compare programs that are addressing the same task.


Created by:  University of Toronto
University of Toronto

  • Jennifer Campbell

    Taught by:  Jennifer Campbell, Associate Professor, Teaching Stream

    Department of Computer Science

  • Paul Gries

    Taught by:  Paul Gries, Associate Professor, Teaching Stream

    Department of Computer Science
Language
English
How To PassPass all graded assignments to complete the course.
User Ratings
4.6 stars
Average User Rating 4.6See what learners said
Syllabus
WEEK 1
Week 1
7 videos, 10 readings
  1. Reading: Syllabus
  2. Reading: Course Logistics
  3. Reading: Resources
  4. Video: Palindrome: Approaching the Problem
  5. Reading: Palindrome: Approaching the Problem
  6. Video: Palindrome: Algorithm 1
  7. Reading: Palindrome: Algorithm 1
  8. Video: Palindrome: Algorithm 2
  9. Reading: Palindrome: Algorithm 2
  10. Video: Palindrome: Algorithm 3
  11. Reading: Palindrome: Algorithm 3
  12. Video: The Restaurant Recommendations Problem
  13. Reading: The Restaurant Recommendations Problem
  14. Video: Restaurant Recommendations: Representing the Data
  15. Reading: Restaurant Recommendations: Representing the Data
  16. Video: Restaurant Recommendations: Planning the Program
  17. Reading: Restaurant Recommendations: Planning the Program
Graded: Week 1 Exercise
WEEK 2
Week 2
6 videos, 6 readings
  1. Video: Testing Automatically Using doctest
  2. Reading: Testing Automatically Using doctest
  3. Video: Writing a '__main__' program
  4. Reading: Writing a '__main__' program
  5. Video: Creating Your Own Types
  6. Reading: Creating Your Own Types
  7. Video: Testing Automatically Using unittest
  8. Reading: Testing Automatically Using unittest
  9. Video: Choosing Test Cases
  10. Reading: Choosing Test Cases
  11. Video: Testing Functions that Mutate Values
  12. Reading: Testing Functions that Mutate Values
Graded: Week 2 Exercise
Graded: Writing test cases
WEEK 3
Week 3
7 videos, 7 readings
  1. Video: Analyzing Algorithms
  2. Reading: Analyzing Algorithms
  3. Video: Linear Search
  4. Reading: Linear Search
  5. Video: Binary Search
  6. Reading: Binary Search
  7. Video: Comparing Search Algorithms
  8. Reading: Comparing Search Algorithms
  9. Video: Bubble Sort
  10. Reading: Bubble Sort
  11. Video: Selection Sort
  12. Reading: Selection Sort
  13. Video: Insertion Sort
  14. Reading: Insertion Sort
Graded: Week 3 Exercise
WEEK 4
Week 4
4 videos, 4 readings
  1. Video: Creating a New Type
  2. Reading: Creating a New Type
  3. Video: Plugging Into Python Syntax
  4. Reading: Plugging Into Python Syntax
  5. Video: Writing Special Method __str__
  6. Reading: Writing Special Method __str__
  7. Video: Writing Classes That Interact
  8. Reading: Writing Classes That Interact
Graded: Week 4 Exercise
WEEK 5
Week 5
3 videos, 3 readings
  1. Video: Passing Functions as Arguments
  2. Reading: Passing Functions as Arguments
  3. Video: Assigning Parameters Default Values
  4. Reading: Assigning Parameters Default Values
  5. Video: Dealing with Exceptional Situations
  6. Reading: Dealing with Exceptional Situations
Graded: Rat Race

FAQs
How It Works
Coursework
Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates
Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

Creators
University of Toronto
Established in 1827, the University of Toronto has one of the strongest research and teaching faculties in North America, presenting top students at all levels with an intellectual environment unmatched in depth and breadth on any other Canadian campus.
Ratings and Reviews
Rated 4.6 out of 5 of 260 ratings
Alfred David

Excellent course and thank you for the instructors make programming a very joyful experience to a newbie and a veteran

ST

Another great learning course from Jen and Paul!

GT

A good coverage of some intermediate level python techniques. I liked the section on testing and the peer reviewed assignment. However, I felt it would have been good to have one more assignment to practice the algorithms section of the course.

MG

Course was very meticoulusly planned and structured. The teachers are simply amazing and I couldn't recommend them more. However, it seams to me that the final task was a bit to ambitious, at least for me. It got me stranded staring at the screen. Perhaps it is just me, but I don't know. Anyway - 5 stars from me.



You May Also Like
Rice University
Principles of Computing (Part 1)
1 course
Rice University
Principles of Computing (Part 1)
View course
Rice University
Principles of Computing (Part 2)
1 course
Rice University
Principles of Computing (Part 2)
View course
Rice University
Algorithmic Thinking (Part 2)
1 course
Rice University
Algorithmic Thinking (Part 2)
View course
Rice University
Algorithmic Thinking (Part 1)
1 course
Rice University
Algorithmic Thinking (Part 1)
View course
Rice University
An Introduction to Interactive Programming in Python (Part 2)
1 course
Rice University
An Introduction to Interactive Programming in Python (Part 2)
View course
Coursera
Coursera provides universal access to the world’s best education, partnering with top universities and organizations to offer courses online.
© 2018 Coursera Inc. All rights reserved.
Download on the App StoreGet it on Google Play
  • Coursera
  • About
  • Leadership
  • Careers
  • Catalog
  • Certificates
  • Degrees
  • For Business
  • For Government
  • Community
  • Partners
  • Mentors
  • Translators
  • Developers
  • Beta Testers
  • Connect
  • Blog
  • Facebook
  • LinkedIn
  • Twitter
  • Google+
  • Tech Blog
  • More
  • Terms
  • Privacy
  • Help
  • Accessibility
  • Press
  • Contact
  • Directory
  • Affiliates