COURSE DESIGN AND APPROACH
Computer programming is a language for communicating with computers. It is completely different from human language, and the way how computers think is completely different from the way how human think. There are so many things you can do with computers these days, but what computers can actually understand is very limited. Therefore, learning computer programming involves learning how to write computer-understandable code (text) using limited instructions, variables, and logics which computers can understand.
Computer programming is also about problem-solving. We need to break down a problem into smaller pieces, to develop solutions for those sub-problems, and to combine them together to address the overall challenge. As Steve Jobs, the visionary founder of Apple Computer said, "Everybody in this country should learn to program a computer... because it teaches you to think."
This course will provide an introduction to programming using the Python programming language. You will learn how to use Python and its syntax and features. You will also learn some very fundamental things to learn programming. You will learn the basics of how computers work. You will also learn about data representations and structures. You will learn how to control flow including conditionals and iteration. You will also learn design techniques, best practices, and debugging methods.
However, this course not only introduces concepts but also provides opportunities for hands-on practice through in-class exercises and homework. The design of this course follows the "active learning" philosophy. Learning programming is similar to learning how to ride a bicycle. No matter how many theories are heard and understood, it is most important to actually do the riding by trials and errors. The in-class exercises will give you the opportunity to build a simple program, and the assignments will give you the opportunity to reinforce your understanding of the various concepts you learned through lectures.
Please be aware that this class will require students to invest a significant of time and efforts to succeed. There are required readings in our text book, in-class exercises, homework assignments, and a final exam. Especially, please do not wait until the last minute to complete your assignments. There would be always some errors you would not expect. If you do, you may find that you simply don't have enough time to do the required work.