Valentin N. Razmov
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 bring you up to speed for taking Junior and Senior level CSS courses. It does this by integrating fundamental mathematics of computing with detailed instruction in program design. By the end of the quarter, you will be familiar with the basics of object-oriented programming, as reflected in much of the C++ language. You will understand how to analyze a problem, design and evaluate a solution. You will know many basic data structures, algorithms, and the tradeoffs among memory usage, running time, and implementation time associated with each. Good software engineering techniques will be used throughout. 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. In short, completing the course successfully you will be on your way to becoming a professional in the field. You will also know more clearly some aspects of what a programming job involves, and if it is the right opportunity for you personally.
Student learning goals
General method of instruction
Class assignments and grading