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
SENG1310 | Data Fundamentals | Lecture/Laboratory (3 Credits)
Beginning course in data usage and management including language syntax, document model, document types, schemas with a focus on creating structured data for business, IT, and IoT applications. Integration of relational database concepts and design of database management systems for enterprise information needs. Data modeling and Structured Query Language (SQL) used for data definition to construct physical databases, for data manipulation and for data computation. Student are required to have introductory programming experience.
Prerequisite(s): ENGR1210
SENG2200 | Business Requirements & Analysis | Lecture/Laboratory (3 Credits)
Software and related technologies must meet the requirements of the stakeholders and the domain for whom the solution is built or configured. Examine scope definition, business, stakeholder and solution requirement definition, select business analysis modeling techniques, the relationship of business requirements and analysis to software design and testing, and a range of methodologies, techniques and approaches.
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
SENG2230 | Application Development II | Lecture/Laboratory (3 Credits)
Advanced concepts in enterprise application development in the areas of web application frameworks, data driven applications, and advanced development such as machine learning are examined and applied.
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
SENG2310 | Data Architecture | Lecture/Laboratory (3 Credits)
Intensive course in data architecture and management. Advanced data modeling principles. Structured Query Language, database normalization, database management systems (DBMS), implementation-independent database design, and security. Database server technology for enterprise-class data services and complex business logic. Server architecture, data integrity, data types, indexing, constraints, stored procedures, database schemas, normalization, data warehouses, data mining, data cubes.
Prerequisite(s): SENG1310
SENG3110 | Software Testing | Lecture/Laboratory (3 Credits)
Investigate testing methodologies. Tools and techniques in automated testing. Creation of documentation at all stages of testing.
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
SENG3210 | Distributed Systems Design | Lecture/Laboratory (3 Credits)
Design & Architecture of large-scale software and data systems. Architectural patterns, software quality, documentation of scenarios. Design for Cloud-based solutions. Presentation to management for project funding and go-no go decision making. Reusable component design and development. Explanation to design and development personnel.
Prerequisite(s): SENG2230
SENG3230 | Human-Computer Interaction | Lecture/Laboratory (3 Credits)
Design and evaluate interactive application interfaces, user- and task-centered approaches to design, guidelines for graphical design, interface evaluation techniques, current interface trends, including web interfaces and information visualization. Group projects that include designing, prototyping, and implementing an application interface.
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
SENG3250 | Distributed Systems Implementation | Lecture/Laboratory (3 Credits)
Implement a large scale software and data system on private and/or public cloud infrastructure. And end-to-end architecture will be implemented by student including software, data architecture, pipeline tooling, networking, etc. The student will implement the end-to-end project as a Junior year capstone, readying the student for their design project in the Senior year.
Prerequisite(s): SENG3210
SENG3300 | Data Introduction | Lecture/Laboratory (3 Credits)
Accelerated beginning course in data usage and management including language syntax, document model, document types, schemas and stylesheets from EXtensible Markup Language (XML) with a focus on creating structured content and data for business application. Integration of relational database concepts and design of database management systems for enterprise information needs. Data modeling with Unified Modeling Language (UML) and Structured Query Language (SQL) used for data definition to construct physical databases, for data manipulation and for data computation.
SENG3310 | Database Systems | Lecture/Laboratory (4 Credits)
Accelerated course in data management. Database server technology for enterprise-class data services and complex business logic. Server architecture, data integrity, data types, indexing, constraints, stored procedures, database schemas, normalization, data warehouses, data mining, data cubes. Structured Query Language, database normalization, database management systems (DBMS), implementation-independent database design, and security.
Prerequisite(s): SENG3300
Corequisite(s): SENG3120
SENG3320 | Database Server Administration | Lecture/Laboratory (3 Credits)
Provides a strong foundation to configure, manage, and maintain SQL server databases. Practice SQL server architecture, query design, performance tuning, troubleshooting, and SQL clustering through work on real-time projects.
Prerequisite(s): SENG3310
SENG3340 | Data Structures & Algorithm Development | Lecture/Laboratory (3 Credits)
Investigate fundamental and advanced data structures. Examine common algorithms used for searching, sorting, tree and graph traversal. Explain algorithms and the data structures used to solve problems efficiently, such as linked lists, stacks, queues, and recursion structures. Apply advanced Object Oriented concepts. Demonstrate the use of algorithms and data structures in the creation of Web and IoT applications.
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
SENG3410 | Embedded Systems | Lecture/Laboratory (3 Credits)
Introduction to the various building blocks and underlying scientific and engineering principles behind embedded real-time systems. Topics include the integrated hardware and software aspects of embedded processor architectures, along with advanced topics such as real-time, resource/device and memory management.
SENG3420 | DevOps - Development Operations | Lecture/Laboratory (3 Credits)
Investigate DevOps concepts and processes. Perform project management duties in an Agile DevOps team. Design and implement build, automation, and deployment technologies. Create presentations for management.
SENG4110 | Software Engineering Senior Project I | Lecture/Laboratory (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.
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.
SENG4310 | Security I | Lecture/Laboratory (3 Credits)
Integration of data and users with an emphasis on security will be used in client/server, Internet, intranet/extranet, and other technologies. Review state-of-the-art technologies in each of the basic software and hardware arenas, while emphasizing management models and higher-level analysis using the computer.
SENG4320 | Security II | Lecture/Laboratory (3 Credits)
Explore fundamental and emerging concepts of computer security. Topics include: maintaining information confidentiality, protecting information integrity, assuring information availability, physical, technical, application, and Internet security, social engineering and associated attacks.
SENG4330 | Audit & Compliance | Lecture/Laboratory (3 Credits)
Perform compliance auditing of process safety management (PSM) and risk management program (RMP) systems in accordance with OSHA and EPA regulations. Demonstrate the fundamentals of compliance auditing and how to perform compliance auditing of PSM and RMP programs.
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.
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