Time Schedule:
Michael D Stiber
CSS 162
Bothell Campus
Transition from basic programming skills to a rigorous process of software development. Familiarization with higher level programming techniques (recursion, generic programming) and constructs (object-orientation, lists, stacks, queues, searching, sorting). Emphasizes connection between mathematical/algorithmic thought (logic, sets, functions, number bases) and implementation. Prerequisite: minimum grade of 2.0 in CSS 161.
Class description
In this course, you will transition from a focus on basic programming skills to applying those skills to solve problems. You will do this by learning to think of software development as a rigorous process, in which the actual programming is one of the smallest parts. You will be introduced to higher-level problem solving approaches, such as recursion and generic programming, and larger-scale organization and algorithms, like object orientation, lists, stacks, queues, searching, and sorting. You will gain familiarity with software development techniques, such as the importance of thinking about specifications, design, and testing before coding and the utility of incremental development in an exploratory environment. You will also develop an understanding of the mathematical nature of software development by examining the relationship algorithms, programs, and the underlying theory, including logic, sets, functions, number bases.
Student learning goals
General method of instruction
Recommended preparation
Class assignments and grading