Skip Navigation

University Bulletin: Graduate Programs The George Washington University  

 
   
 

COMPUTER SCIENCE

Professors S.Y. Berkovich, R.S. Heller, H.-A. Choi, A. Youssef (Chair), B. Narahari, J.K. Hahn, R. Simha

Associate Professors S. Rotenstreich, A. Bellaachia, X. Cheng, P. Vora, N. Zhang, M. Diab

Assistant Professors G.A. Parmer, E. Drumwright, M. Clarkson, C. Monteleoni, H. Wee, T. Wood, G. Sibley

See the School of Engineering and Applied Science for programs leading to the master's, professional, and doctoral degrees. A certificate program in computer security and information assurance is offered by the Department of Computer Science.

Note: Consult the department about graduate courses listed here that may not be taken for credit if equivalent undergraduate courses have been taken for credit. Credit may be earned for only one course in each of the following pairs of courses: CSci 6223/4223, 6331/4331, 6341/4341, 6362/3362, 6364/4364, 6431/4431, 6441/2441, 6521/4521, 6525/4525, 6527/4527, 6531/4531, 6532/4532, 6541/4541

6010 Introduction to Computer Science Fundamentals (3) Simha and Staff
  Review of programming in a high-level language using Java or C++. Introduction to objects and object-oriented programming: static and dynamic objects, inheritance, dynamic method invocation. Data structures: 2D-arrays, linked-lists, stacks, queues, trees, hashing. Discrete structures: sets, graphs, permutations and combinations. Prerequisite: one year of course work in programming in C, C++, or Java.
6011 Introduction to Computer Systems (3) Cheng and Staff
  Introduction to basic concepts underlying all computer systems. Processor operation, hierarchical memory systems, elementary logic circuits, and systems software such as compilers, linkers, and operating systems from the programmer's perspective. Prerequisite: one year of course work in programming in C, C++, or Java.
6212 Design and Analysis of Algorithms (3) Youssef and Staff
  Design and analysis of algorithms. Turing machines; NP-Complete theory. Algorithmic techniques: divide-and-conquer, greedy, dynamic programming, graph traversal, backtracking, and branch-and-bound. Applications include sorting and searching, graph algorithms, and optimization. Prerequisite: CSci 1311, 1112. (Fall and spring)
6213 Advanced Data Structures (3) Berkovich and Staff
  Sparse matrix transpose and multiplication. List insertion and deletion, lists of available space. In-order, preorder, and postorder traversal of trees. Topological sorting. Binary search trees, including AVL trees, B-trees, and tries. Dynamic hashing. Prerequisite: CSci 6212. (Spring)
6221 Advanced Software Paradigms (3) Bellaachia and Staff
  Object-oriented, procedural, functional, and concurrent software design paradigms; design patterns; software life-cycle concepts. Tradeoffs between compiled and interpreted languages. Examples from Ada, Java, C, C++, and Perl. Prerequisite: CSci 1311, 1112. (Fall and spring)
6223 Principles of Programming Languages (3) Clarkson and Staff
  Fundamental concepts underlying design of programming languages. Detailed study of functional and object-oriented computational models. Types, evaluation, abstraction, control flow, modules, mutation, laziness, polymorphism, subtyping, inheritance. Practice learning new languages. Prerequisite: CSci 1311, 2113. (Spring, odd years)
6231 Software Engineering (3) Rotenstreich and Staff
  The life-cycle model. Requirements and specifications. Design models, structured and object-oriented design. Program development, PDL's tools, configuration control. Program, unit, and integration testing. Program verification. Other development models. Development metrics. Computer-aided software engineering (CASE). Prerequisite: CSci 6221, 6212. (Spring)
6232 Software Engineering Development (3) Rotenstreich and Staff
  Formal methods in software engineering. First-order logic, basic specification elements, rigorous proofs, formal development process, concurrency. Prerequisite: CSci 6461, 6212. (Fall)
6233 Software Testing and Quality (3) Rotenstreich and Staff
  Flow graphs and path testing, transaction flow testing, data flow testing, software metrics, system testing, test planning and documentation, reliability, statistical testing. Prerequisite: CSci 6231. (Fall)
6234 Object-Oriented Design (3) Rotenstreich and Staff
  Object-oriented systems, software reusability, software modularity, top-down and bottom-up approaches, object classification, genericity, metaprogramming, concurrent object-oriented programming languages. Prerequisite: CSci 6221. (Spring)
