Course Catalog
Course Catalog
Course Wizard
Course Search
College Wide
- Coll of Advancing&Prof Studies
- College of Education and Human Development
- College of Liberal Arts
- College of Management
- College of Nursing and Health Sciences
- College of Public & Community Service
- College of Science and Mathematics
- McCormack Graduate School of Policy and Global Studies
- School of Global Incl&Soc Dev
GRAD > CS
Computer Science
CS 612 Algorithms in Bioinformatics
Description:
The course will introduce students to bioinformatics - the area concerning the development and application of computational methods to address key problems in biology. It will introduce the students to a variety of methods and skills required to conduct research in this popular field. The emphasis of the course is algorithmic methods in structural bioinformatics with a focus on various computational methods to simulate, analyze, and model protein structure, dynamic, and fuction. More Info
Offered in:- TBA
CS 615 User Interface Design
Description:
An introduction to user interface design, which encompasses design of the user interface and the functional design of the whole system. Students read and critique papers and articles, evaluate and critique existing user interfaces, and design interfaces of their own. Working in small groups, students use either interface prototyping tools or conventional rapid prototyping systems to construct an experimental interface. More Info
Offered in:CS 620 Theory of Computation
Description:
Functions computable by programs. Recursive functions and Turing machines; simulation and diagonalization. Universality and unsolvable problems. Kleene's hierarchy and the recursion theorem. Gregorczyk's hierarchy and Ackermann's function. Abstract complexity. Formal languages and classes of automata. Inherently difficult combinatorial problems. More Info
Offered in:CS 622 Theory of Formal Languages
Description:
This course treats languages from an abstract point of view as defined by formal grammars and by families of abstract machines. The Chomsky hierarchy and associated automata are covered. Emphasis is placed on context-free languages. Careful mathematical definition and proof are stressed throughout. This course does not involve programming. This course is of special interest to students interested in linguistics and in the theory of programming language compilers. More Info
Offered in:- TBA
CS 624 Analysis of Algorithms
Description:
Basic techniques for designing algorithms: divide and conquer, the greedy method, dynamic programming, etc. Applications to searching and sorting algorithms. Complexity of parsing. The fast Fourier transform and its applications (evaluation of polynomials and arithmetical problems). Lower bound theory. NP-hard and NP-complete problems. Probabilistic estimates of algorithms. More Info
Offered in:CS 630 Database Management Systems
Description:
Databases and database management systems. The entity/relationship model. The relational model. Relational algebra. The query language SQL. The object-relational model and SQL3. Embedded SQL in programs and dynamic SQL. Database administration: creating views and integrity constraints, handling data security. Functional dependencies. Normalization. More Info
Offered in:CS 634 Architecture of Database Systems
Description:
Indexing and query optimization in database systems. Writing programs to update a database. ACID properties. Concurrency theory: serializability, 2-phase locking, deadlock detection. Transactional Recovery: REDO and UNDO logging, different checkpoint approaches, media recovery. Examples of recovery utility use in INGRES, ORACLE and DB2. Transactional performance: the TPC-A benchmark, analysis of bottlenecks, and cost-performance considerations. Distributed database systems. Two-phase commit. Database parallelism. More Info
Offered in:CS 636 Database Application Development
Description:
A study of database applications, that is, software systems that solve a particular real-world problem and hold their data in a relational database. The systems under study also have a realistic user interface. Students work in small groups on a real-world project specified and implemented during the term. Topics include system specification from user needs, analysis of data flow and work flow, object design, database design, client-server techniques, and rapid prototyping systems. More Info
Offered in:CS 637 Database-Backed Websites
Description:
The design and implementation of database-backed websites. Static sites, dynamic sites, and sites that act as interfaces to relational database systems, providing for web-based collaboration through scalable online communities. Students install and maintain their own web servers, extend existing tool sets, and build their own sites from scratch in a series of intensive programming projects. More Info
Offered in:CS 639 XML and Semi-Structured Data on the Web
Description:
The eXtensible Markup Language (XML) smooths Web programming by providing a clear separation of presentation from structure in documents. This course surveys XML and semi-structure data technologies with the goal of understanding the problems and solutions arising from combining data from multiple sites and on-line databases. Students will learn the fundamentals of XML, the stylesheet and transformating language XSLT, the schema definition language X-Schema, tools that support Java-based XML programming, and some specialized applications such as Wireless Application Protocol. Focus is on manipulation of XML for data exchange, resource discovery, and the building of interactive web applications. More Info
Offered in:CS 641 Computer Architecture
Description:
An examination of the designs for hierarchical memory systems including caches and virtual memory systems, pipeline design techniques, characteristics of RISC/CISC machines, multi-computer systems including multiprocessors and loosely-coupled computer systems, the micro engine and micro programmed machines, vector and array processors, and the cost/performance trade-offs in all of the above designs. Prerequisites: CS310 or permission of the instructor. More Info
Offered in:- TBA
CS 644 Operating Systems
Description:
Structure and dynamics of operating system software. Operating systems as event driven software: interrupt processing and asynchronous operation. Memory management, scheduling, concurrency, consideration, device drivers. UNIX as a major example. More Info
Offered in:- TBA
CS 646 Computer Communications Networks
CS 647 Multimedia Networking
Description:
Network service requirements for streaming media and interactive media applications are analyzed. Audio and video coding and compression algorithms are surveyed. Challenges and solutions for delivering continuous media over today's best-effort Internet are investigated. Protocols for establishing and controlling multimedia sessions, for transporting continuous media end-to-end, and for wide-area dissemination of multimedia data are also investigated. Evolving Internet services models for establishing and maintaining levels of quality-of-service are evaluated. Students are expected to form groups to complete a significant semester project involving an investigation and the development of a prototype. Prerequisites: CS446 or CS646 More Info
Offered in:CS 648 Wireless Networks and Mobile Computing
Description:
Wireless communications, wireless networking, mobility management technologies, and protocols for wireless LANs and WANs are surveyed. Selected mobile computing models and mobile applications development environments are evaluated. A wireless networks laboratory provides a realistic mobile/wireless computing environment. Students are expected to form groups to complete a semester project involving an investigation and the development of a prototype. More Info
Offered in:- TBA
CS 649 Concurrent and Distributed Systems
Description:
This course covers a series of design principles and implementation techniques for concurrent and distributed systems. Topics range from basic object-oriented techniques in thread programming and TCP/UDP socket programming to advanced design strategies for I/O, caching, transactional messaging, remoting middleware and embedded networking. Students will design and implement several representative concurrent and distributed systems such as web browsers, web servers, instant messaging systems, peer-to-peer overlay systems, distributed event notification systems and sensor networking systems. They will implement these systems with several programming languages including general purpose languages such as Java to concurrency-oriented languages such as Erlang. More Info
Offered in:- TBA
CS 651 Compiler
Description:
Compiler organization and construction. Programming projects involve scanning input, analyzing program structure, error checking, code translation and interpreting, code generation and optimization. These projects result in a compiler for a reasonably large subset of ALGOL, Pascal, or similar procedural language. More Info
Offered in:CS 670 Artificial Intelligence
Description:
A broad technical introduction to the techniques that enable computers to behave intelligently: problem solving and game playing, knowledge representation and reasoning, planning and decision making, learning, perception and interpretation. The application of these techniques to real-world systems, with some programming in LISP. More Info
Offered in:CS 671 Machine Learning
Description:
Machine Learning is a foundational discipline for data mining and artificial intelligence which explores the limits and capacities of automated learning of abstract concepts. The course will focus on the probably approximately correct (PAC) learning model and will cover topics like the Vapnik-Chervonenkis dimension, the weak and strong learning paradigms, inherent unpredictability, reducibility in PAC learning, and learning finite automata. More Info
Offered in:CS 672 Neural Networks
Description:
An introduction to artificial neural networks. Topics include a survey of natural neural network models, perceptrons and their limitations, multi-layer networks and back propagation, Hebbian learning, unsupervised competitive learning, relations to automata and computability theory, adaptive resonance theory, applications of connectionist models of computing to various domains, including pattern recognition and databases. More Info
Offered in:- TBA
CS 674 Natural Language Processing
Description:
The course provides the basic principles and theoretical issues underlying Natural Language Processing (NLP.) It provides information on techniques and tools used to develop practical, robust systems that can communicate with users in multiple languages. The course provides insights into many open research problems in natural language such as information extraction, statistical corpus analysis, machine translation, speech processing, and text summarization. Prerequisites: CS420 or Permission of the Instructor. More Info
Offered in:- TBA
CS 675 Computer Vision
Description:
This course provides both theoretical knowledge and practical experience with fundamental and advanced Computer Vision algorithms. Topics range from basic image processing techniques such as image convolution and region and edge detection to more complex vision algorithms for contour detection, depth perception, dynamic vision, and object recognition. Students will implement vision algorithms in the JAVA programming language. The performance of these programs is evaluated, and the advantages and disadvantages of individual approaches are discussed. The final project is the development by students of their own computer vision program solving a given problem. More Info
Offered in:CS 680 Object-Oriented Design and Programming
CS 681 Object-Oriented Software Development
Description:
This course, CS 682, and CS 683 form an integrated one-year sequence. In these courses students work in small teams, each team taking the full year to create a useful, complete, medium-sized software system for real customers. There is a strong emphasis on process: each project makes systematic use of an object-oriented development methodology based on UML models and incremental development. This course is offered every spring semester. More Info
Offered in:CS 682 Software Development Laboratory I
CS 683 Software Development Laboratory II
Description:
A continuation of CS 682. This course is offered every spring semester and must be taken during the semester following CS 681 and CS 682. More Info
Offered in:CS 696 Independent Study
Description:
A student must find a faculty sponsor for his or her independent study and arrange study under that person, normally about a computer science topic not covered by the department's courses. More Info
Offered in:CS 697 Special Topics
Description:
Topics of current interest in the field, according to student and faculty areas of specialization. Course content varies according to the topic and will be announced prior to registration. More Info
Offered in:CS 698 Practicum in CS
Description:
This course is intended to enhance student industrial work by combining it with closely related academic studies of the domain of application of computer skills and of related computer concepts, skills and methodologies. It will enhance academic studies by providing a focus and a context for learning of new concepts and skills. It will help to prepare the student for the transition from an academic program to eventual employment in the computer industry. This course is not open to graduate students in the Ph.D track. More Info
Offered in:CS 699 Research for MS Thesis
Description:
A one-semester supervised practicum course to help students complete the required thesis, which must be a substantial piece of research on some aspect of computer science. The master's thesis may take the form of a theoretical paper or a report on a piece of software. More Info
Offered in:CS 720 Logical Foundations of Computer Science
Description:
The course treats the logical foundations of computer science in a mathematically rigorous way but with emphasis on the applications of logic in computer science. Topics include the syntax and semantics of predicate logic, formal systems for predicate logic, many-sorted logic, and logic programming. Additional topics may include equational logic, algebraic specification, term rewriting, program verification, nonstandard logic, and databases. Students are expected to demonstrate an understanding of theoretical material and the ability to apply it. More Info
Offered in:- TBA
CS 724 Topics in Algorithm Theory and Design
Description:
An examination of current topics in algorithm analysis and design: complexity classes, abstract complexity theory, generating functions. Topics may include genetic algorithms, string matching algorithms, and circuit complexity. More Info
Offered in:- TBA
CS 734 Database System Internals
Description:
This is a course in database internals design and programming. Students are expected to have already mastered a basic DBA-level understanding of database systems. The course is intended for students who want to program at the system level at a database vendor or go for a PhD in database systems with a practical orientation. Topics include implementation techniques for disk buffering, indexing, and transactional concurrency. More Info
Offered in:- TBA
CS 738 Data Mining
Description:
Data mining is the process of secondary analysis to search for unsuspected relationships that are of interest or value for decision making. It aims at discovering association rules, episode rules, sequential rules, and other knowledge embedded in data and is concerned with efficient data structures and algorithms that have good scaling properties. The course presents essential aspects of data mining as a part of our current offering in databases; it includes a data mining project and prepares students to program applications that use data mining techniques. More Info
Offered in:- TBA
CS 739 Spatial Data Mining
Description:
This course treats a specific advanced topic of current research interest in the area of handling spatial, temporal, and spatio-temporal data. Major topics include data mining and machine learning techniques on clustering, association analysis, and classification. In addition, students will learn how to use popular data mining tools and how to implement applications in geosciences. The class will expose students to interdisciplinary research on spatial data mining and current industrial practices in handling spatio-temporal data. More Info
Offered in:- TBA
CS 899 PhD Dissertation Research
Description:
Research, conducted under faculty supervision, which leads to the presentation of a doctoral dissertation. This course carries variable credit and can be taken more than once. More Info
Offered in: