Courses

George Mason University - Masters in Computer Science

CS 571: Operating Systems -

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 -

Principles and methods for knowledge representation, reasoning, learning, problem solving, planning, heuristic search, and natural language processing and their application to building intelligent systems in a variety of domains. LISP, PROLOG, or expert system programming language.

CS 583: Analysis of Algorithms -

Topics include analyzing sequential and parallel algorithmic strategies such as greedy methods, divide and conquer strategies, dynamic programming, search and traversal techniques, and approximation algorithms; and analyzing specific algorithms falling into these classes, NP-Hard and NP-Complete problems.

CS 688: Pattern Recognition -

Explores statistical pattern recognition and neural networks. Pattern recognition topics include Bayesian classification and decision theory, density (parametric and nonparametric) estimation, linear and nonlinear 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 706: Concurrent Software Systems -

Topics include concurrent programming languages and constructs; and specification, design, verification, and validation of concurrent programs. Students required to solve concurrent programming problems and check solutions by using verification, testing, and debugging tools.

CS 750: Theory and Applications of Data Mining -

Concepts and techniques in data mining and multidisciplinary applications. Topics include databases; 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.

ISA 666: Network Security -

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

INFS 650: Development Frameworks for Information Systems Applications -

Principles and methods of building commercial applications within high-level framework. Tools for system construction are considered, along with variety of programming languages, component integration, and design methods. Applications investigated through program construction in varied settings, such as database systems, graphical user interfaces, and prototyping.

SWE 642: Software Engineering for the World Wide Web -

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 -

Introduces concepts and foundations of software component and component-based software. Detailed study of engineering principles of modeling, designing, implementing, testing, and deploying component-based software. Also explores state-of-the-art component technologies.