An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, algorithmic efficiency, and the use and implementation of standard data structures and algorithms, such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language. Students are required to attend an additional two-hour laboratory section each week.
Max Enrollment: 24
Prerequisites: CS 111 and permission of the instructor.
Distribution Requirements: MM - Mathematical Modeling and Problem Solving
Typical Periods Offered: Spring; Fall
Semesters Offered this Academic Year: Fall; Spring
Notes: Does not fulfill the laboratory requirement.