BSSWE -
Bachelor of Science in Software Engineering
Course Descriptions &
Prerequisites
SWE 1301 Software
Development I
Prerequisite: SWE 1302 or CS 1302
This course provides an overview of the software engineering discipline, introducing the student to the fundamental principles and methods of software engineering. This course highlights the need for an engineering approach to software. The course presents software development processes at the various degrees of granularity. This ranges from organizational processes to team and individual engineer’s processes. The role of standards (i.e., IEEE ) is illustrated. CS majors may not receive degree credit for this course.
Prerequisite: SWE 2312 and Math 2345
This course covers engineering activities related to the definition and representation of software system requirements . Topics include the elicitation, analysis, specification and validation of software system requirements.
Emphasis is on the application of processes and techniques of requirements engineering. Projects focus on current analysis methods and supporting tools for specification,organisation,change management ,traceability, prototyping and validating requirements.
Prerequisite: CS 3424 or CS 3153
The entire software engineering life cycle is explored, with emphasis on the initial phases. Topics include problem definition, systems analysis, requirements gathering, cost and benefit analysis, proposal preparation, prototyping, design techniques and usability testing. Software engineering principles, practices, and design standards are examined through case studies. Various tools are used by students in conjunction with real-world projects. A major component is a team project which goes through prototyping and usability testing. SWE majors may not receive degree credit for this course.
Prerequisite: SWE 2313
This course covers the fundamental design principles and strategy for software architecture and design. Architectural styles, quality attributes, notations and documents, reference architecture, domain-specific architecture in architecture process and pattern-oriented design, component-oriented design, and interface design in detail design process are discussed.
This course will show how software quality assurance and configuration management is performed and how software process improvement is maintained in order to assure the highest possible quality. Topics include software process metrics and their use in QA, testing approaches, methods and techniques. Development of QA plans, reviews, inspections and audits will be done. Configuration control boards and methods for software process improvement is discussed.
Prerequisite: CS 3243
The analysis and design course focuses on using modern methods, techniques, and tools for specification and design of embedded systems. Topics include analytical methods such as RMA, development methods such as HOOD, and notations like UML, Petri-nets, etc. are covered. Performance evaluation based on modeling and simulation techniques is also covered. This is a project based course.
Prerequisite: CS 3243
This course covers fundamental principles and techniques for embedded software engineering. It focuses on a component-based development approach to designing, implementing, and testing embedded programs. Topics include building standard-along and networked embedded systems, validation and verification of trustworthy embedded software, testing tools and environment, quality assurance and metrics for the embedded systems, and hardware/software co-design and co-testing
SWE 4324 User
Centered Design
Prerequisite:
SWE 1302 or CS 1302 or IT 1124 or CSE 1302
This
is a course that presents the fundamental
knowledge, processes, skills, and practices leading to the user-centered design
of computer systems and applications. The course addresses the effectiveness of
human interactions with computers by examining issues of physical ergonomics,
cognition and perception, human memory and information processing, and
evaluation of prototype software in a Usability Lab. Usability engineering
techniques are covered leading to improved system effectiveness in supporting
use of computers, user learning, diversity in interaction styles, and
individual versus group work. Class exercises provide practice of needed
skills. A major project that integrates all aspects of user-centered,
task-oriented design is included.
Prerequisite: CS 3424
This course focuses on the architecture, structure and methods for game design. Topics include: history of games, graphics, multimedia, visualization, animation, game design, software engineering, interactive fiction, game development environments, and commercialization of game systems. Understanding the art and science of game design, the development of complex virtual reality simulations, and the evaluation of human play environments are incorporated into the course.
Prerequisite: SWE 3424
This course covers a wide range of component-based software development skills, from analyzing and modeling a problem with component-based notations and architectures, to implementing a solution using a particular component technology. The principles and methodologies in component based software development will be discussed in depth focusing on component-oriented programming and its related technologies. Component-based tools and languages, approaches for implementation of component-based software, including designing, building, assembling, and deploying reusable COTS and in-house software components are discussed. Students will do projects focused on the life cycle of software components in various component technologies.
Prerequisite: SWE 2313
This course focuses on organizational and technical roles in software engineering. Models of software engineering life cycle, software maturity framework, strategies of implementing software, software process assessment, project planning principles and tools, software configuration management, managing software quality and usability, leadership principles and legal issues will be covered. A required team project combines technical and managerial techniques of software design and development.
Prerequisite: SWE majors: 3 of the following 4 courses: (SWE 3623, SWE 3633, SWE 3643, SWE 4663) & (TCOM 2010 & SPCH 2400); other majors: SWE 3624
This is a capstone project course and constitutes a major design experience. The course focus is on a team project comprising the development of a realistic software system during all phases of the software development life cycle. Topics include software project management , design, verification and validation, development, evolution and quality assurance. Current methods, techniques, and software tools are utilized in the development of the project.
Prerequisite: CS 3424
This course covers the concepts of object-oriented analysis, design, and programming. Topics include modeling foundations, requirements specification and documentation, design concepts and strategies, and OOAD methodologies with an emphasis on UML. The course include a major project utilizing current analysis and design methods and tools implemented in a contemporary IDE
Prerequisite: SWE 2313 or SWE 3624
This course follows a complete software-engineering cycle to produce software objects that support users in effective, efficient, and enjoyable interactions with computers. Class exercises and a project incorporate concepts and methods including ethnographic and user analysis; cognitive ergonomics; usability metrics and criteria; software-engineering practices, conventions, standards, and documentation; device-user action mapping; person-system function allocation; quality management systems; conceptual prototyping; embedded systems in support of ubiquitous computing; and function-behavior analysis.
Prerequisite: As determined by the instructor and Department Chair.
Special Topics selected by Department Chair. Offered on a demand basis. A student may repeat this course with special permission. Special Topics may cover the state of the art of Software Engineering.
Computer Science & Software Engineering (CSE) Courses
2-0-2
This course examines the various aspects of computing and the computing disciplines in today's world. The students will become familiar with topics such as computer software, hardware, algorithms, and number systems. They will also be exposed to what is expected in the fields of computing and the types of job opportunities that are available, as well as the facilities and curriculum offered within the School of Computing and Software Engineering. Institutional credit only.
CSE 1301 Programming & Problem Solving I
3-2-4
Prerequisite: MATH 1113 (or concurrently) or permission of the department; CSE 1002 (or concurrently) is recommended
This course provides an introduction to computer science with a focus on object-oriented programming. Instruction centers on an overview of programming, problem-solving, and algorithm development. Particular topics include primitive data types, arithmetic and logical operators, selection and repetition structures, interactive user input, using and designing basic classes, single dimension arrays with searching and sorting, and two-dimensional arrays. Programming assignments focus on techniques of good programming style including proper documentation. The student is taught to efficiently design, code, and debug problem solutions. A Windows environment is used in the closed lab.
CSE 1302 Programming & Problem Solving II
3-2-4
Prerequisite: CSE 1301
The second course in computer science provides coverage of more advanced topics of object-oriented programming. This includes the use of static variables and classes, multi-dimensional arrays, inheritance and polymorphism, text files and exception handling, recursion, and parameterized types. Elementary data structures (linked lists, stacks, and queues) are introduced to solve application problems. Graphical user interfaces and event driven programming are also introduced. Students must continue to use good programming style including proper documentation. Students use the Linux operating system in the closed lab.
CSE 2642 Professional Practices and Ethics
2-0-2
Prerequisite: CSE 1002 and either CSE 1302 or IT 1324
This course covers the historical, social and economic consideration of the discipline. It includes studies of professional conduct, risks, and liabilities, and intellectual property relative to the software engineering and computing professions. Software engineering/computing case studies will be used.