Courses

    • CGDD 2002 - Fundamentals of Game Design

      This course presents an overview of the history of computer games and the theory of gaming. Topics include game genres, content, patterns, playability, suspension of disbelief and immersion, storytelling, and game balance and fairness. Students are required to analyze historical and current games and must also develop a computer-based prototype of an original game

      Prerequisites: A grade of B or better in both CSE 1322 and CSE 1322L 

      Credits: 4

    • CGDD 2290 - Special Topics

      Special topics selected by the CGDD Department. The course covers special topics at the intermediate level that are not in the regular course offerings.

      Credits: 3

    • CGDD 3103 - Application Extension and Scripting

      This course provides an introduction to the use and extension of applications for content creation and management. Both the theoretical as well as applied aspects of extensible application architectures and plug-ins are covered. Existing and emerging scripting languages will also be discussed extensively, and programming in these scripting languages is covered. Students will explore and utilize current applications and must create extensions to these applications.

      Prerequisites: CGDD 2002 and a grade of B or better in both CSE 1322 and CSE 1322L 

      Credits: 3

    • CGDD 4003 - Digital Media and Interaction

      This course explores how digital media is created and utilized within computer games and simulations. Topics include sound, video, text, images, character modeling, animation, game world and level generation (2D and 3D), and current and emerging interaction techniques. Students are required to work in teams to produce a multimedia term project.

      Prerequisites: CGDD 3103 

      Credits: 3

    • CGDD 4113 - 3D Modeling and Animation

      This course explores the theory and application of 3D geometric model generation and animation. Topics include mesh and Non-uniform Rational B-Spline (NURB) modeling, textures, subdivision and levels of model detail, rigid/constrained body dynamics, and non-rigid/fluid dynamics. Students will be required to develop and animate a complex model, and a significant project is required

      Prerequisites: CS 3305 and CS 3305L  

      Credits: 3

    • CGDD 4203 - Mobile & Casual Game Development

      This course explores the segments of mobile (handheld, PDA and cell-phone) and casual gaming. Aspects of mobile hardware resources such as smaller memory, limited processor capabilities, and smaller displays are discussed; implications of such limitations to design and playability are also presented. Patterns of casual game development and emerging markets for casual games are also explored. A term project exploring mobile and/or casual game development is required.

      Prerequisites: CGDD 4003 

      Credits: 3

    • CGDD 4303 - Educational and Serious Game Design

      This course presents the history, theory, and current best practices of serious gaming and the use of serious games to educate and train. This course focuses on how to engage and entertain while presenting informative interfaces to the user. Topics include motivation, designing engaging learning interfaces, knowledge transfer from the game environment to the real world, assessment of learning, and instructional value. A design/prototype project is required.

      Prerequisites: CGDD 4003 

      Credits: 3

    • CGDD 4313 - Designing Online Learning Content and Environments

      This course explores the use of online environments to present educational content for users. Topics include: interaction patterns in online learning environments, providing accessible and intuitive materials, multi-modal presentations of content, and the benefits and limitations of online learning environments. This course requires a critique of existing online environments and the development of a new learning environment, and human-computer interaction issues are an important consideration for this course.

      Credits: 3

    • CGDD 4490 - Advanced Topics

      This course offers advanced topics selected by the CGDD Department. The course covers special topics at the senior level that are not in the regular course offerings.

      Prerequisites: Permission of the CGDD Department

      Credits: 3

    • CGDD 4603 - Production Pipeline and Asset Management

      This course provides an in-depth exploration of the production of media content. This course covers elements of the production pipeline from concept to content generation to post production and quality assurance. Topics include asset creation and management, cost-quality tradeoffs, and phases of production. Current and emerging models of the production pipeline such as user-generated content and participation will also be discussed. A significant, team-based project is required.

      Prerequisites: CS 4722 

      Credits: 3

    • CGDD 4703 - Data Modeling and Simulation

      This course provides an introduction to modeling and simulation. Both the theoretical as well as applied aspects of simulation are covered. Topics include discrete-event simulation, states, transitions, model definition, model quality, input and output analysis, input distributions, experimental design, optimizing models, levels of model detail, cost-quality tradeoffs, verification, and validation. Students will be required to simulate a complex system which necessitates the creation of models. Students will explore and utilize a simulation API.

      Prerequisites: MATH 2332 

      Credits: 3

    • CGDD 4803 - Studio

      This course begins the studio experience and explores the application of game design and development in a structured environment; teams build applications utilizing best practices in software engineering including asset, project, configuration, and requirements management. Students in this Studio course will assume an apprentice position within their teams and learn from more senior students taking the Capstone course. This course involves weekly status, design, and development meetings.

      Prerequisites: CGDD 4003 

      Credits: 3

    • CGDD 4814 - Studio 2

      This course continues the studio experience from CGDD4803 and further explores the application of game design and development in a structured environment; teams build applications utilizing best practices in software engineering including asset, project, configuration, and requirements management. Students taking this Capstone course will assume a senior position within their teams and provide mentoring to students taking the Studio course. This course involves weekly status, design, and development meetings.

      Prerequisites: CGDD 4803 

      Credits: 4

    • 13

    Return to Top

    • SWE 3313 - Introduction to Software Engineering

      This course provides an overview of the software engineering discipline, introducing the student to the fundamental principles and processes of software engineering. This course highlights the need for an engineering approach (both personal and team) to software with understanding of the activities performed at each stage in the development cycle. In this course, students will perform requirements analysis, design, implementation and testing. The course presents software development processes at the various degrees of granularity. Students will become aware of libraries of standards (IEEE, ACM, SWEBOK, etc.).

      Prerequisites: (CSE 1322 and CSE 1322L) or (IT 1323 and IT 1323L) 

      Credits: 3

    • SWE 3623 - Software Systems Requirements

      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, organization, change management, traceability, prototyping, and validating requirements.

      Prerequisites: (SWE 3313 and CSE 2300) or CPE 3000 

      Credits: 3

    • SWE 3633 - Software Architecture and Design

      This course covers the fundamental design principles and strategy for software architecture and design. Architectural styles, quality attributes, design notations and documents, reference architecture, domain specific architecture in architecture process and pattern-oriented design, component-oriented design, and interface design in detailed design process are discussed.

      Prerequisites: SWE 3313 or CPE 3000 

      Credits: 3

    • SWE 3643 - Software Testing & Quality Assurance

      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.

      Prerequisites: SWE 3313 or CPE 3000 

      Credits: 3

    • SWE 3683 - Embedded Systems Analysis and Design

      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.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • SWE 3843 - Embedded Systems Construction and Testing

      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 embedded systems, and hardware/software co-design and co-testing.

      Prerequisites: CS 3243

      Credits: 3

    • SWE 4324 - User-Centered Design

      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. 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.

      Prerequisites: SWE 3313 

      Credits: 4

    • SWE 4490 - Special Topics

      This course offers advanced topics in Software Engineering selected by the Department. The course covers special topics at the senior level that are not covered in the regular course offerings.

      Credits: 3

    • SWE 4633 - Component-Based Software Development

      This course covers the concepts and foundations of component-based software development (CBSD) and its related technologies. Component-oriented tools and languages, approaches for implementation of CBSD, including designing, building, assembling, and deploying reusable COTS components are discussed in depth. The current component technologies such as Microsoft .NET components, Sun JavaBeans and Enterprise JavaBeans components, and web services components will be explored.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • SWE 4663 - Software Project Management

      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.

      Prerequisites: SWE 3313 and MATH 2332 

      Credits: 3

    • SWE 4713 - SWE Application Domain

      Students work as part of a team to develop solutions to problems posed by either internal or external customers in a specific SWE Application Domain. The purpose of the course is for the student to gain an understanding of the selected application domain, and its use of software to support functions/operations within that domain. Application domain selection is done every term from a variety of industrial domains including Security, Gaming, Automotive, Aerospace, Military, Finance and Commerce. Problems may require considerable software development or evolution and maintenance of existing software products. The course culminates with the completion and presentation of an increment of the project solution.

      Prerequisites: Two of the three: SWE 3623, SWE 3643, SWE 4663 

      Credits: 3

    • SWE 4724 - Software Engineering Project

      This is the 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.

      Prerequisites: TCOM 2010 & COM 1100 & Three of the following: SWE 3623, SWE 3633, SWE 3643, SWE 4324, SWE 4663 

      Credits: 4

    • SWE 4743 - Object-Oriented Development

      This course involves engineering activities related to the analysis, design, and implementation of object-oriented software systems. Topics include modeling foundations, requirements specification and documentation, design concepts and strategies, and OOAD methodologies with an emphasis on UML. The course includes a major project utilizing current analysis and design methods and tools implemented in a contemporary IDE.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • SWE 4783 - User Interaction Engineering

      This course follows a complete software-engineering cycle to produce software objects (classes and/or components) 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 proto-typing; embedded systems in support of ubiquitous computing; and function-behavior analysis.

      Prerequisites: SWE 3313 or SWE 4324 

      Credits: 3

    • SWE 4803 - Independent Study

      Independent study/project under the direction of a member of the graduate faculty. Course description will vary.

      Prerequisites: Program Coordinator and Faculty approval

      Credits: 3

    • 15

    Return to Top

    • SWE 5123 - Advance Programming & Data Structures

      Foundation course for graduate students. Topics include pointers, recursion, data structures such as lists, stacks, queues, trees, etc., sorting and searching, data abstraction, introduction to runtime analysis and big-oh notation. Programming projects are also included.

      Prerequisites: CS 5000 or CSE 1322 and CSE 1322L

      Credits: 3

    • SWE 6613 - Requirements Engineering

      Requirements engineering (RE) plays a critical role in the software development process. This course is a thorough treatment of the engineering and definition of software requirements processes. Methods, tools, notations, and techniques for eliciting, analyzing, modeling, negotiating, validating, specifying, testing, and maintaining requirements will be examined with a focus on software-intensive systems. The course will include a major group project on the analysis and specification of software requirements.

      Credits: 3

    • SWE 6623 - Software Engineering

      This course provides an overview of software engineering and explores both the theoretical principles and their application in the engineering of software-intensive systems. Topics cover the entire software development life-cycle and include software engineering process models, project management and planning, requirements engineering, software architecture and design, prototyping, verification and validation, usability and human factors, quality assurance, and professionalism and ethics. The course includes a real-world team project in which students are given hands-on experience utilizing state-of-the-art tools to analyze and design a software system.

      Prerequisites: CS 5000 

      Credits: 3

    • SWE 6633 - Software Project Planning & Management

      The main phases of project management life cycle (initiation, planning, execution, monitoring/control, and closeout) are covered. The emphasis is on project planning phase and on project monitoring/control phase. Various software size, cost/effort, and schedule estimation and planning techniques, including COCOMO, Function Point, and critical path analysis are introduced as part of work breakdown structure. Project risk management is included as an integral part of project planning and project monitoring/control. Project status monitoring/control activities are discussed and practiced with a prototype team project, using the Earned Value metric.

      Credits: 3

    • SWE 6653 - Software Architecture

      This course examines the principles and methods of architectural design of complex, large scale software systems. Macro-level system architecture with an emphasis on approaches to interconnection and distribution of both current and emerging architectural systems (e.g. model-view-controller, service oriented, agent-oriented) as well as micro-level architecture including patterns, frameworks, and component-based software engineering are covered in detail.

      Credits: 3

    • SWE 6673 - Software Testing and Verification

      This course covers concepts, principles, and techniques related to software testing and formal program verification. The course defines the concept of quality in software developments and product and explains how to develop a quality/test plan.The notion of validation and verification is explained in the context of different testing techniques, which include black box testing and white box testing, and other techniques such as inspection and formal verification. The emphasis of the course is on testing techniques, ranging from unit testing to regression testing.

      Prerequisites: SWE 6623 and SWE 6613 

      Credits: 3

    • SWE 6733 - Emerging Software Engineering Processes

      This course introduces the essentials of software engineering processes, methods, and tools for the engineering and evolution of contemporary real-world software. The emphasis is on the applicability of new Agile processes in the software life cycle from requirements engineering through operation and maintenance. Students gain understanding with several commonly used Agile processes such as Extreme Programming (XP), Scrum, Len, and Kanban Models, as well as their working mechanics. They will put into practice their knowledge by conducting an Agile-spirit software team project in the course.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6743 - Object-Oriented Analysis & Design

      This course focuses on object-oriented modeling techniques necessary to solve complex, real-world software engineering problems. Topics include the use of information hiding, object design methods, basic design patterns, abstraction, and abstract data type formalisms. Object-oriented iterative development methodologies such as the Unified Process will be utilized. Techniques for transforming software requirements into high-quality language-independent object-oriented design are presented. The course includes a major iterative project in which the students will gain hands-on experience modeling a real-time system using use case analysis, responsibility-driven design, UML and RealTime UML.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6753 - Game Design & Development

      An introduction to computer game design, game design engines, 2D and 3D graphics, game-related algorithms, game control structures and games as simulations. Topics include graphics, multimedia, visualization, animation, artificial intelligence, and tools of game design. Developments using the software engineering life cycle are emphasized. The development and presentation of a game prototype is required.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6763 - Software Evaluation and Measurement

      This course covers the principles of software measurement frameworks and methods for assessing process, product, and resource's attributes in various-scale type of software engineering environments. The software metrics based on different quality factors such effectiveness, efficiency, usability, and testability in both object-oriented and traditional settings are introduced. The theory and mechanics of conducting empirical software investigation (Experimentation in SE) for quantitative evaluation of software artifacts are covered.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6783 - User Interaction Engineering

      This course follows a complete software-engineering cycle to produce software objects (classes and/or components) 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 proto-typing; embedded systems in support of ubiquitous computing; and function-behavior analysis.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6803 - Independent Study

      Independent study/project under the direction of a member of the graduate faculty. Course description will vary.

      Credits: 1 to 3 credit hours - will vary depending on the topic

    • SWE 6813 - Web Service Engineering

      This course covers the principles and concepts of Service-Oriented Architecture (SOA) and its related general- and domain-specific technologies. Current tools and languages for implementation of service-engineered software systems, including designing, building, assembling, and deploying using Web services and Microservices are discussed in depth. Students will do projects focused on building reusable software in the modern era of service computing.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6823 - Embedded Systems

      This course is both project- and research-oriented. Students will be introduced to modern methods, techniques, and tools for specification and design of embedded systems. Current software building technology, testing, reliability analysis, and benchmarking will be used in developing a case-study project. Moreover, challenges and trends in embedded systems techniques, methods, and tools will be presented and analyzed.

      Prerequisites: SWE 6623

      Credits: 3

    • SWE 6853 - Design Patterns

      This course builds upon basic object-oriented concepts to discover principles of good object-oriented design through the application of design patterns. The focus is on the issues and means of designing software systems for reuse, extension, and maintainability including how to leverage the powers of object-orientation embodied in well-known heuristics, principles and patterns in the design and construction of reusable systems. This course will emphasize that designing reusable systems requires anticipating requirements changes and the application of design patterns will help ensure system mutability. The course includes a major project in which the students will gain hands-on experience with design patterns.

      Prerequisites: SWE 6623 

      Credits: 3

    • SWE 6863 - Software Engineering Ethics and Legal Issues

      This course provides an overview of software engineering and explores both the theoretical principles and their application in the engineering of software-intensive systems. Topics cover the entire software development life-cycle and include software engineering process models, project management and planning, requirements engineering, software architecture and design, prototyping, verification and validation, usability and human factors, quality assurance, and professionalism and ethics. The course includes a real-world team project in which students are given hands-on experience utilizing state-of-the art tools to analyze and design a software system.

      Credits: 3

    • SWE 6883 - Formal Methods in Software Engineering

      The course is concerned with formal representation of the specification of software. Formal mechanisms for specifying, validating, and verifying software systems will be introduced to check for completeness and correctness as well as to discover ambiguities in the specifications. Both Propositional and Predicate Calculus will be reviewed and utilized to represent and reason about software specifications. Proof techniques and formal specification languages Z and the Object Constraint Language (OCL) will be explored.

      Prerequisites: SWE 6623 and SWE 6613

      Credits: 3

    • SWE 6901 - Special Topics

      Special topics selected by the Department Chair. Offered on a demand basis.

      Prerequisites: As determined by the Instructor and Department Chair

      Credits: 1 to 3

    • SWE 6902 - Special Topics

      Special topics selected by the Department Chair. Offered on a demand basis.

      Prerequisites: As determined by the Instructor and Department Chair

      Credits: 1 to 3

    • SWE 6903 - Special Topics

      Special topics selected by the Department Chair. Offered on a demand basis.

      Prerequisites: As determined by the Instructor and Department Chair

      Credits: 1 to 3

    • SWE 7803 - Master's Thesis

      The thesis is designed for students wanting a research focus to their degree. The student works independently under the supervision of a designated SWE graduate faculty member on a thesis of substance in software engineering. The student will generate a formal written thesis and give a final defense of the thesis. This course may be repeated, but only 6 hours may be applied toward the degree. This course will be an alternative to SWE 7903 Software Engineering Capstone.

      Prerequisites: GPA 3.0 or above; completed all transition courses and 12 graduate course credits in your major program by the end of the semester in which you are seeking thesis topic approval. Thesis topic Approval Form, to which the one page thesis topic description is attached, must be all signed by the thesis Advisor, thesis Committee Members, the Department Chair and the Dean.

      Credits: 3

    • SWE 7903 - Software Engineering Capstone

      This course is designed for students to give a professional focus to their degree. The students work in designated teams under the supervision of the course instructor (a CSE faculty member), on a project of practical significance in software engineering. Each of the teams will deliver a final working product, generate a substantial final report, and give a final presentation on the project.

      Prerequisites: SWE 6613, SWE 6623, SWE 6673, and SWE 6633 

      Credits: 3

    • 22

    Return to Top

 

©