Official Course Description. This course is an introduction to software design and implementation. After a review of basic programming concepts, students will be introduced to procedural and data abstraction, object-oriented design, recursion and dynamic data structures. Abstract data types such as lists, stacks, queues, and trees will be studied. Algorithms for searching and sorting will be explored along with methods for comparative analysis. Programming concepts will be demonstrated in a language like C++. The course will also include an introduction to the Unix operating system.
Prerequisites. Programming Experience.
Location and Times. Science Center 354, TuTh 11:00-12:15.
Instructor. Chris Lynch. Science Center 377, 268-2384, email@example.com.
Office Hours. TTh 2:30-5:00 but they will probably change
Teaching Assistant. Todd Deshane. Office Hours: TBA, in the ITL lab (SC334).
Required Text. Online book. Table of Contents, Chapter 1, Chapter 2, Chapter 3, Chapter 4, Appendix, Bibliography, UNIX reference.
Topics to be covered. Data abstraction, classes, object-oriented design, lists, vectors, stacks, queues, linked lists, iterators, templates, the STL, analysis of algorithms, recursion, sound programming principles, basic Unix concepts and commands. If time permits, inheritance, polymorphism, trees and binary search trees.
Grading. Your evaluation will be based on several homework assignments, which will be mostly programming assignments, two tests, and a final exam. Your course grade will be computed using the following formula:
I will soon give dates for the two exams.
Policy for missed work. There will be no make-up assignments. Late assignments may be accepted if a good excuse is provided and if arrangements are made at a reasonable time, in advance, if possible. Make-up tests can be arranged under the same conditions. Other special arrangements can be made for students forced to miss more than a few days of class.