Computer Software Engr. (CEN)
CEN 3031 - Software Engng Fundamentals (3 Credits )
The software engineering process stages are studied and applied to the development of a significant computer application using object-oriented design. These stages include requirements, design, prototyping, implementation, documentation, testing, code reviews, maintenance, and enhancements. Tools and strategies to use at the various stages are explored, including those used in the management of large amounts of code.
Prerequisite(s): COP 3003
CEN 3073 - Requirements Engr & Analysis (3 Credits )
Covers the analysis of software requirements, and the study of requirements engineering tools and techniques. Includes requirements elicitation, gathering, formalizing, specification, and validation.
CEN 3078 - Computer Security (3 Credits )
This course covers the foundations of computer security, discussing threats, vulnerabilities and attacks that exploit them. Prevention and mitigation techniques will be covered, from threat modeling, to building security in the design, to penetration techniques, and others. Emphasis will be given on addressing security at respective stages of the software development cycle, including security assessment.
Prerequisite(s): COP 3003
CEN 3941 - Internship in Software Engr (1-3 Credits )
An experiential learning exercise that allows for practical application of knowledge acquired from the software engineering curriculum or program. Applicable to both unpaid and paid internships held within the current academic year or subsequent summer. This work is usually completed off campus and the student will have a qualified supervisor at the site as well as a faculty mentor who will jointly evaluate the student's progress Students are expected to have an internship or offer letter prior to the first day of class. Students without active internships will not be allowed to continue in the class.
Prerequisite(s): COP 3530
Attribute(s): WBLI - Work based learning indicator
CEN 4026 - Software Maint & Evolution (3 Credits )
This course introduces students to the processes, methods, techniques, and tools in software maintenance and evolution. Topics include, but not limited to, concept location, change management and implementation, impact analysis, program comprehension, reverse engineering, re-engineering, and software analysis.
Prerequisite(s): CEN 3031
CEN 4065 - Software Architecture & Design (3 Credits )
This course guides the students through the engineering process of building the software architecture and designing the software product according to rigorous design criteria. Additional emphasis is placed on the use of design tools and applications from the area of embedded real-time systems.
Prerequisite(s): CEN 3031
CEN 4072 - Software Testing (3 Credits )
This course focuses on the theory and practice in software testing. The theory part will mainly deal with criteria of test coverages, such as structure coverage, data flow coverage, input partition coverage, etc. The practical part will introduce software tools and frameworks for different types of software testing, such as unit testing, integration testing, regression testing, etc.
Prerequisite(s): CEN 3031
CEN 4083 - Intro. to Cloud Computing (3 Credits )
This course introduces cloud computing technologies to students. Topics include virtual instances, cloud storage, private cloud, databases in the cloud, queue services, data analytics in the cloud, etc. The instructor will choose an established cloud provider to demonstrate concepts.
Prerequisite(s): COP 3530
CEN 4216 - Cyberphysical Systems (3 Credits )
Students will learn fundamental concepts of designing and programming cyberphysical systems, understood as networked embedded computer systems, including their requirements specifications, architectural and detailed design, and implementation, focusing on real-time aspects of programming languages and operating system kernels. Learning the concepts will be enforced by a Project to design and develop a software application of practical importance.
Prerequisite(s): CEN 3031
CEN 4721 - Human Computer Interaction (3 Credits )
This course introduces the area of Human Computer Interaction (HCI). Principles, theory, and applications of HCI pertaining to computing devices and ecosystems are discussed. Methods, tools, and techniques for designing and evaluating interactive systems will be covered. The interdisciplinary nature of HCI will be noted.
Prerequisite(s): COP 3003
CEN 4930 - Special Topics in Software Eng (1-3 Credits )
This course covers topics in software engineering, with an emphasis on recent developments. Topics and credit may vary.
CEN 4934 - Senior Software Engr Project I (3 Credits )
Students will apply conceptual and foundational knowledge of software engineering concepts on realistic software development/maintenance projects. Students are expected to work in groups and to deliver a sizable set of artifacts and products.
Prerequisite(s): CEN 3073
CEN 4935 - SeniorSoftware Engr Project II (3 Credits )
This is the second course in a year-long sequence of a senior software project. Students are expected to continue their software project from the first project course, i.e., Senior Software Engr Project I. Final report and presentation are among the deliverables.
Prerequisite(s): CEN 4934
CEN 5079 - Secure Software Development (3 Credits )
This course provides an introduction and overview of security practices in software and systems engineering. Includes characteristics of secure software, security in the development lifecycle, designing secure software, risk analysis, threat modeling, defensive coding, penetration testing, static analysis, and best practices.