Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Toronto

Learn to Program: The Fundamentals

University of Toronto via Coursera

Overview

Behind every mouse click and touch-screen tap, there is a computer program that makes things happen. This course introduces the fundamental building blocks of programming and teaches you how to write fun and useful programs using the Python language.

Syllabus

  • Python, Variables, and Functions
    • This module gives an overview of the course, the editor we will use to write programs, and an introduction to fundamental concepts in Python including variables, mathematical expressions, and functions.
  • Strings and Designing Functions
    • This module introduces strings (a Python data type used to represent text), and a process to follow when creating a function.
  • Booleans, Import, Namespaces, and if Statements
    • This module introduces Booleans (logical values True and False), how to convert between types, how to use Boolean expressions in if statements to selectively run code, and the concept of a Python module.
  • For Loops and Fancy String Manipulation
    • This module introduces one way to repeat code (using a for loop), how to manipulate strings, and how to use a debugger to watch a program execute step by step.
  • While Loops, Lists, and Mutability
    • This module introduces another way to repeat code (using a while loop), how to properly document your code to help other programmers understand it, Python's list data type, and the concept of mutation.
  • For Loops Over Indices, Parallel and Nested Lists and Strings, and Files
    • This module introduces how to use a for loop over the indexes of a list, how to nest lists, and how to read a write files.
  • Tuples and Dictionaries
    • This module introduces tuples (an immutable version of lists), and Python's dictionary type.

Taught by

Jennifer Campbell and Paul Gries

Reviews

4.7 rating, based on 109 Class Central reviews

4.7 rating at Coursera based on 5911 ratings

