This two-part course (part 1) introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems.
To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.
After completing this course, you will have a much stronger background in Computer Science and be capable of writing Python programs that are both efficient and well-structured. You will also have a better understanding of how to approach more complex computational problems. As always, our goal is to teach these principles of computing in a fun and exciting way. We look forward to seeing you in class!
1. Introduction, coding standards
2. Testing, plotting
3. Probability, randomness, objects/references
4. Combinatorics, generators, debugging
5. Counting, growth of functions, higher-order functions
6. Searching, data structures, inheritance
7. Recursion, sorting, reading files
8. Trees, game solvers, testing
9. Design of abstractions, invariants, models
The second part of the course will last four weeks. The lectures from each week will focus on the topics listed in the syllabus while an associated weekly mini-project will serve to reinforce these concepts in practice. Grades for these mini-projects will be determined via machine-grading. The class will also include a weekly homework designed to reinforce the mathematical concepts in the class material.
4 weeks (7-10 hours/week)
10th Jul, 2015- 8th Aug, 2015