
|
Masters in Computer Science Brochure
The Master of Science in Computer Science offers students the opportunity to combine a sound foundation in computer science with concentrated knowledge in the latest developments in particular areas. Our faculty have expertise in many areas of computer science, including algorithms and theory, artificial intelligence, computer gaming, computer networks, databases, data mining, graphics, image and video processing, information security and assurance, information systems, knowledge engineering, pattern recognition, programming languages, real- time systems, robotics, software engineering, and vision. Graduate classes are offered in the late afternoon and evening to accommodate the professionally employed students. Financial aid in the form of graduate assistantships may be available for full- time degree-seeking students. Appropriate courses may be transferred, with advisor approval, into the degree program. The Department of Computer Science offers additional degrees and certificates that are of interest to many MS students. Graduate certificates in biometrics, computer games technologies, computer networking, intelligent agents, database management, data mining, information security and assurance, and software engineering are available. Course work toward the certificates can be used for credit toward the MS in Computer Science. However, the certificates also may be pursued concurrently with any of the graduate degree programs in the Volgenau School of Information Technology and Engineering. Students may take courses through the Commonwealth Graduate Engineering Program.
Admission Requirements
Admission is competitive among students who fulfill admission requirements for graduate study
at the Computer Science Department of George Mason University. Students seeking admission to the M.S. in Computer Science program must satisfy the following requirements:
Degree Requirements
Computer Science courses are defined as either basic or advanced. Basic courses do not have
graduate prerequisites. Advanced courses have one or more graduate courses as prerequisites.
The courses are grouped in the following five broad areas:
In addition to general university requirements, completion of this program requires 30 credits of graduate courses. The requirements are as follows:
Core: CS 583 Analysis of Algorithms is required.
Advanced: At least 5 classes (at least 15 credits) must qualify as advanced by having suitable graduate courses as prerequisites.
Breadth: Advanced classes have to be taken from three different areas. The list of approved courses and the areas they belong to is given at the end of this document.
CS: At least 6 courses including 2 advanced courses must be CS courses. These courses are listed in the catalog as CS xxx.
Pre-Approved: At least 8 classes have to be taken from the list of pre-approved courses. Up to two CS-related courses that are not on the list may be taken with the prior CS department approval.
Basic and Prerequisite CoursesAll prerequisites for advanced courses must be satisfied. In some cases, basic courses (including CS 583) may be waived with approval of the CS department graduate coordinator if equivalent undergraduate courses were taken previously. The coordinator will review the relevant transcripts and syllabi before approving the waiver. As a minimal requirement a grade of B or better is expected in the undergraduate course.
Project / Thesis (optional)3 to 6 credits of the advanced courses may be replaced by a project (3 credits of CS 798) or a thesis (6 credits of CS 799). The project or thesis must be supervised and approved by a committee of three appropriate faculty members, and presented at an appropriate forum. The thesis must meet relevant university requirements.
BS / Accelerated MS in Computer Science
This program is for undergraduates interested in immediately continuing on to graduate studies in computer science.
Admission RequirementsStudents in a BS program, in CS or a related area, may apply for the BS / accelerated MS program if they have earned 90 undergraduate credits with an overall GPA of at least 3.50. Criteria for admission are identical to criteria for admission to the MS program.
Degree RequirementsStudents must complete 144 credits that satisfy requirements for the BS program as well as those for the MS program, with 6 credits overlap. Students register for 6 credits of CS 500-level basic courses in place of the corresponding CS 400-level courses required for the undergraduate degree. That is, students must register for two of the following courses: CS 540, 571, 580, and 583 in place of the corresponding 400-level courses. Students are permitted to take additional graduate basic courses in place of their undergraduate courses. In such cases, these courses cannot be counted towards requirements for the MS degree.
Degree ConferralStudents may apply to have the BS degree conferred during the semester in which they expect to complete the BS requirements. At the completion of the MS requirements, a master's degree is granted.
BS in Computer Science / Accelerated MS in Related FieldsThe BS program in computer science coordinates with the MS programs in information systems, software engineering and telecommunications. For information on these accelerated programs, please refer to the MS program in the appropriate section of this catalog.
Graduate Certificates in Computer Science
Graduate certificates in biometrics, computer games technologies, computer networking,
intelligent agents, database management, data mining, information security and assurance, and
software engineering are available. Course work toward these certificates can be used for credit
toward the MS or PhD in computer science or information technology. However, the certificates
may be pursued concurrently with any of the graduate degree programs in IT&E. The first four
certificates are defined below.
1. Certificate in BiometricsBiometrics, the science of recovering or verifying a person's identity, measures the physical characteristics that make people uniqueÑincluding fingerprints, an eye's retina or iris, face, hand geometry, signature and voiceÑand uses those measurements for person recognition or authentication. Biometrics is related to the science of forensics, which uses and interprets physical evidence for legal purposes. The importance of biometrics lies in the fact that traditional means of identification and verification are often unreliable or cumbersome: Passwords are difficult to remember and easy to steal. Keys, driver's licenses, and passports can be lost or forged. The human body and its behavior, on the other hand, can't be forgotten, stolen, forged, or misplaced. Practical uses for such biometrics are wide spread and include maintaining the security for both physical and cyber space. In particular, biometrics aids in controlling access to an office, computer network or an ATM, smart cards, wireless communication; confirming the identity of buyers and sellers to make electronic commerce safe and reliable; confirming student identity for distant learning; and safeguarding electronic records related to health care services.
Admission RequirementsThe program is open to all students who are eligible for entrance into the master's degree program in computer science, or in any scientific or engineering discipline at GMU.
Certificate RequirementsThe certificate requires completion of 15 credit hours and consists of two required courses (6 credits) and three choice courses (9 credits). Project (3 credits) can substitute for one of the choice courses. One of the three choice courses can be taken from another department, with advisor's approval, provided that it belongs to the certificate's area.
Required courses (6 credits):
CS 688 / IT 688 Pattern Recognition
Three of the following courses (9 credits):
CS 580 Introduction to Artificial Intelligence
2. Certificate in Computer Games Technology
Admission RequirementsThe certificate program in computer games technology is open to all students who are eligible for entrance into the Master's degree program in Computer Science or in any scientific or engineering discipline at GMU.
Certificate RequirementsTo obtain the certificate, candidates must complete the following courses, for a total of 15 credits. Transfer credit may substitute for at most one of these courses, subject to CS department approval.
Required courses (12 credits):
CS 652 Computer Graphics
Plus one of the following (3-5 credits):CS 633 Computational Geometry
3. Certificate in Computer NetworkingWhen brought together to form computer networks, the technologies of computing and communications exhibit a synergy that is revolutionizing our world. In-depth knowledge of the new discipline of computer networking increasingly is in demand as a basis for design and deployment of new information systems ranging from aspects of the global Internet to distributed systems in a variety of application domains. The courses for this certificate have been selected to provide a solid basis for understanding the core software and communications technologies upon which today's networks are based, and how they may be combined to create effective computer networks. Courses cover both mainstream and leading-edge technology considerations, ensuring that students are prepared to function at the professional level in this fast-moving and technologically challenging field.
Admission RequirementsThe certificate program is open to all students who are eligible for entrance into the master's degree program in computer science, or in any scientific or engineering discipline at Mason.
Certificate RequirementsStudents must complete the following courses, for a total of 15 credits:
Required courses (6 credits):CS 555 Computer Communications and Networking
At least one of the following (3-6 credits):CS 755 Advanced Computer Networks
One or two of the following courses (3 or 6 credits):ECE 542 Computer Network Architectures and Protocols
4. Certificate in Intelligent AgentsThis certificate concentrates on the theory and practice of designing and developing systems that rely on knowledge and reasoning, generically called Intelligent Agents: expert systems, knowledge-based systems, knowledge-based decision support systems, expert database systems, intelligent tutoring systems, etc. Capturing, using, preserving, transferring, and sharing knowledge is of critical importance to any organization as society evolves from an information society to a knowledge society. Therefore, the ability to design and develop intelligent agents for a wide variety of domains is a highly valuable expertise. The courses in this certificate program cover the basics of knowledge engineering and intelligent agents as well as advanced research topics. Basic topics include knowledge representation, knowledge acquisition, heuristic search, problem-solving and planning, uncertainty reasoning, machine learning, natural language processing, design of expert systems, human-computer interaction, data mining, knowledge discovery, and knowledge management. Advanced topics include the development of multiagent systems, mixed-initiative intelligent systems, web-based intelligent agents, and distributed problem solving.
Admission RequirementsThe program is open to all students who are eligible for entrance into the master's degree program in computer science, or in any scientific or engineering discipline at GMU.
Certificate RequirementsStudents must complete the following courses, for a total of 15 credits:
Required course (3 credits):CS 580 Introduction to Artificial Intelligence
Plus four of the following courses (12 credits):CS 680 Natural Language Processing Two of the four courses can be taken from another MS or PhD program in IT&E with advisor approval, provided that it belongs to the certificate area.
Pre-Approved MS CS Courses by Area
Artificial Intelligence and DatabasesCS 580 Introduction to Artificial Intelligence (basic)
Programming Languages and Software EngineeringCS 540 Language Processors (basic)
Systems and NetworksCS 555 Computer Communications and Networking (basic)
Theoretical Computer ScienceCS 583 Analysis of Algorithms (basic)
Visual ComputingCS 652 Computer Graphics These courses are not classified by area. Note that CS 695 / CS 795 can be used to satisfy the breadth requirement if the area is listed in the syllabus for the course.
CS 695 Topics in CS
Computer Science Courses (CS)
CS 540 Language Processors (3:3:0)Prerequisite: MATH 125, CS 265, 310, and 330. Basic programming language processors: assemblers, interpreters and compilers. Topics include design and construction of language processors, formal syntactic definition methods, parsing techniques, and code generation techniques. Lab includes construction of language processors and experience with programming environments.
CS 555 Computer Communications and Networking (3:3:0)Prerequisites: STAT 344, or equivalent. Techniques and systems for communication of data between computational devices and layers of Internet Protocol Suite. Topics include role of various media and software components, local and wide area network protocols, network design, performance and cost considerations, and emerging advanced commercial technologies. Emphasizes TCP / IP family of protocols.
CS 571 Operating Systems (3:3:0)Prerequisite: CS 310 and 365. Models of operating systems. Major functions including processes, memory management, I / O, interprocess communication, files, directories, shells, distributed systems, performance, and user interface.
CS 580 Introduction to Artificial Intelligence (3:3:0)Prerequisite: CS 310 and 330. Principles and methods for knowledge representation, reasoning, learning, problem solving, planning, heuristic search, natural language processing, etc. and their application to building intelligent systems in a variety of domains. LISP, PROLOG, or expert system programming languages.
CS 583 Analysis of Algorithms I (3:3:0)Prerequisite: CS 310, CS 330 and MATH 125. Topics include the analysis of sequential and parallel algorithmic strategies (such as greedy methods, divide and conquer strategies, dynamic programming, search and traversal techniques, approximation algorithms), the analysis of specific algorithms falling into these classes, NP-Hard and NP-Complete problems.
CS 600 Theory of Computation (3:3:0)Prerequisites: CS583 and Discrete Mathematics. Introduction to logic and proof techniques, formal languages, automata theory, and computational complexity. Specific topics include regular and context-free languages, Turing machines, NP-completeness, and undecidability.
CS 631 Object-Oriented Software Development (3:3:0)Prerequisite: SWE 619 or SWE 620 or CS 540 or CS 571 or a graduate course in object-oriented programming or equivalent. Principles of object-oriented design through design patterns. A study of the selection of appropriate object-oriented structure after the system requirements or requirements specification of the software system have been developed. Design patterns are created in the logic view of the software system. A study of generalized design solutions for generalized software design problems. A study of the reuse of design patterns. Once developed, design patterns may be specified in any object-oriented language.
CS 633 Computational Geometry (3:3:0)Prerequisite: CS 583. Basic principles and methods for computing in the field of geometric modeling. Emphasis is on the data structures used to represent geometric objects and algorithms for manipulating those data structures. Topics include range searching, polygon triangulation, convex hulls, motion-planning, visibility and mesh generation.
CS 635 Foundations of Parallel Computation (3:3:0)Prerequisite: CS 583 and CS 540 or 571, or equivalent. Survey of the field of parallel computation. Three major parallel computing paradigms (MIMD computation, SIMD computation, and dataflow computation) are covered. Emphasis is placed on the interfaces between algorithm design and implementation, architecture, and software. Parallel algorithms and parallel programming languages are examined relative to the architecture of particular parallel computers.
CS 640 Advanced Compilers (3:3:0)Prerequisite: CS 540 and 583 or equivalent. This course examines advanced compiler techniques such as code optimizations for sequential machines, and parallel machines; compilers for logical, functional or object oriented languages; and other selected topics in the current literature.
CS 645 Programming Language Semantics (3:0:0)Prerequisites: CS 540, language processors. This course introduces basic concepts and techniques in the foundational study of programming languages. The central theme is the view of individual programs and whole languages as mathematical objects about which precise claims may be made and proved. Particular topics include operational techniques for formal definition of language features, type systems and type safety properties, polymorphism and subtyping, and foundations of object- oriented programming.
CS 650 Database Engineering (3:3:0)Prerequisite: CS 540, 583, and 571. Data models for network, hierarchical, object-oriented, and relational management information systems. Development (including internal structures) of a database system.
CS 652 Computer Graphics (3:3:0)Prerequisite: CS 583. Graphics principles and programming. Topics include graphics hardware, antialiasing, transformations, viewing, illumination, blending, texture mapping, color models, cures, surfaces, and animation.
CS 662 Computer Graphics Game Technologies (4:3:1).Prerequisite: CS 652. 3D graphics game technologies and programming. Topics include modeling, rendering, and simulation in real time. Some graphics game techniques will be addressed, including collision detection, levels of detail, physically-based simulations, textures, maps, and shadows.
CS 668 Computer Architecture Systems (3:3:0)Prerequisite: CS 571 or 540 or equivalent. Examines the principles and practices relating computer architecture to programming execution and efficiency. A new approach that stresses the performance and cost of architecture is presented. The principles, of compiler and OS implications, instructions sets, basic processors, pipelines, and memory-hierarchy are examined. Specific topics may include RISC machines, cache memories, register usage, VAX architecture, and vector machines.
CS 671 Advanced Operating Systems (3:3:0)Prerequisite: CS 571, or permission of instructor. Advanced topics in the design and implementation of microkernel-based, object- oriented, and distributed operating systems. Specific topics include support for inter-process communication, the interaction between computer architecture and operating systems, distributed file systems, transactions, and distributed shared memory.
CS 672 Computer System Performance Evaluation (3:3:0)Prerequisite: CS 571 and MATH 351. Theory and practice of analytical models of computer systems. Topics include queueing networks, single and multiple class mean-value analysis, models of centralized and client-server systems, software performance engineering, and web servers performance.
CS 673 Multimedia Computing and Systems (3:3:0)Prerequisite: CS 571. The convergence of computing, communications and display technologies has led to interest in the processing of multiple data types. The integration of text, sound, images, and video in modern presentations requires compression, synchronization, database, and communication methods. This course will focus on technological and development environments involved in developing multimedia applications. Projects will involve experience with multimedia authoring tools, and simulations to assess performance.
CS 675 Distributed Systems (3:3:0)Prerequisites: CS 571, or permission of instructor. Issues in design and implementation of distributed applications. Topics include distributed programming using sockets as well as higher-level technologies such as remote procedure calls and distributed object middleware technologies including Java RMI, CORBA, and DCOM.
CS 680 Natural Language Processing (3:3:0)Prerequisite: CS 540 and 580. Principles of the design of computer programs that respond appropriately to questions, commands, and statements expressed in human language, particularly English. Role of knowledge representation and linguistic theory. Students become familiar with current literature to implement a limited natural language processor.
CS 681 Designing Expert Systems (3:3:0)Prerequisite: CS 580. Design, construction, and evaluation of software systems that solve problems generally deemed to require human expertise. Study and use of relevant languages, environments, mathematics, and logic. Case studies of successful systems. Programming projects: development of tools or small-scale systems.
CS 682 Computer Vision (3:3:0)Prerequisite: CS 686. Study of computational models of visual perception and their implementation on computer systems. Topics include early visual processing, edge detection, segmentation, intrinsic images, image modeling, representation of visual knowledge, and image understanding.
CS 683 Parallel Algorithms (3:3:0)Prerequisite: CS 583; CS 635 recommended. Examines the design and analysis of parallel algorithms. Material to be covered will focus on algorithms for both theoretical and practical models of parallel computation. Algorithm design and analysis for the PRAM will be considered, as well as for existing SIMD and MIMD type architectures. Topics to be covered include sorting, graph algorithms, numerical algorithms, and computational complexity.
CS 684 Graph Algorithms (3:3:0)Prerequisite: CS 583. Data structures and analytical techniques for the study of graph algorithms. Data structures discussed include disjoint sets, heaps, and dynamic trees. Algorithms treated include minimum spanning trees, shortest path, maximum flow, and graph planarity.
CS 685 / ECE 651 / SYST 672 Intelligent Systems for Robots (3:3:0)Prerequisite: CS 580 or ECE 650 or equivalent. Review of recent developments in the area of intelligent autonomous systems. Study of the applications of artificial intelligence, computer vision, and machine learning to robotics. Topics include analysis and design of algorithms and architectures for planning, navigation, sensory data understanding, sensor fusion, spatial reasoning, motion control, knowledge acquisition, learning of concepts and procedures, self-organization, and adaptation to the environment.
CS 686 Image Processing and Applications (3:3:0)Prerequisite: CS 583 and either STAT 344 or MATH 351, or equivalent. Concepts and techniques used in image processing. Methods for image capture, transformation, enhancement, restoration, and encoding are discussed. Students complete projects involving naturally occurring images.
CS 687 Advanced Artificial Intelligence (3:3:0)Prerequisite: CS 580. Exploration of foundational issues of artificial intelligence, such as the roles of knowledge and search, the formalization of knowledge and inference, and symbolic versus emergent approaches to intelligence. Advanced programming techniques for artificial intelligence and their relationship both to the foundational issues and to the most important application areas for artificial intelligence. There will be a major programming project.
CS 688 / IT 688 Pattern Recognition (3:3:0)Prerequisites: CS 580 or equivalent. Explores statistical pattern recognition and neural networks. Pattern recognition topics include Bayesian classification and decision theory, density (parametric and nonÐparametric) estimation, linear and non-linear discriminant analysis, dimensionality reduction, feature extraction and selection, mixture models and EM, and vector quantization and clustering. Neural networks topics include feed-forward networks and back-propagation, self-organization feature maps, and radial basis functions. Course emphasizes experimental design, applications, and performance evaluation.
CS 695 Topics in CS (3:3:0)Prerequisite: Successful completion of two core courses and permission of instructor. Special topics in computer science not occurring in regular computer science sequence. The course may be repeated for credit when the subject is different. Satisfies the M.S. breadth requirement only if this is explicitly stated in the corresponding syllabus . Only one such course should be used for breadth requirements.
CS 697 Independent Reading and Research (1-3:0:0)Prerequisite: Graduate standing, completion of at least two basic courses (CS 540, 555, 571, 580, 583), and permission of instructor. In areas of importance but insufficient demand to justify a regular course, a student may undertake a course of study under the supervision of a consenting faculty member. A written statement of the content of the course and a tentative reading list is normally submitted by the student as part of the request for approval to take the course. A literature review, project report, or other written product is normally required.
CS 700 Quantitative Methods and Experimental Design in Computer Science (3:0:0)Prerequisite: STAT 344, at least two 600 level courses in computer science and doctoral status. An integrated treatment to the models and practices of experimental computer science. Topics include scientific methods applied to computing, workload characterization, forecasting of performance and quality metrics of systems, uses of analytic and simulation models, design of experiments, interpretation and presentation of experimental results, hypothesis testing, and statistical analyses of data. The course involves one or more large-scale projects.
CS 706 Concurrent Software Systems (3:3:0)Prerequisite: CS 571 and (CS 635 or CS 619) or equivalent. Studies issues related to the development of concurrent software systems. Topics include: concurrent programming languages and constructs, and the specification, design, verification, and validation of concurrent programs. Students are required to solve concurrent programming problems and to check their solutions by using verification, testing and debugging tools.
CS 719 / IT 809 Scaling Technologies for E-Business (3:3:0)Prerequisite: At least one operating system and one networking course, and admission to an IT&E doctoral program. Discusses, from a quantitative point of view, the characteristics of the most important technologies used to support the implementation of e-business sites, authentication, payment services, understanding customer behavior, workload characterization, scalability analysis, and performance prediction. A term paper and a project are required.
CS 732 / IT 822 Software Maintenance and Reuse (3:3:0)Prerequisite: SWE 621 or equivalent, data structures, principles of modern programming, and discrete mathematics; or permission of instructor. Perfective maintenance, reuse of software components and patterns, evolving software systems, principles of object-oriented analysis and development. Present issues regarding technologies, supporting perfective software maintenance and reuse.
CS 735 Concurrency (3:3:0)Prerequisite: CS 635 or equivalent. Studies techniques, tools for specifying and verifying concurrent and distributed programs. Topics may include model checking, temporal logic, process algebra, and test generation. Automated verification tools used to specify and verify concurrent programs.
CS 750 Theory and Applications of Data Mining (3:3:0)CS 688 or permission of instructor. Concepts and techniques in data mining and their multidisciplinary applications. Topics include data bases, data cleaning and transformation, concept description, association and correlation rules, data classification and predictive modeling, performance analysis and scalability, data mining in advanced database systems including text, audio and images, and emerging themes and future challenges. Term project and topical review required.
CS 752 Interactive Graphics Software (3:3:0)Prerequisite: CS 652. Advanced graphics methods and tools. Topics include visualization, modeling, rendering, animation, simulation, virtual reality, graphics software tools, and current research topics.
CS 753 / IT 815 Parallel Computation (3:3:0)Prerequisite: CS 635 or CSI 801. Topics illustrating the contemporary thinking on architectures, application, development environments, algorithms, operating system related issues, language requirements, and performance for parallel computation.
CS 755 Advanced Computer Networks (3:3:0)Prerequisite: CS 555. Current and emerging issues in advanced computer networks and their applications. Topics include software systems associated with packet and cell switched networking architectures and protocols, high- performance LANs, scheduling and congestion control, mobile networking, multimedia applications, and the next generation of the Internet.
CS 756 Performance Analysis of Computer Networks (3:3:0)Prerequisite: CS 555 or equivalent. Analytical and simulation techniques for modeling and analysis of computer networks. Elementary queuing analysis. Networks of queues. Routing and flow controls. Applications to local and wide area networks, internets, and emerging networking technologies such as Asynchronous Transfer Mode (ATM).
CS 758 / IT 758 Networked Virtual Environments (3:3:0)Theory and practice of advanced distributed simulation via networks using highly realistic graphic environments. Networked virtual environment principles, networking technology for distributed simulation, networked multimedia concepts, virtual simulation concepts, efficiency / performance issues, and online conferencing / virtual classrooms. Term project required.
CS 771 / IT 817 Neural Networks (3:3:0)Prerequisite: CS 688 or permission of instructor. Study of adaptive and competitive principles using distributed and parallel computation. Topics include background from statistics, control, adaptive signal processing, and neurosciences. Basic models, such as those suggested by Grossberg, Hopfield, and Kohenen are discussed in terms of their analytical characteristics and application. Neural networks are assessed as universal approximators. Connections to the fuzzy approach are established through the Radical Basis Function approach. Applications to perception, knowledge-based systems, and robotics are presented.
CS 773 Real-Time Systems Design and Development (3:3:0)Prerequisite: CS 555, CS 571 or permission of the instructor. Real-time systems and the principles supporting their design and implementation. Emphasis is placed upon fundamental results from real-time scheduling theory and their relevance to computer system design. Topics include system design issues for real- time applications involving communication networks, operating systems, databases, and multimedia.
CS 774 / IT 835 Computational Vision (3:3:0)Prerequisite: CS 682 or 686 or permission of instructor. Study of recent advances in development of machine vision algorithms and knowledge-based vision systems. Topics include scale-space; Gabor and wavelet processing; distributed and hierarchical processing using neural networks; motion analysis; active, functional, and selective perception; object and target recognition; expert systems; data fusion; and machine learning. Emphasis is on system integration in terms of perception, control, action, and adaptation. Applications to robotics, intelligent highways, inspection, forensic, and data compression are presented.
CS 775 / IT 844 Advanced Pattern Recognition (3:3:0)Prerequisites: CS 688 or permission of instructor. Covers Bayesian and Statistical Pattern Recognition. Neural Network, and Statistical Learning Theory approaches for Pattern Recognition. Topics include Bayes' theorem, density approximation, multiplayer networks and back propagation learning, pre-processing and features extraction, data and dimensionality reduction, function approximation and adaptive kernel methods clustering and self-selection, support vector machines, support vector regression and support vector clustering, evolutionary computation and genetic algorithms, and fuzzy systems. Experimental design, performance evaluation, and applications are emphasized throughout the course.
CS 776 / IT 852 Graphical Real-Time Simulation (3:3:0)Prerequisite: CS 652 or IT 875. Current research in advanced computer graphics and its applications in realistic real-time simulations. Topics include physically based modeling, real-time simulation, distributed interactive simulation (DIA), network virtual environments (NVE), and virtual reality (VR).
CS 777 Human-Computer Intelligent Interaction (3:3:0)Prerequisite: CS 580 and (CS 652 or CS 682) or permission of the instructor. Current and emerging issues in human-computer intelligent interaction and human-centered systems and their applications. Topics include video processing, visualization, virtual environments, adaptation and tutoring, image and scene modeling - analysis and synthesis, face and gesture recognition, speech and natural language processing. Term project and topical review required.
CS 778 / IT 778 Biometrics (3:3:0)Prerequisites: CS 688, or permission of instructor. Basic principles and methods for automatic authentication of individuals. Technologies include face, fingerprint and iris recognition, and speaker verification. Additional topics cover multimodal biometrics, system design, performance evaluation, and privacy issues. Term project required.
CS 782 Machine Learning (3:3:0)Prerequisite: CS 681 or 687 or 688 or permission of instructor. Survey of the field of machine learning which is concerned with developing intelligent adaptive systems that are able to improve through learning from input data or from their own problem solving experience. Topics provide broad coverage of past and current developments in machine learning, including basic learning strategies and multistrategy learning.
CS 785 Knowledge Acquisition and Problem Solving (3:3:0)Prerequisite: CS 680 or 681 or 687 or permission of instructor. Principles and major methods of the basic stages of knowledge acquisition (systematic elicitation of expert knowledge, knowledge base refinement, and knowledge base optimization), in the context of general problem-solving methods. Case studies of successful knowledge acquisition and problem solving systems. Projects: development or application of knowledge acquisition tools for knowledge-based systems
CS 795 Advanced Topics in CS (3:3:0)Prerequisite: Admission into Ph.D. program in Computer Science. Advanced topics in computer science not occurring in regular computer science sequence. The course may be repeated for credit when the subject is different. Satisfies the M.S. breadth requirement only if they are explicitly stated in the syllabus in a given section. Only one such course should be used for breadth requirements.
CS 798 Project Seminar (3:3:0)Prerequisite: 18 hours of credit applicable toward the M.S. in Computer Science. Master's degree candidates undertake a project using the knowledge gained in the M.S. program. Topics are chosen in consultation with an adviser. The project is intended to meet the project or thesis requirement for the M.S. in Computer Science.
CS 799 Thesis (1-6:0:0)Prerequisite: 18 hours of credit applicable toward the M.S. in Computer Science. Original or expository work is evaluated by a committee of three faculty members.
CS 803, CS 804 Doctoral Tutorial in Information Technology (3:3:0)Individualized intensive study of information technology. May be repeated as needed.
CS 811 / IT 811 Research Topics in Machine Learning and Inference (3:3:0)Prerequisites: CS 580 or 681, or permission of instructor. Presents unifying principles that underlie diverse methods, paradigms, and approaches to machine learning and inference. Reviews most known learning and inference systems, discusses strengths, and limitations, and suggests most appropriate areas of application. Hands-on experience with state-of-the-art learning and inference systems, and working on projects tailored to research interests.
CS 818 / IT 818 Topics in Computer Systems (3:3:0)Discussion of current research topics in computer systems. Topics may vary according to faculty interest. Possible topics include peer to peer computing, high performance distributed computing, sensor and ad hoc networks, autonomic computing, virtualization, and web services and middleware.
850 / IT 850 Research Topics in Parallel Computation (3:3:0)Prerequisite: CS 753. Discusses current research topics that vary according to student and faculty interest. Possible topics include formal models of concurrency, specification and design of parallel programming languages, logic programming in a parallel environment, and parallel distributed processing (neural networks).
CS 880 / IT 910 Research Topics in Artificial Intelligence (3:3:0)Prerequisite: graduate course in artificial intelligence. Special topics in artificial intelligence not occurring in regular computer sequence. Requires substantial student participation. Subject matter may include continuation of existing 600- or 700-level courses in artificial intelligence or other topics. May be repeated for credit when subject matter differs.
CS 884 / IT 940 Advanced Topics in Computer Vision and Robotics (3:3:0)Prerequisite: CS 682 or 685, or permission of instructor depending on topics offered. Covers recent developments. Topics motivated by applications to autonomous robotic systems, mobile robot navigation, multirobot systems, human-computer-environment interaction, image / video search and analysis, content discovery, and visual surveillance. Topics include 3D structure and motion recovery, motion understanding, map building and localization, object detection and recognition, and target tracking. Projects and experimental evaluation emphasized. Course may be repeated with change of topic.
CS 895 Research Topics in CS (3:3:0)Prerequisite: Admission into Ph.D. program in Computer Science or permission of instructor. Advanced topics in computer science not occurring in regular computer science sequence. The course may be repeated for credit when the subject is different. Only one such course should be used for breadth requirements.
Database Courses (INFS)
INFS 614 Database Management (3:3:0)Prerequisites: INFS 501, 515 and 590; or equivalent. Introduction to database systems, emphasing the study of database models and languages and the practice of database design and programming. Topics include the Entity- Relationship model, the relational model and its formal query languages, SQL, the theory of relational database design, and object-oriented and logic-based databases. Computing lab is required. No substitutions can be made for this class.
INFS 755 Data Warehousing and Mining (3:3:0)Prerequisite: INFS 614 or equivalent. The course covers techniques for designing and maintaining large data warehouses. Topics covered are OLAP, star schemas, data integration, data cleaning, maintenance of views in the presence of updates to the sources, and query processing of warehouses. The second part of the course focuses on mining data from the warehouses. Topics include data mining techniques such as classification, clustering, association rules, mining of time-series and complex data. The emphasis is on scalability over large data sets.
INFS 760 Advanced Database Management (3:3:0)Prerequisite: INFS 614. Study of advanced database models and languages, database design theory, transaction processing, recovery, concurrency, distributed database, security and integrity. Recent developments and research directions are discussed.
INFS 764 Object-Oriented Database Systems (3:3:0)Prerequisite: INFS 614 or CS 650, or permission of instructor. The knowledge of an object-oriented programming language such as C++ is highly desirable. Study of concepts and systems of object-oriented (OO) databases. Topics include OO design, data models, query languages, new data types, and implementation. Also included are a detailed case study and a project performed on a OO-DBMS. Various prototypes, commercially available systems, and emerging standards are surveyed.
INFS 795 Special Topics in Data Mining Applications (3:3:0)Prerequisite: INFS 755. This course focuses in the interdisciplinary applications of data mining. Topics are selected from the following: web and text data mining, e-commerce, bioinformatics, security and intelligence analysis, data mining of economical data. Each topic will be analyzed in depth and the state-of- the-art techniques in the application of data mining to the field will be extensively covered.
Software Engineering Courses (SWE)
SWE 619 Object-Oriented Software Specification and Construction (3:3:0)Prerequisites: SWE foundation courses or equivalent. An in-depth study of software construction using a modern, object-oriented language with support for graphical user interfaces and complex data structures. Specifications, design patterns, and abstraction techniques, including procedural, data, iteration, type, and polymorphic. Information hiding, classes, objects, and inheritance. Exception handling, event-based systems, and concurrency.
SWE 620 Software Requirements Analysis and Specification (3:3:0)Prerequisites: SWE foundation courses or equivalent. An in-depth study of methods, tools, notations, and validation techniques for the analysis, specification, prototyping, and maintenance of software requirements. In-depth study of object-oriented requirements modeling, including use case modeling, static modeling and dynamic modeling using the Unified Modeling Language (UML) notation. Students participate in a group project on software requirements and specification using a modern method.
SWE 621 Software Modeling and Architectural Design (3:3:0)Prerequisites: SWE 619, with 620 recommended, or permission of instructor. (MS CS students may substitute CS 540 and CS 571 for SWE 619). Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared. In-depth study of object-oriented analysis and design modeling using the Unified Modeling Language (UML) notation. Students participate in a group project on object-oriented software design.
SWE 622 Distributed Software Engineering (3:3:0)Prerequisites: SWE foundation courses or equivalent. Hands-on introduction to techniques and programming interfaces for distributed software engineering. Networking protocols at several layers. Construction of distributed and concurrent software using network protocol services. Applications of Internet and Web-based software.
SWE 623 Formal Methods and Models in Software Engineering (3:3:0)Prerequisites: SWE 619 or permission of instructor. Formal mechanisms for specifying, validating, and verifying software systems. Program verification through Hoare's method and Dijkstra's weakest preconditions. Formal specification via algebraic specifications and abstract model specifications, including initial specification and refinement towards implementation. Integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches. Formal methods using the Object Constraint Language (OCL).
SWE 632 User Interface Design and Development (3:3:0)Prerequisite: SWE 619, or CS 540 and 571, or permission of instructor. Principles of user interface design, development, and programming. Includes user psychology and cognitive science, menu system design, command language design, icon and window design, graphical user interfaces and web-based user interfaces.
SWE 637 Software Testing (3:3:0)Prerequisite: SWE 619 or permission of instructor. Concepts and techniques for testing software and assuring its quality. Topics cover software testing at the unit, module, subsystem, and system levels; automatic and manual techniques for generating and validating test data; the testing process; static vs. dynamic analysis; functional testing; inspections; and reliability assessment.
SWE 642 Software Engineering for the World Wide Web (3:3:0)Prerequisites: SWE 619, or CS 540 and 571, or permission of instructor. Detailed study of engineering methods and technologies for building highly interactive web sites for e-commerce and other web-based applications. Presents engineering principles for building web sites that exhibit high reliability, usability, security, availability, scalability, and maintainability. Teaches methods such as client- server programming, component-based software development, middleware, and reusable components.
SWE 645 Component-Based Software Development (3:3:0)Prerequisite: SWE 619, or CS 540 and CS 571 or permission of instructor. Introduction to the concepts and foundations of software component and component-based software. Detailed study of the engineering principles of modeling, designing, implementing, testing, and deploying component-based software. State- of-the-art component technologies will also be explored.
SWE 720 Advanced Software Requirements (3:3:0)Prerequisites: SWE 620 and 621. The course gives state of the art and state of the practice in software requirements engineering. In- depth coverage of selected methods, tools, notations, or validation techniques for the analysis and specification of software requirements. The course work includes a project investigating or applying approaches to requirements engineering.
SWE 721 Reusable Software Architectures (3:3:0)Prerequisites: SWE 620 and 621. This course investigates the software concepts that promote reuse of software architectures. The influence of object technology on software design and reuse is studied. Domain Modeling methods, which model the application domain as a software product family from which target systems can be configured, are investigated. The course also covers reusable software patterns including architecture patterns and design patterns, software components, and object-oriented frameworks.
Information Security and Assurance Courses (ISA)
ISA 562 Information Security Theory and Practice (3:3:0)Prerequisites: INFS 501, 515 and 590, or permission of instructor. This course is a broad introduction to the theory and practice of information security. It serves as the first security course for the MS-ISA degree and is required as a prerequisite for all subsequent ISA courses (at the 600 and 700 levels). It also serves as an entry-level course available to non-ISA students, including MS CS, MS ISE, and MS SWE students.
ISA 564 Security Laboratory (3:3:0)Prerequisites: INFS 501, 515, 590. This course provides hands-on experience in configuring and experimenting with commodity-networked systems and security software in a live laboratory environment, with the purpose of understanding real-world security threats. This course will take both offensive and defensive approaches and expose students to a variety of real-world attacks, including viruses, worms, rootkits, and botnets. Possible mitigation and defending mechanisms, such as firewalls and intrusion detection software, will also be covered.
ISA 640 Programming Language Security (3:3:0)Prerequisites: CS 540 and ISA 562. This course describes language-based techniques to provide security for executing code. Topics include a discussion on the need for and the advantages of language-based security, security principles and properties, memory and type safety, encapsulation and access control, certifying compilers and their verification methods, security types and information flow, and applying programming language-inspired techniques to enforce security in the semantic-web based languages.
ISA 656 Network Security (3:3:0)Prerequisites: ISA 562 and CS 555 or permission of instructor. This course is an in-depth introduction to the theory and practice of network security. It assumes basic knowledge of cryptography and its applications in modern network protocols. The course studies fire-walls architectures and virtual private networks and provides deep coverage of widely used network security protocols such as SSL, TLS, SSH, Kerberos, IPSec, IKE, and LDAP. It covers countermeasures to distributed denial of service attacks, security of routing protocols and the Domain Name System, e-mail security and spam countermeasures, wireless security, multicast security, and trust negotiation.
ISA 673 Operating Systems Security (3:3:0)Prerequisites: CS 571 and ISA 562 or permission of instructor. This course covers fundamentals and advanced topics in operating system (OS) security. It will study OS-level mechanisms and policies in investigating and defending against real-world attacks on computer systems, such as self-propagating worms and large-scale botnets. Basic OS security techniques, such as logging, system call auditing, and memory protection, will be discussed. Recent advanced techniques, such as honeypots and honeyfarms, system randomization, vulnerability fingerprinting, and virtualization, will also be introduced.
ISA 674 Intrusion Detection (3:3:0)Prerequisites: ISA 562 and 656 or permission of instructor. Studies methodologies, techniques, and tools for monitoring events in computer system or network, with the objective of preventing and detecting unwanted process activity and recovering from malicious behavior. Topics include types of threats, host-based and network- based information sources, vulnerability analysis, denial of service, deploying and managing intrusion detection systems, passive vs. active responses, and designing recovery solutions.
ISA 681 Secure Software Design (3:3:0)Prerequisite: ISA 562. Theory and practice of software security, focusing in particular on some common software security risks, including buffer overflows, race conditions and random number generation, and the identification of potential threats and vulnerabilities early in the design cycle. The emphasis is on methodologies and tools for identifying and eliminating security vulnerabilities, techniques to prove the absence of vulnerabilities, and ways to avoid security holes in new software and on essential guidelines for building secure software. Explores how to design software with security in mind from the ground up and integrate analysis and risk management throughout the software life cycle.
ISA 697 Topics in Information Security (3:3:0)Prerequisite: permission of instructor. Special topics in information security and assurance not occurring in regular ISA sequence. May be repeated for credit when distinct offerings of course differ in subject.
ISA 763 Security Protocol Analysis (3:3:0)Prerequisites: ISA 656. This course teaches how to design, understand, verify, and test communication protocols so that they meet their objectives of recognizing the basic components of a communication protocol; specifying security properties accurately; modeling actors and mal-actors against which a protocol ought to be secure; discussing verification methods and their limitations by ensuring that the specified protocol satisfies stated security objectives in the presence of intended mal-actions; designing a medium- sized protocol that satisfies a specification of requirement; using existing tools to specify and verify security protocols; and testing protocols for satisfying their security objectives.
ISA 764 Security Experimentation (3:3:0)Prerequisites: ISA 562, ISA 564, and ISA 674. This course teaches how to conduct security experimentations and how to empirically demonstrate, validate and evaluate security vulnerabilities, exploits and defense mechanism. By the end of the course, students will gain deeper understanding and first hand experiences on capturing packets of interests from both wired and wireless networks, and replying interested network flows, how shellcode, various buffer overflows attacks, worms, spyware, rootkits, botnets, anonymous communication works and traceback mechanisms work.
ISA 765 Database and Distributed Systems Security (3:3:0)Prerequisites: INFS 614 and ISA 562, or permission of instructor. Science and study of methods of protecting data: discretionary and mandatory access controls, secure database design, data integrity, secure architectures, secure transaction processing, information flow controls, inference controls, and auditing. Covers security models for relational and object-oriented databases; security of databases in distributed environment; statistical database security; and survey of commercial systems and research prototypes.
ISA 767 Secure Electronic Commerce (3:3:0)Prerequisites: ISA 562 and 656, or permission of instructor. Cryptography review, cryptographic protocols, secure electronic transactions, public key certificates and infrastructures, authentication and authorization certificates, secure credential services and role-based authorization, mobile code security, security of agent-based systems, electronic payment systems, intellectual property protection, secure time stamping and notarization.
ISA 797 Advanced Topics in Information Security (3:3:0)Prerequisite: permission of instructor. Special advanced topics not occurring in regular ISA sequence. May be repeated for credit when distinct offerings of course differ in subject.
|