SE 325 | INTRODUCTION TO SOFTWARE ENGINEERING | 4 quarter hours
(Undergraduate)
This course introduces students to the activities performed at each stage of the development process so that they can understand the full lifecycle context of specific tasks such as coding and testing. Topics will include software development processes, domain modeling, requirements elicitation and specification, architectural design and analysis, product and process level metrics, configuration management, quality assurance activities including user acceptance testing and unit testing, project management skills such as risk analysis, effort estimation, project release planning, and software engineering ethics.
SE 330 | OBJECT ORIENTED MODELING | 4 quarter hours
(Undergraduate)
Object-oriented modeling techniques for analysis and design. Provides the tools and techniques needed to solve complex, real-world software engineering problems in an object-oriented manner, using the most effective elements of the Unified Process. The course covers the essential concepts and notation of the Unified Modeling Language (UML), the standard notation for object-oriented analysis and design. Team project.
CSC 212 or CSC 262 or CSC 300 is a prerequisite for this class.
SE 333 | SOFTWARE TESTING | 4 quarter hours
(Undergraduate)
This course is designed for the software engineering professional to gain a greater understanding of the key ingredients in creating and/or managing a successful testing program to meet project needs. Topics covered include test lifecycle planning, test design & coverage analysis, complexity, levels of testing such as unit, integration, system, performance and stress testing. Best practice strategies in software testing such as verification & validation, early lifecycle testing, risk based testing and automation will also be examined including exposure to test automation methods and tools.
CSC 383 or SE 330 or CSC 301 is a prerequisite for this class.
SE 341 | CONTINUOUS DELIVERY AND DEVOPS | 4 quarter hours
(Undergraduate)
A study of the tools, techniques, and processes used in Continuous Delivery and DevOps. Students will learn about the software methods that underpin continuous delivery and deployment. Topics will include: the economics of devops and continuous delivery; the role of virtualization; cloud technologies and topologies; containerization; automating builds and testing; continuous integration; value stream maps; the essentials of configuration management; and effective use of source code control branches and feature flags to manage multiple lines of concurrent development.
CSC 301 is a prerequisite for this class.
SE 350 | OBJECT-ORIENTED SOFTWARE DEVELOPMENT | 4 quarter hours
(Undergraduate)
Principles, techniques and tools of object-oriented modeling, design, implementation, and testing of large-scale software systems. Topics include design patterns, application frameworks, architectural design, and the applications in the software development process to improve the extensibility, maintainability, and reliability of software systems.
CSC 301 is a prerequisite for this class.
SE 352 | OBJECT-ORIENTED ENTERPRISE APPLICATION DEVELOPMENT | 4 quarter hours
(Undergraduate)
This course focuses on applying object-oriented techniques in the design and development of software systems for enterprise applications. Topics include component architecture, such as Java Beans and Enterprise Java Beans, GUI components, such as Swing, database connectivity and object repositories, server application integration using technologies such as servlets, Java Server Pages, JDBC and RMI, security and internationalization.
CSC 301 is a prerequisite for this class.
SE 356 | SOFTWARE DEVELOPMENT FOR MOBILE AND WIRELESS SYSTEMS | 4 quarter hours
(Undergraduate)
This course will focus on the unique aspects of developing software applications for mobile and wireless systems, such as personal digital assistant (PDA) devices and mobile phones. Topics will include user interface design for small screens with restricted input modalities, data synchronization for mobile databases as well as wireless programming and the use of web services.
SE 350 is a prerequisite for this class.
SE 357 | CONCURRENT SYSTEM DEVELOPMENT | 4 quarter hours
(Undergraduate)
Fundamentals and techniques of developing concurrent object-oriented applications, using a patterns-based approach. Concepts covered include threads, synchronization and object locking, thread blocking and deadlock, safety and liveness, state-dependent action and concurrency control.
SE 350 is a prerequisite for this class.
SE 358 | SOFTWARE DEVELOPMENT FOR LIMITED AND EMBEDDED DEVICES | 4 quarter hours
(Undergraduate)
This course will focus on the unique aspects, tools, and techniques for developing software applications for limited and embedded devices, such as set-top boxes, micro-controllers and smart cards. Topics will include memory management for low-memory devices and efficient programming techniques for limited processors. Students will gain hands-on experiences in customizing and configuring embedded OS, handling various types of sensors and actuators such as barcode readers, RFID sensors, etc, and building software applications that meet the functional and non-functional requirements.
SE 350 is a prerequisite for this class.
SE 359 | AGILE SOFTWARE DEVELOPMENT | 4 quarter hours
(Undergraduate)
This course focuses on the fundamentals, principles, tools, and techniques in agile software development. Students will gain hands-on experiences in agile software development through projects dealing with various aspects of agile development, including planning, construction, testing, and integration. Students will be able to effectively participate in and manage agile software development as a result of their successfully completing this course.
SE 350 is a prerequisite for this class.
SE 368 | SOFTWARE MEASUREMENT AND PROJECT ESTIMATION | 4 quarter hours
(Undergraduate)
This course will discuss various software metrics and defect models. Productivity and effort estimation models as well as software cost estimation will also be discussed.
SE 371 | PRACTICES OF GLOBAL SOFTWARE DEVELOPMENT | 4 quarter hours
(Undergraduate)
This course studies the challenges and solutions for developing software in a global environment. Topics covered include strategic issues related to allocation of tasks; communication issues that arise due to distance, time zone differences, infrastructure support, geographical dispersion, and lack of information communication; coordination complexity; cultural issues, technical issues related to information and artifact sharing, and architectural design, and finally knowledge management issues. Some sections of this course will include a hand-on global development project in conjunction with teams of students at other universities, while other sections will focus on a more in-depth theoretical discussion of these issues and concepts.
SE 380 | DESIGN OF OBJECT-ORIENTED LANGUAGES | 4 quarter hours
(Undergraduate)
This course covers issues in the design and specification of object-oriented programming languages. Sample topics include the use of patterns in program representation, static and dynamic semantics, subject reduction, sub-typing, inheritance, polymorphism, genericity and concurrency.
SE 350 is a prerequisite for this class.
SE 391 | SOFTWARE ENGINEERING STUDIO I | 4 quarter hours
(Undergraduate)
Students will work in small teams to develop realistic software systems in a master-apprentice environment. The instructor will serve as a master/mentor/project leader. Students will apply the knowledge and skills they have learned in previous course in solving real world problems.
SE 350 is a prerequisite for this class.
SE 392 | SOFTWARE ENGINEERING STUDIO II | 4 quarter hours
(Undergraduate)
This course is a continuation of SE 391. SE 391 and SE 392 must be taken as a sequence in consecutive quarters.
SE 391 is a prerequisite for this class.
SE 399 | INDEPENDENT STUDY | 1-8 quarter hours
(Undergraduate)
Independent study supervised by an instructor. Independent study form required. Can be repeated for credit. Variable Credit. Prerequisite(s): Instructor consent required (variable credit)
SE 430 | OBJECT ORIENTED MODELING | 4 quarter hours
(Graduate)
Object-oriented modeling techniques for analysis and design. Provides the tools and techniques needed to solve complex, real-world software engineering problems in an object-oriented manner, using the most effective elements of the Unified Process. The course covers the essential concepts and notation of the Unified Modeling Language (UML), the standard notation for object-oriented analysis and design. Team project.
CSC 403 is a prerequisite for this class.
SE 433 | SOFTWARE TESTING AND QUALITY ASSURANCE | 4 quarter hours
(Graduate)
This course is designed for the software engineering professional to gain a greater understanding of the key ingredients in creating and/or managing a successful testing program to meet project needs. Topics covered include test lifecycle planning, test design & coverage analysis, complexity, levels of testing such as unit, integration, system, performance and stress testing. Best practice strategies in software testing such as verification & validation, early lifecycle testing, risk based testing and automation will also be examined including exposure to test automation methods and tools.
CSC 403 is a prerequisite for this class.
SE 441 | CONTINUOUS DELIVERY AND DEVOPS | 4 quarter hours
(Graduate)
A study of the tools, techniques, and processes used in continuous delivery and DevOps. Students will learn to transform an organization that uses traditional software release methods into one that embraces continuous delivery and deployment. Topics will include: the economics of DevOps and continuous delivery; the role of virtualization, cloud technologies, and containers; automated builds and testing; value stream maps; the essentials of configuration management; effective use of source code control branches and feature flags to manage multiple lines of development; organizational factors affecting the success of continuous delivery and DevOps adoption including: culture, team organization, collaboration, and software development practices.
CSC 403 is a prerequisite for this class.
SE 450 | OBJECT-ORIENTED SOFTWARE DEVELOPMENT | 4 quarter hours
(Graduate)
Principle, techniques and tools of object-oriented modeling, design, implementation, and testing of large-scale software systems. Topics include design patterns, application frameworks, architectural design, and the applications in the software development process to improve the extensibility, maintainability, and reliability of software systems.
CSC 403 is a prerequisite for this class.
SE 452 | OBJECT-ORIENTED ENTERPRISE COMPUTING | 4 quarter hours
(Graduate)
This course focuses on applying object-oriented techniques in the design, development, and integration of server-side enterprise applications using technologies such as servlets, Java Server Pages, and JDBC. Topics include web applications, multi-tier architecture, model-view-controller architecture, database connectivity, and security.
CSC 403 is a prerequisite for this class.
SE 453 | ARCHITECTURE AND FRAMEWORKS FOR DEVELOPING CLIENT APPLICATIONS | 4 quarter hours
(Graduate)
This course will focus on software architectures, frameworks, and techniques for developing web-based thin client applications as well as rich desktop client applications. Topics will include discussion on design and architectural patterns, such as model-view-controller pattern; survey of widely used development frameworks for building client applications, such as Struts, Java Server Face (JSF), Swing, and SWT, etc.; discussion of widely used techniques such as AJAX; evaluation of the strengths and weaknesses of these technologies for making technology decisions. Students will gain hands-on experiences in developing applications that utilizes these frameworks and techniques. Prerequisite: SE 452.
SE 452 is a prerequisite for this class.
SE 456 | ARCHITECTURE OF REAL-TIME SYSTEMS | 4 quarter hours
(Graduate)
This course discusses the principles, styles, and patterns of real-time software architecture. Trade-offs and ramifications of software architecture with respect to performance, maintainability, and reusability, will be explored. The course will also investigate the design and implementation of real-time behavior and constraints for Common Design Patterns such as Observer, Visitor, and Strategy. Finally, the course will demonstrate how creation of real-time Data Driven environment allows the run-time object data to control the behavior and flow of an application. These topics will be discussed in the context of best practices in software engineering such as iterative development, testing, and continuous integration.
CSC 403 is a prerequisite for this class.
SE 457 | SERVICE-ORIENTED ARCHITECTURE | 4 quarter hours
(Graduate)
An in-depth study of service oriented architecture (SOA) from the business, architectural, and technology perspectives. The business perspective will explain the imperatives behind SOA and discuss the significance of SOA in industry. The architectural perspective will discuss the different architectural models of software development and contrast these with SOA. The technology perspective will provide students with the opportunity to gain the required hands-on experience to analyze, design, implement and deploy SOA solutions that will meet both functional and non-functional requirements. Major topics include software architectures in practice, SOA development lifecycle, Enterprise Service Bus, SOA analysis and design methods, Web Services, and governance.
(SE450 or SE456) or CSC 435 are prerequisites for this class.
SE 459 | AGILE SOFTWARE DEVELOPMENT | 4 quarter hours
(Graduate)
This course focuses on the fundamentals, principles, tools, and techniques in agile software development. Students will gain hands-on experiences in agile software development through projects dealing with various aspects of agile development, including planning, construction, testing, and integration. Students will be able to effectively participate in and manage agile software development as a result of their successfully completing this course.
SE 450 is a prerequisite for this class.
SE 468 | SOFTWARE MEASUREMENT/PROJECT ESTIMATION | 4 quarter hours
(Graduate)
Software metrics. Productivity, effort and defect models. Software cost estimation.
IT 403 and (SE 430 or SE 450 or SE 456) are requirements for this class.
SE 475 | MANAGING GLOBALLY DISTRIBUTED SOFTWARE DEVELOPMENT | 4 quarter hours
(Graduate)
Managing Globally Distributed Software Development (GDSD) for IT projects. Issues associated with time zone differences, infrastructure support, geographical dispersion, and lack of centralized communication. The course will focus on the management, implementation and deployment of software within the context of outsourced, distributed development, and insourced projects. Additional topics include strategic management issues such as justification, vetting, consulting services and partnerships. Course will include several hands-on distributed development projects.
CSC 403 is a prerequisite for this class.
SE 477 | SOFTWARE AND SYSTEMS PROJECT MANAGEMENT | 4 quarter hours
(Graduate)
Project Management is presented from a practitioner's view. The four basic building blocks of software project management: people, process, tools, and measurements are covered. Special emphasis is placed on professional standards such as the Project Management Book of Knowledge and IEEE Software Engineering Standards. Specific topics include Managing People, Selecting Project Tools, Leadership & Motivation, Software Development Processes, Estimation, Risk Analysis, Scheduling and Tracking, Leveraging Measurements, and Project Completion. Consideration is given to rapid development and project cultural issues. PREREQUISITE(S): Knowledge of the Software development life cycle model, for example through courses such as SE430, ECT455, IS425, MIS555 or through appropriate work experience.
SE 480 | SOFTWARE ARCHITECTURE I | 4 quarter hours
(Graduate)
The Software Architecture process is concerned with describing, evaluating, and designing systems at the architectural level. This course will discuss the role of architecture and the architect in the software development cycle. It will introduce architectural patterns and tactics, architecture assessment techniques, architecture driven design, and techniques for documenting architectures. The course will involve design, development, and assessment activities.
SE 482 | REQUIREMENTS ENGINEERING | 4 quarter hours
(Graduate)
Requirements Engineering (RE) plays a critical role in the software development process. This course will introduce related vocabulary, concepts, and techniques, and will examine the role of RE in software and systems engineering. The course will cover topics related to eliciting, validating, negotiating, analyzing, specifying, and managing requirements. Popular RE tools will also be introduced.
SE430 or SE450 or SE456 are prerequisites for this class.
SE 485 | REAL-TIME SOFTWARE DEVELOPMENT I | 4 quarter hours
(Graduate)
Real-time software development. Topics include runtime library construction, abstracting low-level systems, custom data containers, memory tracking, framework development, real-time design patterns, low-level drivers, and graphics engine development. Design and implementation of multi-heap memory management system with aligned allocations with cross heap tracking. Exploration of run-time control of behavior through real-time data driven messaging. Interface development to create a responsive optimized access to abstract data types. Students will design, develop and implement a real-time application (i.e. Graphics engine) that integrates multiple user-developed libraries with real-time constraints.
CSC 461 and (SE 456 or SE 450) are prerequisites for this class.
SE 488 | AI-DRIVEN SOFTWARE DEVELOPMENT | 4 quarter hours
(Graduate)
The course will cover the integration of AI systems in the software development life cycle, including the use of AI in requirements gathering and analysis, software design and architecture, testing, and maintenance and evolution. The students will gain hands-on experience through tools/projects. By the end of the course, students will have a comprehensive understanding of AI in software engineering and will be able to apply their knowledge to real-world software development projects.
SE 489 | MACHINE LEARNING ENGINEERING FOR PRODUCTION (MLOPS) | 4 quarter hours
(Graduate)
This course is designed for software engineers or data scientists who are looking to gain hands-on experience with best practices for machine learning model development, deployment, and maintenance. The course will cover the latest tools and technologies used in industry for MLOps, and will also explore emerging trends and technologies in this field. Throughout the course, students will work on hands-on projects to gain practical experience and skills in various aspects of the ML workflow, cloud native ML, and cutting-edge MLOps activities.
SE 450 or SE 456 or CSC 480 or DSC 441 is a prerequiste for this class.
SE 491 | SOFTWARE ENGINEERING STUDIO | 4 quarter hours
(Graduate)
Students will work in small teams to develop realistic software systems in a master-apprentice environment. The instructor will serve as a master/mentor/project leader. Students will apply knowledge and skills they have learned in previous course in solving real world problems.
SE 511 | PRACTICES OF GLOBAL SOFTWARE DEVELOPMENT | 4 quarter hours
(Graduate)
This course studies the challenges and solutions for developing software in a global environment. Topics covered include strategic issues related to allocation of tasks; communication issues that arise due to distance, time zone differences, infrastructure support, geographical dispersion, and lack of information communication; coordination complexity; cultural issues, technical issues related to information and artifact sharing, and architectural design, and finally knowledge management issues. Some sections of this course will include a hands-on global development project in conjunction with teams of students at other universities, while other sections will focus on a more in-depth theoretical discussion of these issues and concepts. A student may not take both IS 540 and SE 511 for credit toward a degree.
SE 450 or SE 430 or IS 430 or PM 430 is a prerequisite for this class.
SE 525 | SOFTWARE SECURITY ARCHITECTURE | 4 quarter hours
(Graduate)
Students in this course will learn architectural patterns for integrating security into software such as web applications. Topics include: an overview of software security; integration of authentication, access control, and auditing into software; programming with symmetric-key and asymmetric-key cryptography, including key distribution and key management, use of certificates, and SSL/TLS; security mechanisms in modern runtime environments, e.g., code signing, code verification, access control, and security policies. Students will get hands-on experience designing and implementing secure software.
CSC 435 and (SE 450 or SE 456) are prerequisites for this class.
SE 526 | SOFTWARE SECURITY ASSESSMENT | 4 quarter hours
(Graduate)
Students in this course will learn how to conduct software security assessment to identify software vulnerabilities in software such as web applications and operating system services. Topics include: common software vulnerabilities and attack vectors; malicious payloads, including shellcode structure; and application review techniques, including fuzzing and code auditing. Students will get hands-on experience identifying vulnerabilities in software.
CSC 435 is a prerequisite for this class.
SE 529 | SOFTWARE RISK MANAGEMENT | 4 quarter hours
(Graduate)
Identification, estimation, evaluation, planning, controlling, and monitoring of risk involved in the development, maintenance, operation and evolution of systems.
IT 403 and SE 430 or Consent of Instructor are prerequisites for this class
SE 533 | SOFTWARE VALIDATION AND VERIFICATION | 4 quarter hours
(Graduate)
Techniques, methods and tools for software inspection and testing. Theory and applications of formal verification of programs. Techniques and tools for automated analysis of programs.
SE 546 | SOFTWARE ARCHITECTURE AND DESIGN FOR DESKTOP APPLICATIONS | 4 quarter hours
(Graduate)
This course will introduce students to architecture, design and implementation issues for developing GUI-based desktop application. The goal is to understand the engineering aspect of user interface development -- that is the basic software architectures and designs that govern the development of graphical user applications including patterns like the Model-View-Controller and its derivatives, event-driven design, as well as addressing concurrency, performance, caching, and software packaging and distribution issues. The course will also provide an in depth exposure to the toolkits available in Java. Examples include JFC/Swing, JMF, JAF.
SE 549 | MODEL-DRIVEN SOFTWARE DEVELOPMENT | 4 quarter hours
(Graduate)
Advanced methods and techniques in software specification, modeling, and model-driven development. Topics include approaches to software specification and modeling, formal specification languages, techniques for structural and behavioral modeling of software systems, and tools for analysis and transformation of software systems.
SE430 or SE450 or SE456 are prerequisites for this class.
SE 554 | ENTERPRISE COMPONENT ARCHITECTURE | 4 quarter hours
(Graduate)
This course will focus on object-oriented component architectures for enterprise applications. Topics include: Enterprise Java Beans (EJB), Java Naming and Directory Interfaces (JNDI), Java Mail and Messaging Services.
SE 450 or SE 452 or SE 456 are prerequisites for this class.
SE 556 | ADVANCED ARCHITECTURE OF COMPUTER GAMES | 4 quarter hours
(Graduate)
This course discusses the advanced issues in software architecture and the engineering of computer games. The topics include engineering and programming issues in graphics, scene management, kinematics, simulation, collision detection. Software design patterns and frameworks for computer games. Project management, configuration management, and quality assurance of computer game development projects.
SE 560 | STRUCTURED DOCUMENT INTERCHANGE AND PROCESSING | 4 quarter hours
(Graduate)
Document and data interchange among different applications is an extremely important aspect of software application development. This course will focus on emerging technologies associated with the Extensible Markup Language (XML), such as the Document Object Model (DOM), the Simple API for XML (SAX), the XML Stylesheet Language (XSL) and Transformation Language (XSLT), and XML Schema. Applications of these technologies will be discussed in conjunction with tools and techniques for parsing, transforming, and manipulating documents.
(SE 450 or SE 456) OR (CSC 301 and SE 430) are prerequisites for this class.
SE 576 | GPU Architecture | 4 quarter hours
(Graduate)
Real-time application GPU development. Topics include GPU pipeline, data parallelization, hierarchy data flow on GPU, asset compression, non-graphics data processing, graphics rendering and data conversion. Design and implementation of parallel GPU applications across multiple GPU cores. Exploration of different parallelization techniques for large (non-graphical) computationally heavy systems. Developing and debugging blind data flow on GPU hardware. Students will design, develop and implement a real-time GPU application (i.e. Skinned Animation rendering engine) that integrates large converted data assets using 100s of parallel GPU cores.
SE 585 is a prerequisite for this class.
SE 579 | ANALYTICS AND DATA MINING IN SOFTWARE ENGINEERING | 4 quarter hours
(Graduate)
This courses discusses the application of selected statistical analysis, data mining, and machine learning techniques to the area of Software Engineering. These techniques are used for purposes as varied as stakeholder analysis, mining software repositories, trace retrieval, bug prediction, recommender systems in Software Engineering domains, and software process improvement techniques. The course demonstrates how these techniques can be used to enhance project management and other software engineering activities in software intensive systems and provides students with hands-on experience using them on real project data. (No prior knowledge of data mining and knowledge management is assumed.)
SE 581 | SOFTWARE ARCHITECTURE II | 4 quarter hours
(Graduate)
In this second Software Architecture course, students will be exposed to case studies of real-world software architectures for which reliability, performance, availability, scalability and other such concerns drive the architectural design. Students will gain hands-on practice in reverse engineering, designing, and assessing existing systems including performance testing. Student will build on their prior knowledge to design complex systems in principled and systematic ways. The course will involve designing and implementing a simulated high scalability, high reliability system. PREREQUISITE(S): SE 480.
SE 582 | SOFTWARE-INTENSIVE SYSTEMS ENGINEERING AND MANAGEMENT | 4 quarter hours
(Graduate)
This course will introduce students to fundamental principles of systems engineering for large and complex software intensive systems. The course will include a study of systems engineering failures, and will cover topics related to problem frames; systems level modeling of hardware and software components, concept definition, design tradeoffs, risk assessment, interface definition and related systems engineering activities. Additional topics such as product line development, ultra-large scale systems, and engineering of safety critical systems will also be covered.
(SE 477 or PM 430 or IS 430) and (SE 430 or SE 482 or IS 485) are prerequisites for this class.
SE 585 | REAL-TIME SOFTWARE DEVELOPMENT II | 4 quarter hours
(Graduate)
Real-time software development with asset conversion. Topics include offline data conversion, asset packing, data driven application behavior, hierarchy base scene management, profiling and debugging large opaque data, runtime formats for low-level drivers, and advanced visualization techniques. Design and implementation of hierarchy based data systems with dynamic real-time modifications. Exploration of run-time control of behavior through real-time data driven messaging. Implementation of the complete application process: tool creation, asset condition, responsive loading and data driven runtime behavior. Students will design, develop and implement a real-time application (i.e. Animation engine) that integrates large real-time converted data assets with real-time constraints.
SE 485 is a prerequisite for this class.
SE 591 | SOFTWARE ENGINEERING STUDIO II | 4 quarter hours
(Graduate)
This is the continuation of SE 491. SE 491 and 591 must be taken as a sequence in two consecutive quarters.
SE 491 is a prerequisite for this class.
SE 598 | TOPICS IN SOFTWARE ENGINEERING | 1-4 quarter hours
(Graduate)
Specific topics will be selected by the instructor and may vary with each quarter. PREREQUISITE(S): For specific prerequisites, see syllabus or consult course instructor. (variable credit)
SE 599 | INDEPENDENT STUDY | 1-8 quarter hours
(Graduate)
Independent study supervised by an instructor. Independent study form required. Can be repeated for credit. Variable Credit.
SE 690 | RESEARCH SEMINAR | 4 quarter hours
(Graduate)
Readings and discussion on current research topics. Students may register for this course no more than three times. PREREQUISITE(S): Consent of the instructor.
SE 691 | RESEARCH SEMINAR CONTINUATION | 0 quarter hours
(Graduate)
This course is intended for students not registering in either SE 696 or SE 698. After registering for SE 690, students register for this course in each subsequent quarter until they complete the research. Students who fail to do so will be required to re-enroll in SE 690 to meet the requirement for completing that course. Prerequisite: SE 690 (0 credit hours)
SE 695 | MASTER'S RESEARCH | 1-4 quarter hours
(Graduate)
Students interested in a more in-depth study of a particular area will register for this course and work with a faculty member (not necessarily their academic advisor) on a research project. The work involved may include system development, empirical studies, or theoretical work. 4 credit hours of CSC 695 replaces one 500level elective course in student's degree program. This course can be taken for 1-4 credit hours for up 8 credit-hours. PREREQUISITE(S): Consent of research advisor. Independent study form required. Students must successfully complete the foundation courses prior to their first enrollment in CSC 695. (variable credit)
SE 696 | MASTER'S PROJECT | 4 quarter hours
(Graduate)
(4 credit hours) Students may register for this course only after their advisor has approved a written proposal for their project. Independent study form required. PREREQUISITE(S): Consent of advisor.
SE 698 | MASTER'S THESIS | 0 quarter hours
(Graduate)
A student who has made an original contribution to the area (typically through 8 credit-hours' worth of work done in CSC 695, but not necessarily) may choose to complete a Master's Thesis. The student and the student's research advisor form a Master's Thesis Committee. The student submits to the committee a thesis detailing the original results of the research project. After a public defense, the committee will decide whether to accept the thesis. In that case, the student will be allowed to register for this course and the transcript will show the thesis title as the course topic. PREREQUISITE(S): Successful defense of a Master's Thesis. (0 credit hours)
SE 699 | SOFTWARE ENGINEERING RESEARCH CONTINUATION | 1 quarter hour
(Graduate)
Students register for continuation credit after registering for SE 698 in each subsequent quarter until they complete their thesis. Students who fail to do so will have to reregister for SE 698 to meet the requirement for completing that course. PREREQUISITE(S): SE 698. (0 credit hours)