Introduction to Computer Science and Programming using Python
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.
About This Course
Let's start with the strategic goals of this course:
Help students (who may or may not intend to major in computer science) to feel justifiably confident of their ability to write small programs.
Map scientific problems into computational frameworks.
Position students so that they can compete for jobs by providing competence and confidence in computational problem solving.
Prepare college freshman and sophomores who have no prior programming experience or knowledge of computer science for an easier entry into computer science or electrical engineering majors.
Prepare students from other majors to make profitable use of computational methods in their chosen field.
6.00SC can be summarized with these six major topics or objectives:
Learning a language for expressing computations—Python
Learning about the process of writing and debugging a program
Learning about the process of moving from a problem statement to a computational formulation of a method for solving the problem
Learning a basic set of "recipes"—algorithms
Learning how to use simulations to shed light on problems that don't easily succumb to closed form solutions
Learning about how to use computational tools to help model and understand data
6.00 is designed to help you become skillful at making the computer do what you want it to do. Once you acquire this skill, your first instinct when confronted with many tasks will be to write a program to do the task for you. Said another way, we want to help you learn to apply computational modes of thought to frame problems, and to guide the process of deducing information in a computational manner.
This means that the primary knowledge you will take away from this course is the art of computational problem solving. Unlike many introductory level courses, having an ability to memorize facts will be of little help in 6.00. This course is about learning to solve problems, not learning facts. This, by the way, is exactly why all exams are open book.
Prerequisites and Preparation
This course is aimed at students with little or no prior programming experience but a desire to understand computational approaches to problem solving. Now, by definition, none of you are under-qualified for this course. In terms of being over-qualified — if you have a lot of prior programming experience, we really don't want you wasting your time, and in this case we would suggest that you talk to me about how well this class suits your needs, and to discuss other options. In addition, we want to maintain a productive educational environment, and thus we don't want over-qualified students making other students feel inadequate, when in fact they are only inexperienced.
Since computer programming involves computational modes of thinking, it will help to have some mathematical and logical aptitude. You should be confident with your math skills up to pre-calculus.