Computer Science Department
College of Sciences & Mathematics

CSC402 Syllabus

  1. Course number and name

    CSC402 – Software Engineering

  2. Credits and contact hours

    3 Credit Hours

  3. Instructor’s or course coordinator’s name

    Instructor: Dr. Richard Epstein, Professor of Computer Science
    Course coordinator: Dr. Richard Epstein, Professor of Computer Science

  4. Text book, title, author, and year

    Introduction to the Personal Software Process, Watts Humphrey (SEI), Addison-Wesley, 1999.

    Other Supplemental Materials

    Most of the course is focused on our "coursepack," which consists of articles students can access via the IEEE Computer Society and ACM digital libraries. Most of the articles come from IEEE Software and the Communications of the ACM.

  5. Specific course information
    1. brief description of the content of the course (catalog description)

      This course focuses on more advanced topics in object-oriented programming, including project design, planning, and testing using milestones and checklists. Programming topics include text processing (including the StringBuilder and StringTokenizer classes), inheritance, polymorphism, abstract classes, interfaces, generic classes, exception classes, exception throwing and handling, random access files, serialization, and an introduction to some basic data structures, such as collection classes and linked list.

    2. prerequisites or co-requisites

      Prerequisite: CSC241 Data Structures and Algorithms

    3. indicate whether a required, elective, or selected elective course in the program

      Required course.

  6. Specific goals for the course
    1. specific outcomes of instruction
      • Students will have a broad understanding of the discipline of Software Engineering
      • Students will have a broad understanding of the kinds of software processes that are used in software development (from waterfall processes to agile processes)
      • Students will be able to create software processes for an organization
      • Students will be able to integrate security issues into a defined software process
      • Students will understand the basic phases included in a software process
      • Students will be able to work in teams
    2. explicitly indicate which of the student outcomes listed in Criterion 3 or any other outcomes are addressed by the course.

      Course addresses Student Outcomes (d), (e), (g) and (h).

  7. Brief list of topics to be covered
    • Introduction to Software Engineering (including historical elements)
    • The Personal Software Process (PSP)
    • Agile processes, such as eXtreme Programming and Scrum
    • The Capability Maturity Model Integrated (CMMI)
    • Security and Software Engineering
    • Work culture issues: team work, congruence, beyond blaming
    • Conflicts in software development (e.g., conflicts between testers and developers)
    • Exception throwing and handling
    • Quality assurance
    • Global software development (e.g., offshore outsourcing)