6235 Component-Based Enterprise Software Development (3) Rotenstreich and Staff
  Component-based software development for enterprise applications. Component models, multi-tier architecture. Specific case studies may include topics such as Enterprise Java Beans, DCOM, and COBRA. Prerequisite: CSci 6221. (Fall)
6311 Theory of Computation (3) Narahari and Staff
  Theoretical foundations of computer science. Formal languages and automata; regular expressions, context-free languages, parsing; Turing machines and complexity; partial recursive functions; undecidability; program correctness; fixed-point theory; formal specifications of software. Prerequisite: CSci 6212.
6312 Graph Theory and Applications (3) Choi and Staff
  Undirected and directed graphs. Connectivity, partitions, cycles and matchings. Edge and vertex coloring, chromatic polynomials, and the four-coloring problem. Planar graphs and Kuratowski's theorem. Properties of random graphs. Applications to a variety of problems. Prerequisite: CSci 6212. (Spring, even years)
6313 Advanced Discrete Structures (3) Youssef and Staff
  Discrete techniques in computer science. Algebraic structures, vector spaces, linear transforms, norms, matrices, complex numbers, convolution and polynomial multiplication, Fourier analysis, discrete Fourier transform, number theory. Applications to computer security, coding theory, and audiovisual signal processing. Prerequisites: CSci 1311 and Math 1232. (Fall)
6318 Complex Systems (3) Simha and Staff
  The edge-of-chaos phenomenon, phase transitions, power laws, small-world networks, Boolean networks, cellular automata, and complex dynamics. Applications to networks and biological systems. Prerequisite: CSci 6212. (On demand)
6331 Cryptography (3) Vora and Staff
  Review of mathematical theory for cryptography. Classical ciphers. Modern block and stream ciphers. Symmetric and asymmetric systems. Digital signatures. Public key infrastructure. Authentication. Prerequisite: CSci 6212. (Spring)
6341 Continuous Algorithms (3) Simha and Staff
  Overview of structures in continuous mathematics from a computational viewpoint. Main topics include continuous system simulation, computational modeling, probability, statistical techniques, next-event simulation, algorithms for continuous optimization, machine learning, neural networks, statistical language processing, robot control algorithms. Prerequisite: CSci 1311, 2113. (Spring)
6343 Numerical Solutions of Algebraic Systems (3) Berkovich and Staff
  Numerical solutions of linear algebraic equations and the algebraic eigenvalue problem. Sparse matrix techniques. Solutions of nonlinear simultaneous equations. Interpolation and extrapolation. Prerequisite: CSci 6212. (Fall, even years)
6351 Data Compression (3) Youssef and Staff
  Background on signals, information theory, transforms, human vision, and metrics. Lossless and lossy compression techniques. Video compression. Compression standards. Progressive transmission. Prerequisite: CSci 6212. (Fall)
6362 Probability for Computer Science (3) Monteleoni and Staff
  Concepts of probability and statistics used in computer science. Random variables. Conditional probability, independence, correlation. Law of large numbers, central limit theorem. Applications to computer science, including entropy, information theory, data compression, coding, inference, Markov chains, randomized algorithms. Prerequisite: Math 1232, CSci 1311; or permission of instructor. (Spring)
6364 Machine Learning (3) Monteleoni and Staff
  Machine learning algorithms: nearest-neighbor, regression, classification, perceptron, kernel methods, support vector machine (SVM), logistic regression, ensemble methods, boosting, graphical models, hidden Markov models (HMM), non-parametrics, online learning, active learning, clustering, feature selection, parameter tuning, and cross-validation. Prerequisite: CSci 6212; 6362, Math 2184; or permission of instructor. (Spring)
6365 Advanced Machine Learning (3) Monteleoni and Staff
  Theory and algorithms for machine learning research. In-depth focus on advanced machine learning topics such as clustering, learning from data streams, and Climate Informatics. Prerequisite: CSci 4364, 6212, 6362, Math 2184; or permission of instructor. (Fall)
6421 Distributed and Cluster Computing (3) Parmer and Staff
  Overview of network programming. Interconnection networks and system architecture for clusters. Cluster design, benchmarking, management, and configuration. Distributed computing on the web and grids. Distributed naming, location, authentication, and high availability. Programming high-performance clusters. Prerequisite: CSci 6461. (Fall, odd years)
6431 Computer Networks (3) Cheng and Staff
  Fundamental concepts in the design and implementation of computer communication networks and internet, their protocols, and applications. Layered network architectures, applications, network programming interfaces, transport, routing, data link protocols, local area networks, network management, and network security. Prerequisite: CSci 6461. (Fall)
6433 Internet Protocols (3) Cheng and Staff
  Understanding of the layered protocols for the Internet. Interconnection of networks. The IP protocol and routing algorithms, switches, bridges, and routers. The transmission control protocol (TCP). Addressing and names. Application-specific protocols, FTP, TELNET, SMTP, SNMP, HTTP. Domain name services. Prerequisite: CSci 6221, 6431. (Fall)
6434 Design of Internet Protocols (3) Cheng and Staff
  Protocol specifications and formal description methods. Finite-state descriptions of Internet protocols. Specification and Description Language. Implementation of protocol specifications. Prerequisite: CSci 6212, 6433.
6441 Database Management Systems (3) Narahari and Staff
  Design and architecture of relational database management systems; query languages, data models, index structures, database application design. Prerequisite: CSci 6221, 6461, or equivalent. (Fall)
6442 Database Systems (3) Narahari and Staff
  Concepts in database systems. Relational database design. Editing, report generation, updating, schema refinement, tuning. Construction of database management systems. Conceptual and logical design of a database. Prerequisite: CSci 6441. (Spring)
6443 Data Mining (3) Bellaachia and Staff
  Fundamental concepts of data mining. Algorithm techniques for data mining, including classification, clustering, association rules mining. Prerequisite: CSci 6441 or equivalent or permission of instructor. (Spring)
6448 Scientific Databases and Knowledge Formation (3) Berkovich and Staff
  Database management and information retrieval. Relational algebra and SQL query language. Advanced retrieval capabilities. Data mining. Rules of inductive inference. Classification, clustering, and machine learning techniques. Confronting the problems of complexity. Prerequisite: CSci 1311 and either CSci 1132 or 1112. (Spring)
6451 Information Retrieval Systems (3) Berkovich and Staff
  Information organization and retrieval of natural language data by digital computer systems; statistical, syntactic, and logical analysis of natural language; dictionary and thesaurus systems; searching strategies and cataloging. Large-scale file structures. Prerequisite: CSci 6221, 6461. (Spring)
6461 Computer Architectures (3) Narahari and Staff
  Concepts in processor, system, and network architectures; architecture of pipeline, superscalar, and VLIW/EPIC processors; multiprocessors and interconnection networks. Cache coherence and memory subsystem design for multiprocessor architectures. Parallel and distributed system architecture; internetworking. Prerequisite: CSci 1311, 1112, 2461. (Fall and spring)
6511 Artificial Intelligence (3) Staff
  Representation and space search. Heuristic search. Predicate calculus. Knowledge representation and knowledge engineering for expert systems. Rule-based, hybrid, and O-O systems. Semantic nets, frames, and natural language. Theorem provers. Overview of planning, learning, neural nets. Use of AI languages. Prerequisite: CSci 4511, 6212. (Fall)
6512 Adaptive Learning Systems I (3) Staff
  Learning as an alternative to rule-based schemes for artificial intelligence. Deterministic and probabilistic simulation of games. Markovian and bounded-context systems. The algedonic process. Introduction to collective learning systems theory. Design, simulation, and evaluation of collective learning automata. Prerequisite: CSci 4511, 6212. (Fall)
6515 Natural Language Understanding (3) Staff
  The state of the art of natural language parsing and semantic understanding by computer systems. Review of formal, context-free, and transformational grammars and parsing. Augmented transition networks: problems of complexity, semantics, and context. Deterministic parsing and semantic parsing. Prerequisite: CSci 6511. (Fall, odd years)
6519 Models of Cognition (3) Staff
  The central nervous system as a natural precedent for AI: structure and function of the neuron and neural networks; sensors and actuators; modular brain function. The cognitive process. Intelligence metrics. Genetics and self-organizing systems. Memory mechanisms. The psychological basis of learning and behavior. Prerequisite: CSci 4511, 6212. (Spring, odd years)
