MCT 620 Distributed Systems (3.00)
Investigates design and implementation of internet based distributed applications including APIs, frameworks, standard internet protocol stack, client/server architectures, network programming, Java, I/O, multithreaded programming, Sockets, thin client/web server support, Servlets, JSP, EJBs and web services.
Pre-requisite: MCT*619
MCT 621 Artificial Intelligence (3.00)
Introduces the concepts and techniques of Artificial Intelligence (AI) including use of the Prolog language, knowledge representation, machine learning, expert systems, uncertainty, neural networks, and real world application of AI techniques.
Pre-requisite: TAKE MCT*609;
MCT 622 Real-Time Systems (3.00)
Explores embedded real-time systems including foundations, designing and developing software, implementation, and performance issues. Focuses on dependable software, design concepts, real-time operating systems (RTOSs), language selection, benefits, testing, static/dynamic analysis methods, tools, debugging, and documentation.
Pre-requisite: MCT*610 MCT*611
MCT 623 Graphics Programming (3.00)
Introduces theoretical concepts of modern graphics programming including compromises and trade-offs. Hands-on experience will be gained in two graphics programming environments: Virtual Reality Modeling Language (VRML) and Open Graphics Library (OpenGL).
Pre-requisite: MCT*612
MSSE 600 Object-Oriented Software Engineering (3.00)
Introduces basic object-oriented concepts, and the object-oriented software development process. Incorporates the best of current development processes, such as the Capability Maturity Model (CMM), the Unified Software Development Process, Patterns, and Team Management.
Pre-requisite: TAKE MSCC*610;
Cross listing(s): MSCS 600.
MSSE 610 Software Requirements and Processes (3.00)
Examines acquisition, analysis, specification, validation, and management of software requirements. Explores formal software processes, including the definition, implementation, measurement, management, change, and improvement of the software engineering process.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 610.
MSSE 620 Software Construction, Tools, Methods (3.00)
Explores the construction of working, meaningful software through a combination of coding, validation, and testing by a programmer. Examines software development environments and software development methods.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 620.
MSSE 630 Software Design (3.00)
Describes architecture, components, interfaces, and other characteristics of modern software systems. Topics include enterprise software architecture, design pattern concepts, software frameworks, and middleware technologies.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 630.
MSSE 640 Software Quality and Test (3.00)
Reviews the Software Quality Assurance (SQA) and Verification and Validation (V&V) processes. Addresses verification of the behavior of a program on a set of test cases selected from the execution domain.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 640.
MSSE 645 Software Configuration Mgmt Maintenance (3.00)
Examines the identification of the configuration of systems for the purpose of controlling change. Addresses modification of software after delivery to correct faults, improve performance, or to adapt it to new environments.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 645.
MSSE 650 iOS Software Development (3.00)
Introduces iOS software development, using the Objective-C programming language and the Cocoa Touch framework for the iPad and iTouch mobile devices. Includes development of a project using XCode, in preparation for deployment.
Cross listing(s): MSCS 650.
MSSE 652 Enterprise iOS Software Development (3.00)
Introduces advanced features of iOS software development including techniques for integrating web services and the use of other API's for app development. Includes development of a distributed software project using XCode and other developmental tools.
Pre-requisite: TAKE MSSE*650;
Cross listing(s): MSCS 652.
MSSE 655 Android Software Development (3.00)
Introduces Android software development, using the Java programming language and the Android Developer Tools (ADT) for Android mobile devices. Includes development of a project using Eclipse and the ADT, in preparation for deployment.
MSSE 657 Enterprise Android Softwre Dev (3.00)
Introduces advanced features of Android software development, including techniques for integrating web services and the use of other API's for app development. Includes development of a distrubuted software project using Eclipse and other tools.
Pre-requisite: TAKE MSSE*655;
MSSE 670 Java Software Development (3.00)
Introduces use-case driven iterative software development techniques using a layered software architecture using the Java programming language. Topics include unit testing, the use of various software patterns, and refactoring code. Requires students to document and develop a project using layered software architecture.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 670.
MSSE 672 Advanced Java Software Development (3.00)
Introduces advanced features of the Java software development environment along with auxiliary software development tools. Topics include Eclipse, the Ant build tool, the use of Java exceptions and logging, collections and generics, JDBC and object-relational mapping with Hibernate, XML processing, client-server programming, and multithreaded applications.
Pre-requisite: TAKE MSSE*670;
Cross listing(s): MSCS 672.
MSSE 674 Enterprise Java Software Development (3.00)
Continues the advanced use of the Java 2 Platform. Topics include web applications and Java 2 Enterprise Edition. Emphasizes the use of Java Servlets and Java Server Pages (JSPs) to develop web application using a layered software architecture. Other topics include Custom Tag libraries, Apache Struts, request and response filters, and security.
Pre-requisite: TAKE MSSE*672;
Cross listing(s): MSCS 674.
MSSE 676 Advanced Enterprise Java Software Dev (3.00)
Continues development of Java EE applications with Enterprise Web Service Technologies. Topics include:Java for XML Web Services, Java for RESTful Web Services, Context and Dependency Injection, Java Persistence API, Enterprise JavaBeans, and Application Security.
Pre-requisite: TAKE MSSE*674;
Cross listing(s): MSCS 676.
MSSE 680 C# Software Development (3.00)
Introduces use-case driven iterative software development techniques with a layered software architecture using the C# programming language. Topics include unit testing, the use of various software patterns, and refactoring code. Requires students to document and develop a software project using layered software architecture.
Pre-requisite: MSSE*600
Cross listing(s): MSCS 680.
MSSE 682 Enterprise C# Softeare Development (3.00)
Focuses on programming on the.Net Frameworks and C#. Topics include Windows Forms Development, project deployment, data access with ADO.NET and XML, Web programming using ASP.NET and Web Forms, Web Services, and SQL Server and other RDBMS.
Pre-requisite: TAKE MSSE*680;
Cross listing(s): MSCS 682.