Develops competencies associated with problem-solving, algorithms, and computational models. Covers abstract data types and data structures, efficiency of algorithms, binary tree representations and traversals, searching, dictionaries, priority queues, hashing, directed graphs and graph algorithms, and language grammars. Prerequisite: minimum grade of 2.0 in CSS 301; minimum grade of 2.0 in either CSS 263 or CSS 342; minimum grade of 2.0 in either B CUSP 125 or MATH 125; may not be repeated.
Refining and extending the concepts and skills introduced in CSS342, students develop competencies associated with problem-solving, design, testing, programming, and management techniques. By the end of this quarter, you will be confident C++ programmers and will be comfortable with the basics of object-oriented design and programming. You will understand how to analyze a problem and design a solution, recognizing when existing techniques and software are reusable. You will know many basic data structures, algorithms, and the tradeoffs among memory, running time, and implementation time associated with them. Topics include: trees, tables and priority queues, graphs, grammars, data abstraction, modules, reusable type, object-oriented design, OO programming, project management methods, computational complexity and algorithm analysis.
Student learning goals
General method of instruction
Lecture, problem-solving, board work.
Positive attitude towards learning lots of new stuff; Willingness to work hard; Competency in C++ and elementary data structures;
Class assignments and grading