CSC 450: Software Engineering
Study of the design and production of large and small software systems. Topics include systems engineering, software life-cycle and characterization, use of software tools. Substantial software project required.
CSC 332 and senior standing.
Substantial knowledge of programming-in-the-small including: (1) a knowledge of fundamental programming concepts - data structures, data abstraction and hiding, modularity; (2) a working knowledge of at least one modern high-level programming language; (3) a basic knowledge of formal methods and models - analysis of algorithms, computability, automata and formal languages. Undergraduate level mathematics: discrete mathematics (set theory, logic, algebra).
Software Engineering A Practitioner’s Approach, 7th Edition
Roger S. Pressman,
UML Distilled: A Brief Guide To The Standard Object Modeling Language, 3rd Edition
Current Semester Pages: