Michael D Stiber
Integrating mathematical principles with detailed instruction in computer programming. Explores mathematical reasoning and discrete structures through object-oriented programming. Includes algorithm analysis, basic abstract data types, and data structures. Prerequisite: minimum grade of 2.5 in CSS 162; B CUSP 124; may not be repeated.
Along with CSS 343, this fast-paced course is intended to get you up to speed so you can take Junior and Senior level CSS courses. It does this by integrating the fundamental mathematics of computing with detailed instruction in program design. By the end of this quarter, you will be familiar with much of the C++ language and the basics of object-oriented programming. You will understand how to analyze a problem and design a solution. You will know many basic data structures, algorithms, and the tradeoffs among memory, running time, and implementation time associated with them. Topics include: recursion, computational complexity and algorithm analysis, logic, mathematical proofs and induction, lists, stacks, queues, sorting and searching, data abstraction, and object-oriented methods.
Student learning goals
Be familiar with object-oriented programming in the C++ language.
Understand pointers and memory management, including errors that can result from them.
Be able to analyze more complex problems and design solutions that involve multiple, cooperating classes.
Know algorithm analysis (both time and space complexity).
Be able to implement and analyze a full range of basic and more complex data structures and algorithms.
General method of instruction
Lectures and in-class activities, both individual and group. Substantial programming assignments, gradually building in scope as the quarter progresses. On-line activities, including required discussion participation.
Successful completion of CSS 161 and CSS 162 or equivalent. Enthusiasm for learning new things and being challenged, creating a supportive environment for classmates a plus.
Class assignments and grading