Skip Navigation

University Bulletin: Undergraduate Programs 2003-2004 The George Washington University  

 
   
 

COMPUTER SCIENCE

Professors W.D. Maurer, S.Y. Berkovich, M.B. Feldman, P.S. Bock, J.L. Sibert, R.S. Heller, C.D. Martin, H.-A. Choi, A. Youssef, B. Narahari, S. Muftic (Research), J.K. Hahn (Chair), R. Simha, R. Price Jones
Associate Professors S. Rotenstreich, A. Bellaachia
Assistant Professors J. Stanton, X. Cheng, P. Vora, L.D. Florea
Adjunct Professors G.J. Kowalski, D.C. Roberts, S.H. Kaisler
Professorial Lecturer M. Caloyannides
Associate Professorial Lecturers T. Hanson, M. Happel, A. Kim, A. Panchenko
Assistant Professorial Lecturers R.A. Fernandez, T. Bragg, M. Lancaster, G. Blankenship, D. Christian, S. Delahunty, D. Eisenreich, T. Grissom, K. Heckman, A. Hennings, M. Pinkerton, W. Vitucci

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.

207 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 123 and either CSci 103 or 133.    (Spring)
210 Advanced Software Paradigms (3) Feldman 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 123, 133.    (Fall and spring)
211 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 123, 133, 135.    (Fall and spring)
212 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 123, 133.    (Fall and spring)
220 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 210, 212.    (Spring)
221 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 212.    (Spring)
223 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 212.    (Spring, even years)
224 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 123 and Math 32.    (Fall)
225 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 212.    (Fall)
227 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 212.    (Fall, even years)
232 Computer Networks (3) Simha 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 211.    (Fall)
233 Internet Protocols (3) Stanton 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 210, 232.    (Fall)
234 Design of Internet Protocols (3) Stanton and Staff
  Protocol specifications and formal description methods. Finite-state descriptions of Internet protocols. Specification and Description Language. Implementation of protocol specifications. Prerequisite: CSci 212, 233.
235 Distributed and Cluster Computing (3) Stanton 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 211.    (Fall, odd years)
238 Computer System Performance (3) Narahari and Staff
  Queuing models of computer systems and applications of queuing theory to computer modeling. Bounds on system performance. Mean-value analysis of computer systems. Modeling specific subsystems. Queuing models for analysis. Limitations of queuing models. Analysis of transaction processors and terminal-oriented systems. Prerequisite: CSci 211.    (Fall, odd years)
239 Comparative Computer Systems (3) Youssef and Staff
  Structures of computers and a system description language. History, characteristics, and philosophies of different computer structures. Special-purpose processors, multiprocessors, networks, and time-shared systems. Comparison of computer families. Performance evaluation. Effects of software and technology on computer structures. Prerequisite: CSci 211.    (Spring, odd years)
241 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 210, 211, or equivalent.    (Fall)
242 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 241.    (Spring)
244 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 210, 211.    (Spring)
246 Compiler Optimization (3) Narahari and Staff
  Overview of compilers, parsing techniques, code generation. Compiler optimization techniques, including register allocation, instruction scheduling. Compiler design for ILP processors. Prerequisite: CSci 210, 211, 212.    (Fall, even years)
251 Distributed Operating Systems (3) Rotenstreich and Staff
  Architecture, concurrent processes, interprocess communication, distributed scheduling, distributed shared memory, distributed security, synchronization and elections, distributed agreement, transactions and replicated data. Prerequisite: CSci 210, 211, 212.    (Fall)
252 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 210.    (Fall)
253 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 210.    (Spring)
254 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 210, 212.    (Spring)
255 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 211, 212.    (Fall)
256 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 254.    (Fall)
259 Advanced Object-Oriented Programming (3) Maurer and Staff
  The design patterns of Gamma, Helm, Johnson, and Vlissides. The C++ Standard Template Library (STL), a generic programming paradigm that has been adapted to the C++ programming language, and is an extensible framework for generic and interoperable components. Prerequisite: CSci 210 or familiarity with C++, data structures, and object-oriented programming.    (Spring)
260 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 210.    (Fall)
261 Design and Implementation of Educational Software (3) Martin and Staff
  History and types of computer-based learning (CBL). Models of learning theory and instructional design. Scripted and generative design strategies, use of authoring systems. Intelligent tutoring systems. Dissemination, legal issues. Overview of research issues in CBL. Project required. Prerequisite: CSci 260.    (Spring)
262 Computer Graphics Programming Tools (3) Hahn and Staff
  Standard graphics and animation programming tools and packages. Lab-specific software tools for sound, motion control, and rendering. Hardware used for video recording and editing. Peripheral devices such as stereo glasses, head-mounted displays, and trackers. Prerequisite: CSci 185, 211.    (Spring)
