Software Engineering (SENG)
SENG1210 | Application Development I | Lecture/Laboratory (4 Credits)
Develop a base level of proficiency in Python and Java programming languages employing simple and moderately complex data structures and algorithms. A range of programming concepts will be covered, including classes, objects, primitives, inheritance, encapsulation, abstraction, polymorphism, and interfaces.
Prerequisite(s): ENGR1210
SENG2210 | Software Design | Lecture/Laboratory (4 Credits)
Designing software with long-term software quality. Software quality attributes, domain-driven design, software design patterns, and documentation.
SENG2220 | Computer Organization | Lecture/Laboratory (3 Credits)
Develop basic knowledge of machine level architecture, microprocessors, instruction sets, the hardware/software interface, and machine representations of programs and data. Examine the influence of the underlying hardware system on the design of systems software such as operating systems, compilers, assemblers, and linkers and loaders using the Intel x86 and AtMEGA328P systems as examples.
Prerequisite(s): SENG1210
SENG2240 | Connected Devices Development I | Lecture/Laboratory (3 Credits)
Explore and implement Internet connected devices. Internet of Things (IoT) device design and implementation. Use the Raspberry Pi and a variety of sensors, actuators, networking, and programming techniques to create IoT devices. A knowledge of Python is required and prior programming experience.
Prerequisite(s): SENG1210
SENG3120 | Software Development Lifecycle | Lecture (3 Credits)
Explore and implement concepts related to software development pipelines, tooling, and lifecycle. Traditional and emerging software development life cycle models. Techniques for managing software projects. Techniques and tools related to each software development life cycle . Issues include those related to development and maintenance, quality, safety, security assurance, and project management.
Prerequisite(s): SENG3110
Corequisite(s): SENG3310
SENG3240 | Connected Device Development II | Lecture/Laboratory (3 Credits)
Advanced study of Internet connected devices. Design and implement applications and services for mobile and smart devices such as smartphones, smart displays, smart speakers. The Android architecture and operating system will be primarily used. Design challenges and opportunities in the mobile/smart device market. Students must have a strong background in application development, the software lifecyle/tooling, and Operating Systems.
Prerequisite(s): SENG3400
SENG3400 | Operating Systems | Lecture/Laboratory (3 Credits)
Analyze the purpose of operating systems. Topics include: elements of operating systems, memory and process management, interactions among major components of a computer system, the effects of computer architecture on operating systems, and an examination of how different operating systems (desktop, server, mobile, real-time) impact Software Design.
Prerequisite(s): SENG2220
SENG4111 | Senior Project I | Capstone (2 Credits)
End-to-end project exhibiting all skills related to the profession. Focus is on requirements elicitation, scheduling, planning, reviews and postmortem, configuration management, and implementation of the project.
SENG4210 | Senior Project II | Capstone (3 Credits)
End-to-end project exhibiting all skills related to the profession. Focus is on requirements elicitation, scheduling, planning, reviews and postmortem, configuration management, and implementation of the project.
Prerequisite(s): SENG4111 Or SENG4110
SENG4340 | Special Topics in Software Engineering | Lecture/Laboratory (3 Credits)
Explore selected industry trends in Software Engineering. Topics include natural language processing, microservices, architectures, and DevOps.
Prerequisite(s): SENG2210 And SENG3210
SENG4400 | Data Science & Machine Learning | Lecture/Laboratory (3 Credits)
Advanced topics in Data Analysis, Data Science, and Machine Learning. Analyze large datasets. Implement supervised and unsupervised learning.
Prerequisite(s): SENG2230