Courses
Computer and Information Sciences
0510. Automata and Formal
Languages (573) (3 s.h.)
Prerequisite: CIS 166 and CIS 242.
Types of grammars. Finite automata and regular languages. Kleene's
Theorem. Closure properties and decidable problems of regular
languages. Derivation trees. Normal forms of context-free grammar.
The self-embedding properties, closure properties and decidable
problems of context-free languages. Methods of syntax analysis
for context-free languages. Context-sensitive languages and
linear bounded automata. Turing machines.
0511. Programming Techniques
(0551) (3 s.h.)
Prerequisite: CIS 68 and CIS 223.
A more formalized view of data structures. Stacks, trees, tables,
lists, multilinked structures, strings and files are considered.
These are viewed in terms of their general usefulness in the
construction of algorithms and in their efficient implementation.
Both theoretical results and programming techniques will be
stressed.
0512. Operating Systems
(561) (3 s.h.)
Prerequisite: CIS 72 and CIS 207.
Basic principles of operating systems; multi-tasking systems;
control and coordination of tasks; deadlocks; synchronization,
mutual exclusion, sharing; memory management, virtual memories,
segmentation, paging; protection; file systems; resource management;
evaluation and prediction of performance; design and implementation
of operating systems in high-level languages.
0525. Neural Computation (3
s.h.)
Prerequisite: Stat 503 or (511 and undergraduate-level understanding of probability, statistics, and linear
algebra).
Neural networks provide powerful techniques to model and control
nonlinear and complex systems. The course is designed to provide
an introduction to this interdisciplinary topic. The course
is structured such that students from computer science, engineering,
physics, mathematics, statistics, cognitive sciences, and other disciplines
learn the main principles of this area as well as have an
opportunity to explore promising research topics through hands-on
experience with neural network simulators applied to classification
and prediction problems ranging from biomedical sciences to
finance and business.
0526. Machine Learning (3
s.h.)
Prerequisite: Stat 503 or (511 and undergraduate-level understanding of probability, statistics, and linear
algebra).
The goal of the field of machine learning is to build computer
systems that learn from experience and are able to
adapt to their environments. This introductory machine learning
course will give an overview of many techniques and algorithms
in machine learning, beginning with topics such as simple concept
learning and ending up with more recent topics such as boosting,
support vector machines, and reinforcement learning. The objective
of the course is not only to present the modern machine learning
methods but also to give the basic intuitions behind the methods
as well as a more formal understanding of how and why they
work.
0527. Data Warehousing,
Filtering and Mining (3 s.h.)
Prerequisite: CIS 511 and an undergraduate course in
databases.
The course is devoted to information system environments enabling
efficient indexing and advanced analyses of current and historical
data for strategic use in decision making. Data management
will be discussed in the content of data warehouses/data marts;
Internet databases; Geographic Information Systems, mobile
databases, temporal and sequence databases. Constructs aimed
at an efficient online analytic processing (OLAP) and those
developed for nontrivial exploratory analysis of current and
historical data will be discussed in detail.
The theory will be complemented by hands-on applied studies
of problems in such fields as financial engineering, e-commerce, geosciences,
and bioinformatics.
0595. Topics in Computer
Science (3 s.h.)
Prerequisite: Special authorization required.
Current topics and issues in Computer Sciences.
0598. Independent Study (1-6
s.h.)
Prerequisite: Permission of instructor.
Independent research supervised by a Computer and Information
Sciences faculty member.
0600. User Interface
Design and Systems Integration (578) (3
s.h.)
Prerequisite: CIS 511.
This course focuses on the principles of usability engineering
to design effective interfaces and as the basis for integrating
existing systems to form new systems. The course builds on
knowledge of networking, databases, and programming. The course
outline is partly based on the recommendations of the ACM Special
Interest Group on Computer-Human Interaction for an introductory
graduate course on user interface design.
0601. Computer Graphics
and Image Processing (581) (3 s.h.)
Prerequisite: CIS 511.
An analysis of techniques used in computer manipulation of
two- and three-dimensional images. Although elements of computer
graphics are covered (e.g., two- and three-dimensional transforms),
the main focus is on image processing techniques. We will also
gain insight into basic techniques in computer vision. Topics
covered include image filters, image segmentation, similarity
of images, object detection, object recognition, and shape
representation and similarity. Nowadays it is an easy task
to transfer visual input of a camera to a computer's memory.
However, image and video understanding belong still to unsolved
problems of computer science. The main objective of the course
is to convey basic intuitions behind the unsolved and solved
problems and to introduce some of the techniques that provided
solutions to some of the problems.
0602. Human Factors and
Engineering Systems (642) (3 s.h.)
Prerequisite: CIS 511.
This course studies the human factor within information systems
development. Sample topics include design of empirical studies,
cognitive task analysis, user interface design, and usability evaluations.
0603. Artificial Intelligence
(587) (3 s.h.)
Prerequisite: CIS 511 or equivalent.
This course covers fundamental and advanced topics in Artificial
Intelligence, including Search: uninformed search, heuristic
search, game search; Planning: deterministic planning, STRIPS
planning, nonlinear planning; Theorem Proving: propositional
calculus, first order logic, inference with clauses, resolution;
Heuristics for NP Hard Problems: optimizations, simulated annealing,
genetic algorithms; Knowledge Representation: inference rules,
semantics, semantic nets, frame-based; Probabilistic Inference:
uncertainty, Bayesian inference, Bayesian networks, HMMs, planning
in stochastic domains; Learning: concept learning, PAC learning,
inductive learning, decision trees, neural networks; Programming
languages for AI; and other topics such as robotics, computer
vision, and data mining.
0615. Design and Analysis
of Algorithms (673) (3 s.h.)
Prerequisite: CIS 510 and CIS 511.
General techniques for developing algorithms. Divide and conquer
Greedy dynamic programming. Search and traverse. Backtracking.
Branch and Bound. Some theoretical results will be discussed,
for example, those relating to NP - completeness.
0616. Principles of Data
Management (661) (3 s.h.)
Prerequisite: CIS 511 and CIS 512.
This course covers fundamental and advanced topics in Database
Management Systems, including: Database System Architecture: ANSI/SPARC
architecture; data abstraction; external, conceptual, and internal
schemata; data independence; data definition and data manipulation
languages. Data Models: Entity-relationship and relational
data models; data structures, integrity constraints, and operations
for each data model. Relational Query Languages: SQL, algebra,
calculus. Theory of Database Design: Functional dependencies,
normal forms, dependency preservation, information loss. Query
Optimization: Equivalence of expressions, algebraic manipulation,
optimization of selections and joins. Storage Strategies: Indices,
B-trees, hashing. Transaction Processing: Recovery and concurrency
control. Object-oriented and object-relational Data Model.
Parallel and Distributed Databases. Multimedia databases and
queries by content. Data mining, data warehousing, mobile databases,
Web databases.
0617. Computer Networking
and Communication (662) (3 s.h.)
Prerequisite: CIS 511 and CIS 512.
Introduction to the design and analysis of computer networks
and communications systems, including the Physical, Data Link,
Network, Transport and Application layers. The Internet (TCP/IP)
model will be emphasized and compared and contrasted with other
current technologies. Major themes include the distinction
between service and protocol, performance metrics, analysis
techniques, and fundamental performance tradeoffs.
0618. Principles of Software
Engineering (580) (3 s.h.)
Prerequisite: CIS 511 and CIS 512.
This course takes a technology-based approach to the software
engineering of networked application systems design and programming.
Normally a course does not predicate itself upon a particular
proprietary system, but the new Microsoft .NET technology inherently
contains so many implications for new software engineering
paradigms that it cannot be ignored. The course, therefore,
draws on this new technology, together with former ones in
object-oriented design and programming, for its theoretical,
architectural, and system design foundations. Principal objectives
of software engineering today are: (1) improvement of product
quality and reliability and of developer productivity through
coding aids and automation; (2) response to both the open
technologies of Unix and Java and the more widely used systems
of Microsoft; and (3) response to the ubiquitous use of the
internet. The course bridges software engineering principles
at one end, in their most abstract and conceptual sense, with
programming technique at the other end, in its most concrete
and pragmatic sense. It uses .NET as a model for the software
engineering of enterprise applications primarily intended for
networked and distributed deployment, but also takes its cue
from the three above-stated objectives: (1) how to optimize productivity
of the software engineer, (2) how to integrate the best that
open technologies have to offer, and (3) how to build large-scale systems that operate most efficiently on the internet.
The course is divided into three parts: First is the theory that
flows from .NET and object-oriented methodologies. This includes
Application System Architectures, Design Methodologies, Quality
Assurance, Scalability, and Security. Second is the development
of a working skill set in two .NET languages: ASP.NET and VB.NET
and its major development tool, VS.NET. Third is the design
and programming of a small but complete web-deployed application.
0650. Collaborative Systems
and Techniques (744) (3 s.h.)
Prerequisite: CIS 602.
This course focuses on the issues surrounding the use, design,
and adoption of technology to support collaborative work. The
course builds on knowledge of networking, databases, and
human factors. The material in this course falls under the
emerging discipline of computer-supported cooperative work
(CSCW).
0651. Artificial Intelligence,
Heuristic Models, and Education (593) (3
s.h.)
Prerequisite: CIS 603.
Introduction to how artificial intelligence and heuristic models
are used to build better computer-based educational systems.
Current as well as past models are explored (e.g. PROUST, GUIDON,
SOAR, etc.). Key issues to be examined include student models,
interfaces, pedagogical expertise, domain expertise, and collaborative
learning systems.
0652. Knowledge Based
Systems (682) (3 s.h.)
Prerequisite: CIS 603.
An investigation of how expert-level performance of computer
programs is achieved. Covers relevant theories of human problem
solving and models of knowledge. Special languages for knowledge
representation will be investigated.
0664. Knowledge Discovery
and Data Mining (671) (3 s.h.)
Prerequisite: Basic knowledge in Data Base Systems
(CIS 616); programming skills in C or C++; basic statistics,
graph theory, and linear algebra.
Basic concepts and techniques for the automated extraction
of interesting patterns in large databases. Topics covered
include: association-rule mining, sequence mining, web and
text mining, data warehousing, information filtering, classification
and clustering analysis, Bayesian and neural networks, classification
and regression trees, hypotheses evaluation, feature extraction,
dimensionality reduction, singular value decomposition, data
compression and reconstruction, visualization of large data
sets, fractals in databases, and indexing methods that support
efficient data mining and queries by content. Special emphasis
is given in multimedia, business, scientific, and medical databases.
0665. Advanced Topics
in Data Base Systems (670) (3 s.h.)
Prerequisite: CIS 616.
Survey of recent developments in database systems with an emphasis
on object-oriented databases (OODB's). Prototype and operational
OODB systems will be analyzed. Applications
of OODB's to computer-aided software engineering (CASE) evironments,
integrated application development environments, and geographical
information systems.
0666. Advanced Networks
and Client-Server Computing (625) (3
s.h.)
Prerequisite: CIS 617.
Computer networks, network technology, protocols, routing algorithms,
reliability and design issues. Data transmission and transmission
media, data communications fundamentals, transmission efficiency,
wide-area networks, local area networks, wireless networks,
TCP/IP and other protocol architectures, client/server computing,
network management, and network security.
0669. Distributed and
Parallel Computer Systems (669) (3
s.h.)
Prerequisite: CIS 617.
Intended for students interested in the advances of scalable
parallel computing systems. The main goal is to apply distributed
and parallel computing theories to practical scalable parallel
application development and new parallel programming tool construction.
0695. Software Specification
and Design (680) (3 s.h.)
Prerequisite: CIS 616 and CIS 618.
The two most prominent specification and design methods used
in industry are presented: dataflow oriented and object oriented.
The rationale and applicability of each is examined by an analysis
of two problems, representing broad application classes. One
is a transaction/database problem; the other, a real-time problem.
Within each of the methods are three modes of specification:
functional, behavioral, and performance. The student gains insight
into each of these modes via models constructed using a computer-aided software engineering (CASE) tool. In the second part
of the course, the student learns how to convert the specification
to a design and the concept of design tradeoffs. The four principal
design elements—architectural, database, procedural, and user
interface—are applied to the two problems.
0750. Seminar in Advanced
Topics in Computer Science (3 s.h.)
Prerequisite: Permission of the instructor.
Topics to be decided individually.
0751. Project in Computer
Science (3 s.h.)
Prerequisite: Any four graduate-level courses
and permission of the department.
Project to be carried out under the direction of a faculty
member.
0752. Thesis in Computer
Science (3-6 s.h.)
Prerequisite: Any four graduate-level courses
and permission of the department.
Thesis to be carried out under the direction of a Graduate
Faculty member.
Note: Total of 6 credits required
0799. Preliminary Exam
Prep (1-6 s.h.)
Prerequisite: Successful completion of the Qualifying
Examination and permission of the department.
0899. Pre-Dissertation
Research (1-6 s.h.)
Prerequisite: Successful completion of the
Preliminary I Examination and permission of the
department.
0999. Dissertation Research (1-6
s.h.)
Prerequisite: Successful completion of the Preliminary
II examination and permission of the department.
All Ph.D. candidates must enroll in this course for at least
one to three credit hours each semester until the successful
completion of the dissertation. May be repeated. Minimum
of 6 credits of CIS 999 are required.