263 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 185.    (Spring)
264 Design of Human–Computer Interface (3) Sibert and 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 210.    (Spring)
266 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 185 or permission of instructor.    (Fall)
270 Artificial Intelligence (3) Bock and 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 174, 212.    (Fall)
271 Adaptive Learning Systems I (3) Bock and 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 174, 212.    (Fall)
278 Models of Cognition (3) Bock and 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 174, 212.    (Spring, odd years)
283 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 211.    (Fall)
284 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 212.    (Spring)
286 Network Security (3) Stanton 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 283.    (Spring)
287 Computer Network Defense (3) Stanton 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 286.
288 Wireless and Mobile Security (3) Simha 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 232, 283.
289 E-commerce Security (3) Muftic and 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 286.    (Fall)
297 Special Topics (1 to 3) Staff
  Topics to be announced in the Schedule of Classes.    (Fall and spring)
298 Research (arr.) Staff
  Applied research and experimentation projects, as arranged. May be repeated for credit.
299–300 Thesis Research (3–3) Staff
301 Research and Evaluation Methods (3) Bock and 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 115.    (Fall)
325 Advanced Topics in Computing 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 212.    (Spring, odd years)
326 Parallel Algorithms (3) Youssef and Staff
  Design and analysis of parallel algorithms. Topics include shared- and distributed-memory parallel computation models, graph algorithms, divide-and-conquer algorithms, numerical problems, parallel algorithms for combinatorial optimization methods. Prerequisite: CSci 211, 212.    (Spring, even years)
332 Advanced Topics in Computer Networks and Networked Computing (3) Simha 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 211, 212, 233.    (Fall, odd years)
338 Advanced Topics in Distributed Systems (3) Choi and Staff
  Seminar on current research and developments in networks and distributed systems. May be repeated for credit. Prerequisite: CSci 234.    (Fall, odd years)
339 Advanced Topics in Computer Architecture (3) Narahari and Staff
  Seminar on current research and developments in computer architecture. May be repeated for credit. Prerequisite: CSci 235.    (Spring, even years)
342 Advanced Topics in Programming Systems (3) Feldman and Staff
  Seminar on current research and developments in computer programming languages, systems and paradigms. May be repeated for credit. Prerequisite: CSci 210.    (Spring, odd years)
343 Advanced Topics in Information Systems (3) Berkovich and Staff
  Seminar on current research and developments in computer database systems and information retrieval. May be repeated for credit. Prerequisite: CSci 242 or 244.    (Fall, odd years)
351 Advanced Topics in Operating Systems (3) Rotenstreich and Staff
  Seminar on current research and developments in computer operating systems. May be repeated for credit. Prerequisite: CSci 251.    (Spring, even years)
355 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 255, 256.    (Fall, even years)
361 Advanced Topics in Interactive Multimedia (3) Heller and Staff
  Seminar on current research and developments in interactive multimedia. Team projects encompassing system design, system production, productivity tools, project management, cost analysis, prototyping, testing, and evaluation. Prerequisite: CSci 260.    (Spring, even years)
362 Advanced Topics in Human–Computer Interaction (3) Sibert and Staff
  Seminar on current research and developments in human–computer interaction. May be repeated for credit. Prerequisite: CSci 264.    (Fall, odd years)
367 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 263.    (Fall, even years)
368 Advanced Topics in Animation and Virtual Reality (3) Hahn and Staff
  Seminar on current research and developments in computer animation and virtual reality. May be repeated for credit. Prerequisite: CSci 266.    (Spring, odd years)
371 Adaptive Learning Systems II (3) Bock and Staff
  Alternative memory structures. Selection and modification policies. Environmental models and evaluation policies. Metrics for performance evaluation of collective learning systems automata. Self-organizing, hierarchical networks of collective learning cells. Prerequisite: CSci 271.    (Spring, odd years)
372 Natural Language Understanding (3) Bock and 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 270.    (Fall, odd years)
377 Advanced Topics in Machine Intelligence and Cognition (3) Bock and 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)
381 Advanced Topics in 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 284.    (Fall)
386 Java Security Mechanisms (3) Muftic and Staff
  Theoretical overview and practical aspects of Java security solutions. Students develop individual Java security modules and integrate them into a complete Java security system. Prerequisite: CSci 283.    (Spring)
387 Advanced Topics in Information Security (3) Vora and Staff
  Seminar on current research and developments in information assurance. May be repeated for credit. Prerequisite: CSci 283.    (Spring, even years)
390 Colloquium (0) Staff
  Lectures by outstanding authorities in computer science. Topics to be announced each semester.    (Fall and spring)
398 Computer Science Research (arr.) Staff
  Limited to students preparing for the Doctor of Science qualifying examination. May be repeated for credit.
399 Dissertation Research (arr.) Staff
  Limited to Doctor of Science candidates. May be repeated for credit.
 

The George Washington University

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

Information in this bulletin is generally accurate as of fall 2006. 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.