6521 Autonomous Robotics: Mobility and Perception (3) Sibley, Drumwright, and Staff
  Concepts of autonomous mobile robotics with emphasis on algorithmic aspects. Sensing, sensor fusion, localization, calibration, mapping, perception, decision making, planning, behavior-based control, world modeling, and navigation. Development of algorithms that can operate autonomous mobile platforms in complex, real-world environments. Prerequisite: Math 1232, 2184; CSci 6362 or 4341. (Fall)
6525 Autonomous Robotics: Manipulation (3) Drumwright, Sibley, and Staff
  Manipulation and autonomous operation in dynamic, human-centric environments. Reinforcement learning, perception, optimization algorithms, kinematics, dynamics, control theory. Prerequisite: CSci 6362, Math 2184; or permission of instructor. (Spring)
6527 Introduction to Computer Vision (3) Sibley and Staff
  Image signal processing and filtering. Saliency, features and feature extraction, tracking, stereo disparity estimation, structure form motion, photogrammetry, optic flow, homography estimation and warping, scene segmentation, place recognition, object recognition, robust estimation, and camera calibration. Current research topics. Prerequisite: Math 1232, 2184; CSci 6362 or 6341. (Spring)
6531 Computer Security (3) Vora and Staff
  Functional description of cryptographic primitives. Risk analysis. Policy models: security, confidentiality, integrity, hybrid. Design principles: access control, information flow, confinement. Assurance: formal methods, evaluation. Malicious logic: security effects of programming languages. Prerequisite: CSci 6461. (Fall)
6532 Information Policy (3) Staff
  Roles, issues, and impacts of computer-based information systems in national and international arenas, focusing on privacy, equity, freedom of speech, intellectual property, and access to personal and governmental information. Professional responsibilities, ethics, and common and best practices in information use. (Fall)
6534 Information Security in Government (3) Heller and Staff
  Information assurance policies and standards in the federal government as mandated by legislation; security processes following NIST standards; technical tests and validation methods used in the federal government; review of federal threats and vulnerabilities; and government positions in information assurance. May be repeated for credit. (Fall and spring)
6541 Network Security (3) Zhang and Staff
  Security protocols and applications in local, global, and wireless networks; IPSec and packet-level communication security systems; network authentication and key-exchange protocols; intrusion detection systems and firewalls; secure network applications; network worms and denial-of-service attacks. Prerequisite: CSci 6531. (Spring)
6542 Computer Network Defense (3) Narahari and Staff
  Offensive and defensive information warfare operations. Simulation of various attacks on and defenses of computer systems. Laws related to information warfare. History and literature related to information warfare attacks. Prerequisite: CSci 6541.
6547 Wireless and Mobile Security (3) Cheng and Staff
  Mobile Agents, Wireless Web, WAP, WEP, Peer-to-Peer Computing; secure routing; intrusion detection and authentication on wireless networks; security for handheld devices; encryption and cryptographic measures for wireless; real-time wireless security; security measures for embedded devices. Prerequisite: CSci 6431, 6531.
6548 E-commerce Security (3) Staff
  Advanced technical topics in e-commerce security. X.500 registration systems, X.509/PKIX certification systems, secure payment methods, smart cards, authorization models in open distributed environments. Secure web systems, technologies, and applications. Prerequisite: CSci 6541. (Fall)
6554 Computer Graphics II (3) Hahn and Staff
  Curves and surfaces. Spatial sampling and aliasing. Visible surface algorithms. Illumination and shading models, raytracing and radiosity. Image manipulation and texture mapping. Procedural models. Prerequisite: CSci 4554. (Spring)
6555 Computer Animation (3) Hahn and Staff
  Euler angles and quaternions; articulated figure motion; forward and inverse kinematics; kinematic, physics based, and behavioral motion control; rendering problems (temporal aliasing); sound synthesis and synchronization; recording and editing techniques. Prerequisite: CSci 4554 or permission of instructor. (Fall)
6561 Design of Human-Computer Interface (3) Staff
  Design of dialogues for interactive systems. Psychological, physiological, linguistic, and perceptual factors. Advantages and disadvantages of various interaction techniques, command language syntaxes, and data presentations. Design methodology and guidelines. Case studies, research readings, and projects. Prerequisite: CSci 6221. (Spring)
6562 Design of Interactive Multimedia (3) Heller and Staff
  History, theory, and development of multimedia concepts. Hardware components, platforms, and authoring tools. Scientific, technical, and cognitive foundations of various media including text, sound, graphics, and video. Interface design. Use of a media taxonomy as a design and evaluation tool. Completion of a multimedia portfolio required. Prerequisite: CSci 6221. (Fall)
