Although students are free to take course requirements in any order they choose, provided they have mastered the course-specific prerequisites, it is strongly recommended that students follow these year-by-year suggestions, especially regarding the first-year major courses.
INTRODUCTION TO SOFTWARE ENGINEERING
This course introduces students to the activities performed at each stage of the development process so that they can understand the full lifecycle context of specific tasks such as coding and testing. Topics will include software development processes, domain modeling, requirements elicitation and specification, architectural design and analysis, product and process level metrics, configuration management, quality assurance activities including user acceptance testing and unit testing, project management skills such as risk analysis, effort estimation, project release planning, and software engineering ethics. PREREQUISITE(S): CSC 212 or CSC 224 or CSC 396 or CSC 242 or CSC 262 or IM 330 or CSC 243
USER INTERFACE ARCHITECTURE AND DEVELOPMENT
Fundamentals of design and implementation for graphical user interfaces (GUIs). Students design a GUI-based application following the user-centered design process and implement it using the Moderl-View-Controller architecture. Topics include usability engineering, event dispatching, multi-threaded programming, GUI widget toolkits, frameworks and customization. PREREQUISITE(S): SE 350