An introduction to computer science using the C and Python programming languages.
We have five weeks to cover a number of challenging subjects. The following schedule is subject to change.
- Week 1: Beginning C: Variables (int, double, char), Boolean expressions, Control (if, while, for), Functions.
- Week 2: Moderate C: Functions, Testing, Arrays, Strings, Dynamic Memory
- Week 3: Advanced C: Dynamic Memory, Structs, Data structures
- Week 4: Advanced C / Beginning Python: Lists, Classes
- Week 5: Advanced Topics: Higher order functions, plotting, algorithms, etc… Dependent on class interests.
This course assumes no prior knowledge of programming or computer science. Some elementary background in Math will be assumed.
There are two recommended texts for C. They are both useful but not required. For Python we will use primarily online resources.
C Programming, a Modern Approach by K.N. King
The C Programming Language by Brian Kernighan and Dennis Ritchie
The text by Kernighan and Ritchie is well respected among computer scientists. However it is very concise and may not be the best choice if you need in depth explanations. It is an excellent reference and good for the impatient reader. It is also relatively cheap.
The text by King is much more approachable. He has more explanations and examples. However it is larger and a bit more expensive.
Both are available at the Seminary Co-op Bookstore and at Amazon. Neither are required but getting one is strongly suggested. Readings will be provided from both as the course progresses so that you can follow along.
Tentative Grading Scheme
- Programming assignments: 60%
- Weekly Quizzes: 40%
Differences in the Summer
CS 152 in the Summer differs from the course taught in the Fall. The enrollment in the Summer usually consists of a greater number of non-majors than normal. As a result this course will spend more time on standard data analysis tasks and a broad overview of programming paradigms and will spend less time on systems-related topics, notably advanced data structures. If you wish to continue on to CS-154 you will need to do some work independently to fill in the gaps.