6572 Computational Biology Algorithms (3) Simha and Staff
  Algorithms and models for DNA and protein sequence alignments, gene finding, identification of gene regulatory regions, sequence evolution and phylogenetics, RNA and protein structure, microarray and/or proteomics data analysis. Prerequisite: CSci 6212 or equivalent; programming experience in C/C++ or Java. (Spring)
6900 Colloquium (0) Staff
  Lectures by outstanding authorities in computer science. Topics to be announced each semester. (Fall and spring)
6907 Special Topics (1 to 3) Staff
  Topics to be announced in the Schedule of Classes. (Fall and spring)
6908 Research (arr.) Staff
  Applied research and experimentation projects, as arranged. May be repeated for credit.
6998-99 Thesis Research (3-3) Staff
8211 Advanced Topics in Algorithms (3) Choi and Staff
  Graph algorithms, strongly connected components, biconnected components, dominators in acyclic graphs, ordered trees, network flow, planarity testing, bipartite matching, theory of NP completeness, NP-complete problems. Design and analysis of approximation algorithms for NP-complete problems. Prerequisite: CSci 6212. (Spring, odd years)
8231 Advanced Topics in Software Engineering (3) Rotenstreich and Staff
  Seminar on current research and developments in software engineering. Students develop a software package with the aid of available software tools such as requirement tool, design tool, code generators, testing tools, measurement tools, cost estimation tools. Prerequisite: CSci 6232, 6233. (Fall, even years)
8331 Advanced Cryptography (3) Vora and Staff
  Linear and differential cryptanalysis. Cryptanalysis of AES. Factorization and primality. Computational and information-theoretic secrecy. Theory of secrecy. Zero-knowledge proofs. Secret sharing. Cooperative distributed cryptography. Provable security. Prerequisite: CSci 6331. (Fall)
8401 Advanced Topics in Systems (3) Rotenstreich and Staff
  Seminar on current research and developments in computer operating systems. May be repeated for credit. (Spring, even years)
8431 Advanced Topics in Computer Networks and Networked Computing (3) Cheng and Staff
  Seminar on current research and developments in computer networks, Internet, networked computing, mobile computing and pervasive computing. May be repeated for credit. Prerequisites: CSci 6461, 6212, 6433. (Fall, odd years)
8440 Advanced Topics in Data Management (3) Berkovich and Staff
  Seminar on current research and developments in computer database systems and information retrieval. May be repeated for credit. Prerequisite: CSci 6442 or 6451. (Fall, odd years)
8511 Advanced Topics in Artificial Intelligence (3) Staff
  Seminar on current research and developments in machine intelligence and cognitive science. May be repeated for credit. Prerequisite: Permission of the instructor. (Fall, even years)
8531 Advanced Topics in Security (3) Vora and Staff
  Seminar on current research and developments in information assurance. May be repeated for credit. Prerequisite: CSci 6531. (Spring, even years)
8554 Advanced Topics in Computer Graphics (3) Hahn and Staff
  Seminar on current research and developments in computer graphics. Spatial and temporal anti-aliasing: hidden-surface algorithms: illumination models, radiosity, textural mapping. May be repeated for credit. Prerequisite: CSci 6554. (Fall, even years)
8900 Advanced Selected Topics (3) Staff
  Topics announced in the Schedule of Classes.
8901 Research and Evaluation Methods (3) Staff
  Required for all computer science doctoral candidates. The scientific method; research/design requirements and objectives: qualitative, quantitative, and case studies; performance metrics; design procedures and control; sources of error and bias; evaluation tools; formal validation methods; documentation standards. Prerequisite: ApSc 3115. (Fall)
8998 Computer Science Research (arr.) Staff
  Limited to students preparing for the Doctor of Philosophy qualifying examination. May be repeated for credit.
8999 Dissertation Research (arr.) Staff
  Limited to Doctor of Philosophy candidates. May be repeated for credit.
 

The George Washington University

© 2013 University Bulletin
The George Washington University All rights reserved.

Information in this bulletin is generally accurate as of fall 2012. The University reserves the right to change courses, programs, fees, and the academic calendar, or to make other changes deemed necessary or desirable, giving advance notice of change when possible.