Start your review of Learn to Program: The Fundamentals

  • Joanna Maryniak completed this course, spending 3 hours a week on it and found the course difficulty to be medium.

    I signed up for several different introductory CS courses (LTP1 and ITPP on Coursera, CS50x and 6.00x on EdX) and I have to say that this was the best one. Demanding but not too much - about 4-4,5h/week, very thorough but not boring (the disjointed teching,...
  • Udbhav Jatia completed this course, spending 2 hours a week on it and found the course difficulty to be medium.

    This course is absolutely perfect for beginners who have no previous experience with coding. It really dives deep into the fundamentals of Python and teaches you from scratch. You are constantly tested on the concepts through questions that pop up during...
  • Anonymous

    Anonymous completed this course.

    You will learn A LOT in this class. This is the best introductory programming class I have taken, and they don't mess around. You will learn everything you should learn to get started with Python 3.3 (and of course the principles apply to other languages as well). They go over things that other courses don't really mention, like good documentation, how to design a program, and how the computer runs through the program and handles the memory. Truly enlightening. It is rather fast paced, and I think it really helps to have at least a tiny bit of experience in programming, a total newbie who doesn't know the difference between an integer and a floating point will probably struggle to keep up.
  • Anonymous

    Anonymous completed this course.

    I loved this class. I learned string and list manipulation, modular arithmetic, list mutations. I was very happy with the learning experience and plan to take the second half of the class when it is offered.

    I also took Introduction to Interactive Programming via @Coursera @ Rice. This Toronto class is a little bit better for absolute beginners and focuses a little bit more on fundamentals, like the title suggests. If you were going to take both classes, I would take this Fundamentals class first as the Rice class can have a big workload for beginners who don't have these fundamentals.
  • Haider Ali

    Haider Ali completed this course.

    This is THE Class for people without any programming background. This course will give you the best grounding for understanding basics of Python which will come handy when you are doing other introductory and advanced courses on Coursera and Udacity.

    I will say that other introductory courses on Coursera and Udacity are advanced when compared with this course. However, if you want to learn the basics of a programming language and progress in a structured manner this should be the first course on your list.
  • Anonymous
    They recommend you get Python 3.4, since 3.5 is not always compatible with their teachings....and then you learn that 3.4 was retired in 2019 and they are now on 3.9. One person teaches you the function design recipe, then in the very next nodule, the other instructor tells you the function design recipe is different, so good luck when this shows up on the week 2 test. With a topic that is always moving and adapting like computer programming, it seems unfortunate that we are obviously dealing with a course that hasn't been updated in years.

    I am totally stuck on the week 2 test, and ready to give up on this in order to learn from youtube videos, at least some of them are current
  • Anonymous

    Anonymous completed this course.

    I highly recommend this course to anybody wanting to learn how to program in Python! The content, the instructors, the structure of the course were great! I must admit that I find the course a bit tough and challenging, but I found myself fully engaged...
  • Anonymous

    Anonymous completed this course.

    Jennifer and Paul are both World Class professors who hit a home run with their course. They have proven that a properly architected online class is a superior form of leaning. Their video lectures were understandable, efficient , and relevant and were not overdone or too long. The exercises and quizzes were challenging and effective. Through all of this they bridged the cyber world and physical world by making you feel as though you were sitting right in their office and they were giving you personal instruction in programming. I am proud of both of them and can't thank them enough for what they have done. They are the new breed of education Rock Stars and deserve the ultimate praise.
  • Anonymous

    Anonymous completed this course.

    I just finished the Fall '13 course offering and am quite happy with the design of the course and support I got on the forums. I'm a beginning programmer and found the first four weeks "leisurely" but very informative. the instructors used the Python Visualizer to show what's happening behind th scenes in memory stacks which helped a lot. Starting in week 5 things picked up with 6 being a tough week. I would suggest the instructors move the file open topic from week 6 to week 4 for balance. Also, adding a lab assignment in weeks 3 and 5 would help people get more comfortable with the Idle shell sooner in the course. I learned a lot and would recommend this to anyone that wants to learn beginning Python.
  • Xinru Cheng

    Xinru Cheng completed this course, spending 4 hours a week on it and found the course difficulty to be easy.

    Awesome course! Just what I needed as a beginner in programming. The instructors and discussion forum mentors were extremely helpful, and after this course I feel more confident about programming in general, not just in Python.

    The course material is well-organized, and quizzes during the video really help consolidate learning. The instructors are friendly and patiently walk you through the details, with a little humour in the examples too.

    The final exam felt easier than the weekly quiz though, and I could benefit from a couple more coding assignments. But overall the best MOOC experience I've had so far!
  • Anonymous

    Anonymous completed this course.

    I really loved this course. the pace is just right, with a little challenge, but not as hard that you want to bang your head in the table and then just quit. (although I almost did that in some of the weeks but not because the professors didn't teach the class well or the assignment was too hard, It's just that I over think the solutions.)

    So if you have no prior experience in programming and want to learn. (really want to learn) then you should try this out. and one tip I can give is as I have said earlier, do not over think the answers.
  • Anonymous
    I LOVED this course. The instructors, materials, exams, assignments and the forum with very supportive mentors you do not feel alone and feel like they are there for you. Videos are short and engaging and you can watch them over and over again without getting bored. Assignments are challenging but with the support you receive from the forum and mentors you do not get disappointed and will go forward. I strongly recommend this course to any beginners. I really enjoyed.
  • John

    John completed this course, spending 3 hours a week on it and found the course difficulty to be medium.

    This is an excellent course to take if you want to learn to program in Python,. There are many exercises that get you 'hands on' with programming and the programming tests are based on the material being taught.

    I am currently finishing week 4 and will finish this course in its entirety. I am also taking another course that is more oriented to Big Data called " Python for Data Science from the UC San Diego. The course number is DSE200X. This is pure hands on with little programming as it takes advantage of the libraries available through Python.
  • Daniel W. Carnagey completed this course, spending 5 hours a week on it and found the course difficulty to be easy.

    Both instructors are very good at explaining the content. And the content covered was quite a good foundation. If I have one complaint, it is that I wish there were more programming assignments and fewer quizzes. I feel like I would have learned more from doing than from picking the right answer(s) from a list. Having said that, this may just be because it is a beginner course.

    I would highly recommend the course and these instructors.
  • Anonymous

    Anonymous completed this course.

    The main take away for me from this class was the structured nature in which it was presented. The examples presented for breaking down tasks in functions and writing programs to a specification to handle data. The lecturers done an excellent job with their selection of material and pacing and it was topped at the end with a certificate, which gives a sense of accomplishment. I took the RICE Python games programming course at the same time and may have found it more challenging if the basics weren't covered here first.
  • Anonymous

    Anonymous completed this course.

    Fantastic intro to Python programming. Course material well presented. The pace of the course is perfect for beginners, and lays a firm foundation for future advancement.

    Video Lectures, written notes, peer discussion forum, regular assessment exercises and assignments.

    Highly recommended.
  • Anonymous

    Anonymous completed this course.

    This is the best introductory MOOC on Python available in learning plataforms, to the best of my knowledge. The instructors code during the lectures, making every step of the process clear with useful comments and notes. The assignments are aligned with the content of each week. It is also very comprehensive, nonetheless quite detailed.
  • Met Bay
    I loved Python thanks to this course. The teachers are wonderful. I've been coding for more than 20 years, but I learned new methods to keep my code clean and well documented.
  • I have special inspiration to wards developing relevant software to solve traffic and road safety problems. For this case I prefer to learn online basic programming courses.
  • Anonymous

    Anonymous completed this course.

    This course falls within the definition of the "flow". It's not super hard or too long to bore you and it's not too short or too easy to be a walk in the park. Great course.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.