Carnegie Technical Schools
Certificate in Software System Development
Draft Curriculum

April 16, 1998

The goal of the Software Systems Development curriculum is to prepare students for careers in software development. Accordingly, it not only incorporates the detailed skills and knowledge needed to work in the present-day software environment, but also stresses fundamental concepts that persist across rapid technology changes. All courses involve extensive hands-on assignments.

A distinguishing feature of the curriculum is that its courses form a tightly integrated whole. Success in each course depends on mastery of the material in the prerequisite courses. Furthermore, all of the courses are embedded in a context of useful system development: students are continually reminded that software is built to meet requirements, and that it must be functional, usable, robust and maintainable. The program uses a standard software development process, which is introduced in the first course and elaborated in more depth throughout the program.

SSD-1   Introduction to Information Systems

SSD-2    Introduction to Computer Systems

 SSD-3    Object Oriented Programming and Design

  SSD-4    User Centered Design and Testing

 SSD-5    Data Structures and Algorithms

 SSD-6    System Level Programming

 SSD-7    Database Systems

SSD-8    Networks and Distributed Computing

 SSD-9    Software Specification, Test and Maintenance

SSD-10   Software Project Organization and Management

Prerequisite Structure

Notes

The curriculum sketched above involves ten courses, in a prerequisite structure requiring at least four semesters to complete the program. A somewhat lighter-weight curriculum could condense courses 5 and 6 (data structures and system-level programming) into one, and/or condense courses 9 and 10 (software engineering and project management) into one. It does not appear to be sensible to further collapse the prerequisite structure, however. Note that courses 9 and 10 may lend themselves to incorporation of internship arrangements.