Graduate
Course Descriptions
• Interdisciplinary
Courses
• M.S. Core
• Ph.D. Core
• Information Assurance Core
• Electives
Interdisciplinary Courses
CS G100 Data Structures
(not opened to MS students in CS for credit)
Prereq: Programming experience or permission of instructor
Rapidly introduces programming techniques, algorithms, data structures,
abstraction and modularization using a high level language, such
as Java. Studies data structures such as records, arrays, linked
lists, stacks, queues, trees, heaps and graphs. Introduces
iteration and recursion as techniques for problem solving.
Examines algorithms for binary search, heap sort, quick sort, depth-first
and breadth-first tree and graph traversal, shortest path and minimal
spanning tree. Additional topics include: set operations and
hashing.
CS G102 Database Management
(not opened to MS students in CS for credit)
Prereq: Knowledge of UNIX system or permission of instructor
Considers the concepts and structures necessary to design and implement
a database application. Introduces database concepts, and
database modeling. Emphasizes the relational model, but older
models such as the hierarchical and network models as well as the
newer object-oriented model may be discussed. Topics include
data definition and manipulation languages, design theory for relational
models, and an introduction to access methods, query optimization,
integrity, security, recovery, and concurrency in database systems.
CS G104 Computer Networks
(not opened to MS students in CS for credit)
Prereq: Knowledge of UNIX system or permission of instructor
Explores data networking. Focuses on concepts, technology, and implementation
issues. Discusses distributed system requirements, network
architecture, OSI model, communication protocols (TCP/IP), routing
algorithms, local area networks, public data networks, vendor network
architecture, PC networks, standards, inter networking, network
management, and performance issues. Uses examples from real networks
to reinforce theory. Requires using real networks and designing
and implementing communication protocols.
CS G106 LISP Lab
(1 semester credit)
Prereq: Admission to the Graduate School of CCIS or permission
of instructor
Introduces LISP to computer scientists
Transitional Course
CS G199 Individual Studies
(2 semester credit)
Prereq: Permission of the Graduate School of the College.
Studies topics in computer science under the supervision of an instructor.
(offered only in 2003-2004)
M.S. Core
Prereq: admitted to MS program or completion of all transition courses
CS G107 Program Design Paradigms
This graduate course for students in the MS program introduces modern program
design paradigms. It starts with functional program design, introducing the
notion of a design recipe. The latter consists of two parts: a task
organization (ranging from the description of data to the creation of a test
suite) and a data-oriented approach to the organization of programs (ranging
from atomic data to self-referential data definitions and functions-as-data).
The course then progresses to object-oriented design, explaining how it
generalizes and contrasts with functional design. In addition to studying
program design, students also practice pair programming and public code review
techniques, as found in industry today. STUDENT MUST REGISTER FOR CS G108 LAB
IN ORDER TO GET CREDIT FOR THIS COURSE. This course is mandatory for all MS
students beginning in Fall 2008.
CS G110 Managing Software Development
Covers software life cycle models (waterfall, spiral, etc.), domain
engineering methods, requirements analysis methods (including formal
specifications), software design principles and methods, verification
and testing methods, resource and schedule estimation for individual
software engineers, component-based software development methods
and architecture, languages for describing software processes. Includes
a project where some of the software engineering methods (from domain
modeling to testing) are applied in an example.
CS G111 Principles of Programming Languages
Prereq: CS G106 or permission of instructor
Studies the basic components of programming languages; specification
of syntax and semantics; and description and implementation of programming
language features. Discusses examples from a variety of languages.
CS G112 Computer Systems
Studies the structure, components, design, implementation, and internal
operation of computer systems, focusing mainly on the operating
system level. Briefly reviews computer hardware and architecture,
including the arithmetic and logic unit, and the control unit.
Covers current operating system components and construction techniques,
including the memory and memory controller, I/O device management,
device drivers, memory management, file system structures, and the
user interface. Introduces distributed operating systems,
discusses issues arising from concurrency and distribution, such
as scheduling of concurrent processes, interprocess communication
and synchronization, resource sharing and allocation, deadlock management
and resolution. Includes examples from real operating systems.
Will expose students to the system concepts through programming
exercises.
CS G113 Algorithms
Presents the mathematical techniques used for the design and analysis
of computer algorithms. Focuses on algorithmic design paradigms
and techniques for analyzing the correctness, time and space complexity
of algorithms. Topics chosen from: asymptotic notation, recurrences,
loop invariants, Hoare triples, sorting and searching, advanced
data structures, lower bounds, hashing, greedy algorithms, dynamic
programming, graph algorithms, and NP-completeness.
Ph.D. Core
Prereq: admitted to Ph.D. program or permission of instructor
CS G711 Intensive Principles of Programming
Languages
Prereq: CS G106 or permission of instructor
Studies the basic components of programming languages; specification
of syntax and semantics; and description and implementation of programming
language features. Discusses examples from a variety of languages.
CS G712 Intensive Computer Systems
Studies the structure, components, design, implementation, and internal
operation of computer systems, focusing mainly on the operating
system level. Briefly reviews computer hardware and architecture,
including the arithmetic and logic unit, and the control unit.
Covers current operating system components and construction techniques,
including the memory and memory controller, I/O device management,
device drivers, memory management, file system structures, and the
user interface. Briefly discusses distributed operating systems,
real time systems and addresses issues such as concurrent processes,
scheduling, interprocess communication and synchronization. Some
relevant distributed algorithms will be discussed as time allows.
The course will also cover design and analysis techniques for desirable
properties in computer systems selected from the following: functional
correctness (in the absence of faults), performance and throughput,
fault-tolerance and reliability, real-time response, security, and
quality-of-service. Includes examples from real operating systems.
The course will emphasize abstraction while programming exercises
will be used to facilitate the understanding of concepts.
CS G713 Advanced Algorithms
Presents advanced mathematical techniques for designing and analyzing
computer algorithms. Reviews some of the material covered
in CS G113 and then covers advanced topics. Emphasizes theoretical
underpinnings of techniques used to solve problems arising in diverse
domains. Topics include asymptotic analysis, advanced data structures,
dynamic programming, greedy algorithms and matroid theory, amortized
analysis, randomization, string matching, algebraic algorithms,
and approximation algorithms. Introduces Turing Machines,
P and NP classes, polynomial-time-reducibility, and NP-completeness.
CS G714 Theory of Computation
Prereq: CS G713 MS: Theory
Examines formal models of computation, notions of undecidability,
and basic complexity theory. Models of computation include
finite state automata, pushdown automata, and Turing machines.
Discusses the properties of regular sets and context-free languages.
Also covers partial recursive functions, primitive recursive functions,
recursively enumerable sets, Turing decidability and unsolvable
problems. Discusses the concept of reductions, time and space complexity
classes, and the polynomial-time hierarchy.
CS G719 Research Overview of Computer Science (1 s.h.)
Students will be exposed to all current research activities within
the College.
Information Assurance Core
IA G100 Foundations of Information Assurance
Builds a common cross-disciplinary understanding in the foundations
of information assurance. Presents an overview of basic principles
and security concepts related to information systems, including
workstation security, system security, and communications security.
Introduces information security via database technology. Discusses
Legal Infrastructure such as DMCA, Telecommunications Act, Wire
Fraud, and other ethical issues. Covers Security Methods,
Controls, Procedures, Economics of Cyber crime, Criminal Procedure
and Forensics; Describes the use of Cryptography as a tool, Software
Development Processes and Protection.
IA G110 Computer Systems and Networks
Introduces the basic concepts underlying computer operating systems
and computer networks. Covers the basic structure of an operating
system such as application interfaces, processes, threads, synchronization,
inter-process communication, processor allocation, deadlocks, memory
management, file systems, and input/output control. Also introduces
network architectures, network topologies, network protocols, layering
concepts (for example, ISO/OSI, TCP/IP reference models), communication
paradigms (point-to-point vs. multicast/broadcast, connectionless
vs. connection oriented), and networking APIs (sockets). Use
examples from real operating systems and networks (UNIX, MS-DOS,
Windows, TCP/IP, Ethernet) to reinforce concepts.
IA G114 Applied Cryptography
Provides a survey of both the principles and the practice of cryptography.
Topics covered include symmetric encryption schemes including DES
and AES; public key cryptosystems such as RSA, Discrete Logarithm;
hash functions, authentication and digital signatures; key management
and digital certificates. Discusses network security protocols and
applications, including Kerberos and SSL.
APPROVED ELECTIVES
At most 8 semester credit hours of these courses can be counted towards MS CS
IA G120 Security Risk Management and Assessment
Prereq: IA G100 or taken concurrently or permission of instructor. MS: Info Sec
Creates a competency in the development of information security
policies and plans including controls for physical, software and
networks. Discusses different malicious attacks, such as viruses
and Trojan horses, detection strategies, countermeasures, damage
assessment and control. Covers information system risk analysis
and management, audits and logfiles. Uses case studies, site
visits and works with commercial products.
IA G124 Information System Forensics
Prereq: IA G100 or taken concurrently or permission of instructor. MS: Info Sec
Designed to allow students to explore the techniques used in computer
forensic examinations. Examines computer hardware, physical
and logical disk structure and computer forensic techniques.
Hands-on experiences will be conducted on DOS, Windows operating
systems, Macintosh, Novell, and Unix/Linux platforms. Students
will build on basic computer skills and gain hands-on experience
with the tools and techniques to investigate, seize and analyze
computer based evidence using a variety of specialized forensic
software in an IBM-PC environment.
IA G128 Ethics, Privacy and Digital Rights
Prereq: IA G100 or taken concurrently or permission of instructor. MS: Info Sec
Understand the legal and ethical issues associated with information
security including access, use and dissemination. Emphasis on legal
infrastructure relating to information assurance such as the Digital
Millenium Copyright Act and Telecommunications Decency Act, and
emerging technologies for management of digital rights. Examine
the role of information security in various domains such as healthcare,
scientific research, personal communications such as email. Examine
criminal activities such as computer fraud and abuse, desktop forgery,
embezzlement, child-pornography, computer trespass, and computer
piracy.
IA G674 Capstone Project:
The team project is intended to draw together candidates from diverse
backgrounds (technical, legal and/or law enforcement) in a collaborative
activity to address one or more security issues from an integrated
perspective. The project is generally industrially oriented with
a project proposal submitted and accepted prior to the semester
in which the project is to be undertaken.
ELECTIVES
Artificial Intelligence
CS G120 Foundations of Artificial Intelligence
Prereq: Lisp or Java programming MS: AI Ph.D.:
AI
This course introduces the fundamental problems, theories and algorithms
of the artificial intelligence field. Topics covered include:
heuristic search and game trees; knowledge representation using
predicate calculus; automated deduction and its applications; problem
solving and planning; introduction to machine learning. Required
coursework includes the creation of working programs that solve
problems, reason logically, and/or improve their own performance
using techniques presented in the course.
CS G220 Machine Learning
Prereq: CS G120 MS: AI Ph.D.: AI
This course provides a broad look at machine learning techniques
and issues, including algorithms for: supervised learning, including
back-propagation neural networks and decision tree induction; unsupervised
learning; reinforcement learning; and explanation-based learning.
Also covers simulated annealing and genetic algorithms, and introduces
computational learning theory and other methods for analyzing and
measuring the performance of learning algorithms. Coursework
includes a programming term project.
CS G222 Knowledge-based Systems
Prereq: CS G120 MS: AI Ph.D.: AI
This course focuses on the acquisition, organization and use of
world knowledge in computers, and the challenge of creating programs
with common sense. Topics include: knowledge representation and
reasoning models beyond predicate calculus; Bayesian inference and
other models of reasoning and decision making under uncertainty;
rule-based expert systems; case-based and analogical reasoning;
introduction to natural language processing. Required coursework
include the creation of working programs that store and manipulate
world knowledge using techniques presented in the course.
CS G224 Natural Language Processing
Prereq: CS G120 MS: AI Ph.D.: AI
This course provides an introduction to the computational modeling
of human language, the ongoing effort to create computer programs
that can communicate with people in natural language, and current
applications of the natural language field such as automated document
classification, intelligent query processing, and information extraction.
Topics include: computational models of grammar and automatic parsing;
statistical languagemodels and the analysis of large text corpuses;
natural language semantics and programs that understand language;
models of discourse structure; and language use by intelligent agents.
Required coursework includes formal and mathematical analysis of
language models, and implementation of working programs that analyze
and interpret natural language text.
CS G329 Special Topics in Artificial Intelligence
Prereq: CS G120 or consent of instructor. MS: AI
Topics vary
CS G720 Seminar in Artificial Intelligence (2 s.h.)
Prereq: CS G120 or consent of instructor.
Students will read and present various survey and research papers
in Artificial Intelligence. Faculty supervisor and topics
will vary from semester to semester. May be repeated for credit
for Ph.D. students.
Database Management
CS G130 Introduction to database systems
Prereq: MS: DB Ph.D.: DB
Introduces relational database management systems as a class of
software systems. Prepares students to be sophisticated users of
database management systems. The course covers design theory,
query language and performance/tuning issues. Topics include
relational Algebra, SQL, stored procedures, user-defined functions,
cursors, embedded SQL programs, client-server interfaces, entity-relationship
diagrams, normalization, B-trees, concurrency, transactions, database
security, constraints, object-relational DBMSs, specialized engines
such as spatial, text, XML conversion and time series. The course
will include exercises using a commercial relational or object-relational
database management system.
CS G131 Implementation of database management
systems
Prereq: CS G130 MS: DB Ph.D.: DB
Explores the internals of database management systems. Topics
include SQL Query optimization in centralized and parallel systems,
use of B-tree indexes for efficiency, nested loop, sort/merge and
hash-partition, joins, histograms for estimation, lock and unlock.
Introduces recovery, log record structure, log functions, fuzzy
checkpointing, buffer manager structure, LRU replacement, FIX rule,
WAL rule, two-phase commit with presumed abort optimization and
replication.
CS G230 Data Mining Techniques
Prereq: CS G113 or CS G713 MS: DB Ph.D.: DB
This course covers various aspects of data mining including OLAP
technology, data characterization, classification, association rules,
cluster Analysis, time series, and so on. The class project
involves hands-on practice of mining useful knowledge from a large
database using the Analysis Services component of Microsoft SQL
Serve.
CS G339 Special Topics in Database
Management
Prereq: CS G131 or consent of instructor. MS: DB
Topics vary. Possible areas are object-oriented database systems
and distributed data-base systems.
CS G730 Seminar in Database Systems (2 s.h.)
Prereq: CS G131 or consent of instructor.
Students will read and present various survey and research papers
in Database Systems. Faculty supervisor and topics will vary
from semester to semester. May be repeated for credit for
Ph.D. students.
Graphics
CS G140 Computer Graphics
Prereq: Linear Algebra MS: Graphics
Introduces the fundamentals of two-dimensional and three-dimensional
computer graphics with an emphasis on approaches for obtaining realistic
images. Covers two-dimensional algorithms for drawing lines
and curves, anti-aliasing, filling, and clipping. Studies
rendering of three-dimensional scenes composed of spheres, polygons,
quadric surfaces, and bi-cubic surfaces using ray-tracing and radiosity.
Includes techniques for adding texture to surfaces using texture
and bump maps, noise, and turbulence.
CS G142 Digital Image Processing
Prereq: Linear Algebra MS: Graphics
Studies the fundamental concepts of digital image processing, including
digitization and display of images, manipulation of images to enhance
or restore image detail, encoding (compression) of images, detection
of edges and other object features in images, and the formation
of computed tomography (CT) images. Introduces mathematical
tools such as linear systems theory and Fourier analysis and uses
them to motivate and explain these image processing techniques.
CS G144 Pattern Recognition and Computer
Vision
Prereq: Linear Algebra MS: Graphics
Introduces fundamental techniques for low-level and high-level computer
vision. Examines image formation, early processing, boundary detection,
image segmentation, texture analysis, shape from shading, photometric
stereo, motion analysis via optic flow, object modeling, shape description,
and object recognition (classification). Discusses models of human
vision (gestalt effects, texture perception, subjective contours,
visual illusions, apparent motion, mental rotations, cyclopean vision).
CS G242 Computational Imaging
Prereq: CS G142 or ECE G311 or permission of instructor MS: Graphics
Introduces the latest computationsal methods in digital imaging that overcome the traditional limitations of a camera and enable novel imaging applications. The course provides a practical guide to topics in image capture and manipulation methods for generating compelling pictures for computer graphics and for extracting scene properties for computer vision, with several examples.
CS G349 Special Topics in Graphics/Image
Processing
Prereq: consent of instructor. MS: Graphics
Topics vary.
CS G740 Seminar in Graphics/Image Processing (2 s.h.)
Prereq: consent of instructor. MS: Graphics
Students will read and present various survey and research papers
in Graphics and Image Processing. Faculty supervisor and topics
will vary from semester to semester. May be repeated for credit
for Ph.D. students.
Networks
CS G150 Fundamentals of Computer Networking
Prereq: undergraduate probability theory MS: Netwk
Ph.D.: Netwk
Studies network protocols and architectures. Focuses on modeling
and analysis of networks and network protocols. Introduces
modeling concepts with emphasis on queuing theory, including Little’s
theorem, M/M/1, M/M/m, M/D/1 and M/G/1 queuing systems. Discusses
issues of performance evaluation of computer networks including
performance metrics, evaluation tools and methodology, simulation
techniques and limitations. Presents the different harmonizing
functions needed for the communication and efficient operation of
computer networks and discusses examples of Ethernet, FDDI and Wireless
networks. Topics include: link layer protocols such as HDLC,
PPP and SLIP; packet framing; spanning tree and learning bridges,
error detection techniques and automatic repeat request algorithms;
sliding window and reliable/ordered services, queuing disciplines
including FQ and WFQ. Introduces flow control schemes such as window
flow control and leaky bucket rate control schemes; and discusses
briefly congestion control and fairness.
CS G151 Principles of Internetworking
Prereq: CS G150 or permission of instructor MS: Netwk
Ph.D.: Netwk
Studies the fundamental concepts of internetworking, such as design
issues and protocol functionality. Internet protocols, such
as TCP and UDP, IP, ICMP, ARP, RIP, OSPF, BGP, CIDR, DNS and others
are used as examples to demonstrate how internetworking is realized.
TCP congestion and flow control will be discussed in depth. IP routing
and addressing will be also emphasized - including subnetting and
supernetting, fragmentation and routing algorithms. RIP and OSPF
will be discussed along with Dijkstra's and Bellman-Ford algorithm.
Analytical, numerical and simulation tools will be used to evaluate
performance. Application protocols such as SMTP, FTP, telnet, HTTP,
and Real time protocols such as RTP will be presented in order to
demonstrate the protocol design characteristics in accordance with
the application requirements. Topics also include: multicast,
mobility, auto-configuration, resource allocation and fairness policy,
naming, client-server model (e.g. sockets), quality-of-service requirements
and mechanisms, flow-specs and token bucket, network performance
bounds, models and approximations. Applications of multimedia
networking, www and others will be used and studied. Includes
programming assignments.
CS 152 Fundamentals of Networking and Internetworking
Prereq: undergraduate probability theory
MS: Netwk PhD: Netwk
Studies network protocols and architectures. Discusses issues
of performance evaluation of computer networks including performance
metrics, evaluation tools and methodology, simulation techniques
and limitations. Presents the abstract network design and
evaluation issues in the context of the Internet. Topics include:
performance analysis of medium access control protocol, error detection
techniques and automatic repeat request algorithms; sliding window
and reliable/ordered services, queuing disciplines including FQ
and WFQ, spanning tree and learning bridges, shortest path routing,
flow control schemes such as window flow control and leaky bucket
rate control schemes, congestion control, quality of service, and
fairness. Internet protocols, such as TCP, UDP and others
are used as examples to demonstrate how internetworking is realized.
Includes programming assignments.
CS G250 Wireless Networks
Prereq: CS G151 or permission of instructor MS:
Network
Covers both theoretical issues related to wireless networking and
practical systems for both wireless data networks and cellular wireless
telecommunication systems. Topics covered include fundamentals of
radio communications, channel multiple access schemes, wireless
local area networks, routing in multi-hop Ad-hoc wireless networks,
mobile IP, and TCP improvements for wireless links, cellular telecommunication
systems and quality of service in the context of wireless networks.
Requires a project that addresses some recent research issues in
wireless and mobile networking.
CS G252 Cryptography and Communication Security
Prereq: CS G113/CS G713 (or taken concurrently)
MS: Netwk, Theory, Info Sec
Studies the design and use of cryptographic systems for communications
and other applications such as e-commerce. Discusses the history
of cryptographic systems, the mathematical theory behind the design,
their vulnerability and the different cryptanalytic attacks.
Topics include: stream ciphers such as shift register sequences;
block ciphers such as DES and AES; public-key systems such as RSA,
Discrete Logarithms; signature schemes; hash functions such as MD5
and SHA1; protocol schemes such as Identification schemes, Zero-Knowledge
proofs, Authentication schemes and Secret Sharing schemes.
Key management problems including Needham-Schroeder protocols and
certificates will be discussed.
CS G254 Network Security
Prereq: CS G152 (CS G252 is strongly recommended) MS:
Network, Systems
Studies the theory and practice of computer security, focusing on
the security aspects of multi-user systems and the internet.
Introduces cryptographic tools such as encryption, key exchange,
hashing and digital signatures in terms of their applicability to
maintaining network security. Discusses security protocols
for mobile networks. Topics include: firewalls, viruses,
Trojan horses, password security, biometrics, VPNs, internet protocols
such as SSL, IPSec, PGP, SNMP and others.
CS G256 Privacy, Security and Usability
Prereq: CS G112 or CS G712 MS: Info
Sec
Usability and security are widely seen as two antagonistic design
goals for complex computer systems. This course challenges
convention wisdom and encourages students to discover ways that
security, privacy and usability can be made synergistic in system
design. Topics include computer forensics, network forensics,
user interface design, backups, logging, economic factors affecting
adoption of security technology, trust management and related public
policy. Case studies such as PGP, S/MIME, SSL will be used.
Basic cryptography and hash functions will be introduced as it is
needed. Coursework includes analysis of papers, problem sets,
and a substantial term project.
CS G359 Special Topics in Networks
Prereq: CS G151 or consent of instructor. MS: Netwk
Topics vary.
CS G750 Seminar in Computer Networks (2 s.h.)
Prereq: CS G151 or consent of instructor.
Students will read and present various survey and research papers
in Computer Networks. Faculty supervisor and topics will vary
from semester to semester. May be repeated for credit for
Ph.D. students.
CS G752 Seminar in Computer Security (2 s.h.)
Prereq: CS G252 or consent of instructor.
Students will read and present various survey and research papers
in cryptography and computer security. Faculty supervisor
and topics will vary from semester to semester. May be repeated
for credit for Ph.D. students.
Programming Languages
CS G260 Advanced Software Development
Prereq: CS G111/CS G711 MS: PL, SE Ph.D.:
PL, SE
Presents current ideas and techniques in software methodology and
provides a means for students to apply these techniques. Students
will be expected to design, implement, test, and document a software
project.
CS G262 Compilers
Prereq: CS G111/CS G711 MS: PL Ph.D.: PL
Each student will write a small compiler. Topics include parser
generation, abstract syntax trees, symbol tables, type checking,
generation of intermediate code, simple code improvement, register
allocation, run-time structures, and code generation.
CS G264 Semantics of Programming Languages
Prereq: CS G111/CS G711 and discrete mathematics MS:
PL Ph.D.: PL
Studies mathematical models for the behavior of programming languages.
Operational, denotational, and equational specifications.
Lambda-calculi and their properties. Applications of these
techniques, such as rapid prototyping and correctness of program
optimizations.
CS G369 Special Topics in Programming Languages
Prereq: CS G111/CS G711 or consent of instructor. MS: PL
Topics vary.
CS G760 Seminar in Programming Languages (2 s.h.)
Prereq: CS G111/CS G711 or consent of instructor.
Students will read and present various survey and research papers
in Programming Languages. Faculty supervisor and topics will
vary from semester to semester. May be repeated for credit
for Ph.D. students.
CS G762 Seminar in Software Development (2 s.h.)
Prereq: CS G110/CS G260 or consent of instructor.
Students will read and present various survey and research papers
in Software Development. Faculty supervisor and topics will
vary from semester to semester. May be repeated for credit
for Ph.D. students.
Software Engineering
CS G170 Computer/Human Interaction MS:
SE
Prereq: Knowledge of C/UNIX
This course covers the principles of human-computer interaction
and the design and evaluation of user interfaces. Topics include
an overview of human information processing sub-systems (perception,
memory, attention and problem-solving), how the properties of these
systems affect the design of user interfaces; the principles, guidelines,
and specification languages for designing good user interfaces,
with emphasis on toolkits and libraries of standard graphical-user-interface
objects; and a variety of interface evaluation methodologies that
can be used to measure the usability of software. Additional topics
may include: World Wide Web design principles and tools, computer-supported
cooperative-work, multi-modal and "next generation" interfaces,
speech and natural language interfaces, virtual reality interfaces.
Coursework includes both the creation and implementation of original
user interface designs, and the evaluation of user interfaces created
by others.
CS G270 Methods of Software Development
MS: SE
Studies concepts of object-oriented programming that forms the basis
for components (e.g., generic programming, programming by contracts,
programming with metaclasses), software architecture for supporting
components (e.g., implicit invocation, filters, reflection), and
the concrete realizations of components in some industrial standards
(e.g., JavaBeans, EJB, CORBA, COM/DCOM). Selected topics in component
research will also be covered. Students will do a project
where some creation, deployment, and evolution methods of software
components are applied.
CS G272 Analysis of Software Artifacts
Prereq: CS G110 MS: SE
Addresses all kinds of software artifacts - specifications, designs,
code, etc. - and will cover both traditional analyses, such as verification
and testing, and promising new approaches, such as model checking,
abstract execution and new type systems. The focus will be the analysis
of function (for finding errors in artifacts and to support maintenance
and reverse engineering), but the course will also address other
kinds of analysis (such as performance and security).
CS G274 Foundations of Formal Methods and
Software Analysis
Prereq: CS G110/CS G270 MS: SE
Covers necessary mathematical background such as first-order logic,
and some measure theory. Studies the formal methods in more
depth and breadth. Discusses the current state of the art
in verification and semantics of probabilistic, real-time, and hybrid
systems.
CS G260 Advanced Software Development [see programming languages]
CS G379 Special Topics in Software Engineering
Prereq: CS G110/CS G270 or consent of instructor.
MS: SE
Topics vary.
CS G770 Seminar in Software Engineering (2 s.h.)
Prereq: CS G110/CS G270 or consent of instructor.
Students will read and present various survey and research papers
in Software Engineering. Faculty supervisor and topics will
vary from semester to semester. May be repeated for credit
for Ph.D. students.
Systems
CS G175 Web Development
MS: Systems
Discusses Web development for sites that are dynamic, data driven, and
interactive. Focuses on the software development issues of integrating
multiple languages, assorted data technologies, and Web interaction.
Considers ASP.NET, C#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX,
RSS/Atom, SQL, and Web services. Each student must deploy individually
designed Web experiments that illustrate the Web technologies and at least
one major integrative Web site project. Students may work in teams with the
permission of the instructor. Each student or team must also create extensive
documentation of their goals, plans, design decisions, accomplishments,
and user guidelines. All source files must be open and be automatically
served by a sources server.
CS G180 Computer Architecture
Prereq: CS G112/CS G712 or consent of instructor.
MS: Systems
Studies the design of digital computer system components, including
the CPU, the memory subsystem, and interconnection busses and networks.
Explores modern design techniques for increasing computer system
capacity. Emphasizes the growing gap between CPU and RAM speed,
and the parallel operation of the growing number of functional
units in a CPU. Topics include pipelining, cache, new CPU
architecture models, memory bandwidth and latency, multiprocessing
and parallel processing architectures, cache coherence, and memory
consistency.
CS G280 Parallel Computing
Prereq: CS G112/CS G712 and CS G113/CS G713 MS: Systems,
Theory
Studies the principles of parallel processing, a variety of parallel
computer architecture models, including SIMD, MIMD, dataflow, systolic
arrays, and network of workstations, and algorithms for parallel
computation on the various models. Topics include interconnection
network design, memory organization, cache and bus design, processor
technologies, algorithms for sorting, combinatorial, and numerical
problems, graph algorithms, matrix multiplication, and FFT, and
the mapping of these algorithms to different architectures.
CS G254 Network Security [see network]
CS G389 Special Topics in Computer Systems
Prereq: CS G112/CS G712 or consent of instructor. MS: Systems
Topics vary.
CS G780 Seminar in Computer Systems (2 s.h.)
Prereq: CS G112/CS G712 or consent of instructor.
Students will read and present various survey and research papers
in Computer Systems. Faculty supervisor and topics will vary
from semester to semester. May be repeated for credit for
Ph.D. students.
Theory
CS G290 Distributed Algorithms
Prereq: CS G113/CS G713 or permission of instructor. MS: Theory
Covers the design and analysis of algorithms and problems arising
in distributed systems, with emphasis on network algorithms. The
main concerns are efficiency of computation and communication, fault
tolerance, and asynchrony. Topics include leader election, graph
algorithms, datalink protocols, packet routing, logical synchronization
and clock synchronization, resource allocation, self-stabilization
of network protocols, graph partitions.
CS G714 Theory of Computation [see Ph.D. core]
CS G252 Cryptography and Computer Security [see network]
CS G280 Parallel Architecture and Algorithms [see systems]
CS G399 Special Topics in Theoretical Computer
Science
Prereq: CS G113/CS G713 or consent of instructor.
MS: Theory
Topics vary. Possible areas are advanced cryptography, approximation
algorithms, computational algebra, formal verification, network
algorithms, online computation, parallel computing, and randomness
and computation.
CS G790 Seminar in Theoretical Computer
Science
Prereq: CS G113/CS G713 or consent of instructor.
Students will read and present various survey and research papers
in Theoretical Computer Science. Faculty supervisor and topics
will vary from semester to semester. May be repeated for credit
for Ph.D. students.
Reading and project courses
CS G664 MS Readings and Research in
Computer Science
Prereq: core courses and permission of instructor.
Selected readings under the supervision of a faculty member
CS G674 Master's Project in Computer
Science
Prereq: core courses and agreement of a project supervisor.
CS G684 Master's Thesis in Computer
Science
Prereq: agreement of a thesis supervisor.
CS G685 Master's Thesis in
Computer Science II
Prereq: agreement of a thesis supervisor.
CS G699 Master's Thesis Continuation (0 s.h.)
Prereq: agreement of a thesis supervisor.
CS G864 Ph.D. Readings and Research in Computer
Science
Prereq: permission of instructor.
Selected readings under the supervision of a faculty member
CS G894 Ph.D. Thesis in Computer Science
Prereq: Ph.D. candidate
CS G899 Ph.D. Thesis Continuation
Prereq: at least 2 semesters of CS G894
COOP
COP G650 Co-op (no credit is given)
Students participating in the Cooperative Education Program must register for this course every semester while on Co-op.