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 360, MWF 3:00-4:00.
Instructor. Alexis Maciel
Office: Science Center 379
Office Hours. MWThF 2:00-3:00, Tu 1:30-2:30, and by appointment.
Topics to be covered. Data abstraction, classes, lists, stacks, queues, linked structures, inheritance, polymorphism, analysis of algorithms, recursion, sound programming principles, basic Unix concepts and commands, and, if time permits, trees.
Grading. Final grades in the course will be computed according to the following scheme:
The average grade on the tests and the final exam will replace any lower grade on a quiz. Tentative dates for the tests: February 20 and April 3, in class. All students are required to write the final exam (no A or B exemptions).
Policy for missed work. There will be no make-up assignments or quizzes. 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.