In this course, students learn the basic and advanced concepts in Python programming with the sole aim that they can design some real-world application at the end of the course. Not only that, students learn how to host their application's source code on GitHub, how to create installers of their application for various operating systems, and how to share their application effectively with the world using a dedicated project website of their own.
As this course covers a lot of ground, we do assume that students have prior programming experience in Scratch or Scratch-like languages (Programming in MIT's Scratch and App Inventer is a part of the Intro. to CS course ― also taught by Adnan Niazi.) Having already understood programming fundamentals through Scratch, students are able to absorb Python programming concepts at an accelerated pace, leaving ample time during the semester for more application-oriented topics.
In the first iteration of this course in Spring 2015, students learned to design graphical user interfaces in PyQt4. In the second iteration of this course ― scheduled in Spring 2016 ― we plan to teach students how to develop multi-touch multi-platform mobile apps using Kivy framework. So stay tuned!
For now you can access all the lectures materials and student projects for the spring 2015 course.