CS 2100: Program Design and Implementation I
Building on intro programming experience (from CS 2000 or a different institution), examines the fundamentals of program design and implementation. Studies design of data and object-oriented programs, including common patterns, use of data structures, and underlying principles such as abstraction, encapsulation, inheritance, and interfaces. Introduces common software engineering practices such as version control, writing tests, development environments, and good programming habits. Practices using these design principles by writing medium-sized applications and using data science code libraries. Continues to interweave ethical challenges and skills in program design.
Draft Content
This content is a work in progress.
Lectures
Topics
- Structure of this course and expectations for students
- Locations of relevant resources
- Practices for code-level design (style guidlines)
- Tracing Python code which includes types, and why it's important to keep track of the types
- Given a problem that has a function-sized solution, write a solution including documentation and tests
- Why Python?
Topics
Topics
Topics
Topics
Topics