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.
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.
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you. They also have student discussion forums, homework/assignments, and online quizzes or exams.
Joanna Maryniakcompleted 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, that somebody here has complained about, was for me a major upside - I found out that 6-10 minutes lectures are easier to stomach than those gargantuan 2h lectures on EdX [I can easily sit and listen for such time in real life auditorium but in front of my computer I get all twitchy and my attention floats away]). This course did not cover a huge range of topic but when it touched one, it would not stop until this topic was covered 100%. Also the professors were very active on the forum and woud answer questions, provide clarifications and respond to feedback. There were also a few downsides but, interestingly enough, most of them - technical: problems with final exam grading (resolving this mess sure took some time), differing leve
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, that somebody here has complained about, was for me a major upside - I found out that 6-10 minutes lectures are easier to stomach than those gargantuan 2h lectures on EdX [I can easily sit and listen for such time in real life auditorium but in front of my computer I get all twitchy and my attention floats away]). This course did not cover a huge range of topic but when it touched one, it would not stop until this topic was covered 100%. Also the professors were very active on the forum and woud answer questions, provide clarifications and respond to feedback. There were also a few downsides but, interestingly enough, most of them - technical: problems with final exam grading (resolving this mess sure took some time), differing level of sound during some of the videos and a total, horrible mess on the discussion forum. But that would be about it - I frankly cannot even think of a bad thing to say about the teaching part. It was so great that I just can't wait for the LTP2.
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.
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.
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.
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 Chengcompleted 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!
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.
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.
Daniel W. Carnageycompleted 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.
Udbhav Jatiacompleted 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 the window to keep you engaged and there is a large quiz at the end of each week to ensure you properly understand all the concepts.
The programming assignments are also extremely fun and just about challenging enough to make you confident of applying what you learn and deepening your understanding.
The only minor quibble I have with this course is that it can be monotonous at times. I do wish the instructors found a way to make it more upbeat and lively. However, if you had to take just one course to start your programming journey, this should be it!
This class was Excellent. It had a good emphasis on understanding and was one of the few courses that claimed to be suitable for complete beginners that actually was. Everything was explained so patiently and in lots of detail.
One of the things I liked the best was that the instructors had written test suites for the programming assignments so we could have instant results when submitting the fortnightly projects. The quizzes also gave instant feedback.
The course was guide was also a reasonably good estimate fo the time required each week.
Johnpartially 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.
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.
Prior to starting this course I had practically no knowledge of programming, and none is necessary. The course material is really well presented and delivered, and with some effort I think you can expect to be reasonably adept at writing some handy code in Python by the time you're finished. I'm using what I learned to work my way through the problems on Project Euler (www.projecteuler.org) and I'm amazed with some of the problems I've been able to solve by applying the course material.
This is a phantastic course, almost perfect! Thanks to the very professional teaching of the professors the course is also very accessable for absolute beginners. In a few weeks you learn a lot about programming in Python, and programming in general. The professors offer a very good structure for programming, that's also usable in other languages.
Jenn and Paul, thank you! I'll follow also your coming courses.
This is a great course for anyone wishing to learn python programming. The instructors Jen and Paul do a fantastic job of walking you through the fundamentals of Python programming. This course gives you a good foundation to build on for moving into other programming courses. A great course which I highly recommend for anyone who wishes to learn programming in general and Python in particular.
This was a really good introduction to python and programming. I took this course and An Introduction to Interactive Programming in Python at the same time. This class started a little ahead of the other class and really helped me to grasp the concepts in the other class quickly. I recommend both these classes to anyone interested in programming.
Excellent basic programing class in Python language. The professors are presenting the topics in a very simple manner so that I who never had programmng experience previously could easily learn Python. Mind you, if you are a newbie, it will need more than 8 hours per week, but it is worth it if you are interested in Python. Thanks Jen and Paul.