IT 501 Software Systems
Fall 2001

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, MWF 4:00-5:00. Lab: Science Center 334, MW 5:00-6:00.

Instructor. Alexis Maciel. Science Center 379, 268-2385, alexis@clarkson.edu.

Office Hours. Monday to Friday 3:00-4:00, and by appointment.

Required Text.

Course Objectives.

  1. To teach you fundamental programming concepts including data abstraction, basic data structures, dynamic data structures, basic notions of object-oriented programming, analysis of algorithms and recursion.

  2. To further develop your coding and debugging skills.

  3. To familiarize you with programming in a Unix environment.
Demonstrable outcomes. By the end of the semester,

  1. You will have a good understanding of the concepts mentioned in Objective 1 above.

  2. You will be able to design and implement C++ programs of a moderate size using data abstraction, basic data structures, dynamic data structures, basic notions of object-oriented programming and recursion.

  3. You will be able to implement basic data structures including lists, stacks and queues.

  4. You will be able to analyze the running time of simple algorithms.

  5. You will be able to develop software in a computer system running the Unix operating system.

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:

Homework assignments 15%
Quizzes 20%
Two tests 30%
Final exam 35%

The average grade on the tests and the final exam will replace any lower grade on a quiz. Tentative dates and location for the tests: October 5 and November 7, during class time, in CAMP 177. 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.