Introduction, software engineering techniques, review of topics from CS125, abstract and concrete data types. Recursion, iteration, induction. Run-time analysis of iterative and recursive programs. Trees, Binary search trees and heaps. Graphs and some simple graph algorithms.
All exams are open book.
The student can expect to spend a considerable amount of time on programming assignments. If you collaborate with fellow classmates, you must turn in a single assignment with all the collaborators names clearly visible. You must understand the assignment as if you completed the assignment without collaboration. Finally, all collaborators must be present when any work on the assignment is being performed. Plagiarism, or any other academic misconduct, is punishable by dismissal from the class.