Description |
A technical introduction to the fundamentals of programming with an emphasis
on producing clear, robust, and reasonably efficient code using top-down
design, informal analysis, and effective testing and debugging. Starting
from first principles, we will cover a large subset of the Python
programming language, including its standard libraries and programming
paradigms. We will also target numerous deployment scenarios, including
standalone programs, shell scripts, and web-based applications. This course
assumes no prior programming experience. Even so, it is a fast-paced and
rigorous preparation for 15-122. Students seeking a more gentle introduction
to computer science should consider first taking 15-110. NOTE: students must
achieve a C or better in order to use this course to satisfy the
pre-requisite for any subsequent Computer Science course.
|
Learning Objectives |
At the end of the course, students should be able to:
- Write clear, robust, and efficient code in Python using:
- sequential, conditional, and loop statements
- strings, lists, tuples, sets, and dictionaries
- objects and classes
- recursive approaches
- graphics and interaction
- Develop programs to effectively solve medium-sized tasks by:
- employing modular, top-down design in program construction
- demonstrating an effective programming style based on established standards, practices, and guidelines
- proactively creating and writing test cases to test and debug code
- applying computational problem-solving skills to new problems, especially in the student's home academic discipline
- explaining and analyzing the efficiency of algorithms, particularly by predicting the Big-O running time of small pieces of code
- Design and write a substantial (500-1500 line) program in Python with minimal guidance
|