- Course number and name
CSC402 – Software Engineering
- Credits and contact hours
3 Credit Hours
- Instructor’s or course coordinator’s name
Instructor: Dr. Richard Epstein, Professor of Computer Science
Course coordinator: Dr. Richard Epstein, Professor of Computer Science
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.
Specific course information
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.
prerequisites or co-requisites
Prerequisite: CSC241 Data Structures and Algorithms
indicate whether a required, elective, or selected elective course in the program
- Specific goals for the course
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
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).
- 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)