Course Descriptions

CS 502. Operating Systems

The design and theory of multiprogrammed operating systems, concurrent processes, process communication, input/output supervisors, memory management, resource allocation and scheduling are studied. (Prerequisites: knowledge of computer organization and elementary data structures, and a strong programming background.)

CS 503. Foundations of Computer Science

This is the study of mathematical foundations of computing. Topics include finite automata and regular languages, pushdown automata and context-free languages, Turing machines and decidability, and an introduction to computational complexity. Prerequisites: Knowledge of discrete mathematics and algorithms at the undergraduate level, and some facility with reading and writing mathematical proofs.

CS 504. Analysis of Computations and Systems

The following tools for the analysis of computer programs and systems are studied: probability, combinatorics, the solution of recurrence relations and the establishment of asymptotic bounds. A number of algorithms and advanced data structures are discussed, as well as paradigms for algorithm design. (Prerequisites: CS 524 or equivalent)

CS 505. Social Implications of Computing

This course is concerned with the effects of computer technology on society. It will explore a wide range of topics including privacy, liability, proprietary protection, the effects of artificial intelligence on humanity’s view of itself and globalization. It will also consider the issues of professional ethics and professional responsibility, as well as discrimination in the workplace, in education and in user interfaces. Papers, presentations, discussions, extensive readings and a course project are possible components of this course. (Prerequisites: a college degree and either two computer science classes or a year’s experience in the computer industry including sales and management.)

CS 509. Design of Software Systems

This course focuses on the high-level design aspects of software engineering. Included are architectural and interface design. Within architectural design, the topics covered are Yourdon structured design, Jackson structured design and object-oriented design. When possible, real-time extensions are discussed. Sufficient coverage of the areas of requirements specification and testing is given to support the above topics. (Prerequisites: knowledge of a recursive high-level language and data structures. An undergraduate course in software engineering is desirable.)

CS 513/ECE 506. Introduction to Local and Wide Area Networks

This course provides an introduction to the theory and practice of the design of computer and communications networks, including the ISO seven-layer reference model. Analysis of network topologies and protocols, including performance analysis, is treated. Current network types including local area and wide area networks are introduced, as are evolving network technologies. The theory, design and performance of local area networks are emphasized. The course includes an introduction to queueing analysis and network programming. (Prerequisites: knowledge of the C programming language is assumed. CS 504 or ECE 502 or equivalent background in CS 524.)

CS 514/ECE 572. Advanced Systems Architecture

See ECE 572 course description.

CS 521. Logic in Computer Science

This course is an introduction to mathematical logic from a computer science perspective. Topics covered include the exploration of model theory, proof theory, and decidability for propositional and first-order classical logics, as well as various non-classical logics that provide iseful tools for computer science (such as temporal and intuitionalistic logics). The course stresses the application of logic to various areas of computer science such as computability, theorem proving, programming languages, specification, and verification. The specific applications included will vary by instructor. (Prerequisites: CS 503, or equivalent background in basic models of computation.)

CS 524. Algorithms: Design and Analysis

This course covers the design, analysis and proofs of correctness of algorithms. Examples are drawn from algorithms for advanced data structures, set manipulation and searching, graphs and geometric problems. Analysis techniques include asymptotic worst case and average case, as well as amortized analysis. Average case analysis includes the development of a probability model. Techniques for proving lower bounds on complexity are discussed, along with NP-completeness.
Prerequisites: an undergraduate knowledge of data structures, discrete structures and algorithms. Note: students with a strong CS background in design and analysis of computer systems (at the level equal to a solid BS in computer science) should not take CS 524 and should consider taking CS 504.

CS 525. Topics in Computer Science

A topic of current interest is covered in detail. Please consult the department for a current listing of selected topics in this area. (Prerequisites: vary with topic.) See the supplement section of the on-line catalog for descriptions of courses to be offered in this academic year.

CS 529. Multimedia Networking

This course covers basic and advanced topics related to using computers to support audio and video over a network. Topics related to mulimedia will be selected from areas such as compression, network protocols, routing, operating systems and human computer interaction. Students will be expected to read assigned research papers and complete several programmming intensive projects that illustrate different aspects of multimedia computing. (Prerequisites: CS 502 and CS 513 or the equivalent and strong programming skills.

CS 530/ECE 530. High-Performance Networks

This course is an in-depth study of the theory, design and performance of high-speed networks. Topics include specific high-performance network implementations and emerging technologies, including multimedia networks and quality of service issues. Topics associated with interconnecting networks such as bridges and routers will also be discussed. Performance analysis of networks will include basic queueing models. (Prerequisite: CS 513/ECE 506.)

CS 531. System Simulation

The theory and design of discrete simulations are discussed. Other topics are random number generations, analysis of output and optimization. (Prerequisites: CS 504 or equivalent background in probability and some background in statistics.)

CS 533/ECE 581. Modeling and Performance Evaluation of Network and Computer Systems

Methods and concepts of computer and communication network modeling and system performance – evaluation. Stochastic processes; measurement techniques; monitor tools; statistical analysis of performance experiments; simulation models; analytic modeling and queueing theory; M/M, Erlang, G/M, M/G, batch arrival, bulk service and priority systems; work load characterization; performance evaluation problems. (Prerequisites: CS 504 or ECE 502 or equivalent background in CS 524.)

CS 534. Artificial Intelligence

This course gives a broad survey of artificial intelligence. Several basic techniques such as search methods, formal proofs and knowledge representation are covered. Selected topics involving the applications of these tools are investigated. Such topics might include natural language understanding, scene understanding, game playing, learning and planning. (Prerequisites: familiarity with data structures and a recursive high-level language. Knowledge of LISP is an advantage.)

CS 535. Advanced Topics in Operating Systems

This course discusses advanced topics in the theory, design and implementation of operating systems. Topics will be selected from such areas as performance of operating systems, distributed operating systems, operating systems for multiprocessor systems and operating systems research. (Prerequisites: CS 502 and either CS 504, CS 524, or equivalent background in probability.) See the supplement section of the on-line catalog for descriptions of courses to be offered in this academic year.

CS 536. Programming Language Design

This course discusses the fundamental concepts and general principles underlying current programming languages and models. Topics include control and data abstractions, language processing and binding, indeterminacy and delayed evaluation, and languages and models for parallel and distributed processing. A variety of computational paradigms are discussed: functional programming, logic programming, object-oriented programming and data flow programming. (Prerequisites: student is expected to know a recursive programming language and to have an undergraduate course in data structures.)

CS 538. Expert Systems

The course will review expert knowledge-based problem-solving systems. It will concentrate on an analysis of the architecture, knowledge and problem- solving style of each system in order to classify and compare them. For each system, an attempt will be made to evaluate its contribution to our understanding of problems that expert systems can tackle. (Prerequisite: CS 534 or equivalent or permission of the instructor.)

CS 539. Machine Learning

The focus of this course is machine learning for knowledge-based systems. It will include reviews of work on similarity-based learning (induction), explanation-based learning, analogical and case-based reasoning and learning, and knowledge compilation. It will also consider other approaches to automated knowledge acquisition as well as connectionist learning. (Prerequisite: CS 534 or equivalent, or permission of the instructor.)

CS 540. Artificial Intelligence in Design

The main goal of this course is to obtain a deeper understanding of what “design” is, and how AI might be used to support and study it. Students will examine some of the recent AI-based work on design problem-solving. The course will be run in seminar style, with readings from the current literature and with student presentations. The domains will include electrical engineering design, mechanical engineering design, civil engineering design and software design (i.e., automatic programming). This course will be of interest to those wanting to prepare for research in design, or those wishing to increase their understanding of expert systems. Graduate students from departments other than computer science are welcome. (Prerequisite: knowledge of artificial intelligence is required. This can only be waived with permission of the instructor).

CS 542. Database Management Systems

An introduction to the theory and design of database management systems. Topics covered include internals of database management systems, fundamental concepts in database theory, and database application design and development. In particular, logical design and conceptual modeling, physical database design strategies, relational data model and query languages, query optimization, transaction management and distributed databases. Typically there are hands-on assignments and/or a course project. Selected topics from the current database research literature may be touched upon as well. (Prerequisite: CS 504 or CS 524 or permission of the instructor.)

CS 543. Computer Graphics

This course examines typical graphics systems, both hardware and software; design of low-level software support for raster displays; 3-D surface and solids modeling; hidden line and hidden surface algorithms; and realistic image rendering including shading, shadowing, reflection, refraction and surface texturing. (Prerequisites: familiarity with data structures, a recursive high-level language and linear algebra. CS 509 would be helpful.)

CS 544. Compiler Construction

A general approach to the design of language processors is presented without regard for either the source language or target machine. All phases of compilation and interpretation are investigated in order to give the student an appreciation for the overall construction of a compiler. Typical projects may include implementation of a small compiler for a recursive or special-purpose language. (Prerequisites: knowledge of several higher-level languages and at least one assembly language. The material in CS 503 is helpful.)

CS 545/ECE 545. Digital Image Processing

This course presents fundamental concepts of digital image processing and an introduction to machine vision. Image processing topics will include visual perception, image formation, imaging geometries, image transform theory and applications, enhancement, restoration, encoding and compression. Machine vision topics will include feature extraction and representation, stereo vision, model-based recognition, motion and image flow, and pattern recognition. Students will be required to complete programming assignments in a high-level language. (Prerequisites: working knowledge of undergraduate level signal analysis and linear algebra; familiarity with probability theory is helpful but not necessary.)

CS 546. Human-Computer Interaction

This course prepares graduate students for research in human-computer interaction. Topics include the design and evaluation of interactive computer systems, basic psychological considerations of interaction, interactive language design, interactive hardware design and special input/output techniques. Students are expected to present and review recent research results from the literature, and to complete several projects. (Prerequisites: students are expected to have mature programming skills. Knowledge of software engineering would be an advantage.)

CS 549. Computer Vision

This course examines current issues in the computer implementation of visual perception. Topics include image formation, edge detection, segmentation, shape-from-shading, motion, stereo, texture analysis, pattern classification and object recognition. We will discuss various representations for visual information, including sketches and intrinsic images. (Prerequisites: CS 534, CS 543, CS 545, or the equivalent of one of these courses.)

CS 552/MA 510. Numerical Methods
See MA 510 course description.

CS 559. Advanced Topics in Theoretical Computer Science

This course has an instructor-dependent syllabus. See the supplement section of the on-line catalog for descriptions of courses to be offered in this academic year.

CS 561. Advanced Topics in Database Systems

This course covers modern database and information systems as well as research issues in the field. Topics and systems covered may include object-oriented, workflow, active, deductive, spatial, temporal and multimedia databases. Also discussed will be recent advances in database systems such as data mining, on-line analytical processing, data warehousing, declarative and visual query languages, multimedia database tools, web and unstructured data sources, and client-server and heterogeneous systems. The specific subset of topics for a given course offering is selected by the instructor. Research papers from recent journals and conferences are used. Group project required. (Prerequisites: CS 542 or equivalent. Expected background includes a knowledge of relational database systems.) See the supplement section of the on-line catalog for descriptions of courses to be offered in this academic year.

CS 562. Advanced Topics in Software Engineering

This course focuses on the nondesign aspects of software engineering. Topics may include requirements specification, software quality assurance, software project management and software maintenance. (Prerequisite: CS 509.) See the supplement section of the on-line catalog for descriptions of courses to be offered in this academic year.

CS 563. Advanced Topics in Computer Graphics

This course examines one or more selected current issues in the area of image synthesis. Specific topics covered are dependent on the instructor. Potential topics include: scientific visualization, computational geometry, photo-realistic image rendering and computer animation. (Prerequisite: CS 543 or equivalent.) See the supplement section of the on-line catalog for descriptions of courses to be offered in this academic year.

CS 577/ECE 537. Advanced Computer and Communications Networks

This course covers advanced topics in the theory, design and performance of computer and communications networks. Topics will be selected from such areas as local area networks, metropolitan area networks, wide area networks, queueing models of networks, routing, flow control, new technologies and protocol standards. The current literature will be used to study new networks concepts and emerging technologies. (Prerequisite: CS 513/ ECE 506 and CS 533/ECE 581.)

CS 578/ECE 578. Cryptography and Data Security
See ECE 578 course description.

CS 595/ECE 595. Computer and Communications Networks Internship

6 credits
This project will provide an opportunity to put into practice the principles which have been studied in previous courses. It will generally be conducted off campus and will involve a real-world networking situation. Overall conduct of the internship will be supervised by a WPI faculty member and an on-site liaison will direct day-to-day activity. The project must include substantial analysis and/or design related to computer or communications networking and will conclude with a substantial written report. A public oral presentation must also be made, to both the host organization and a committee consisting of the supervising faculty member, the on-site liaison and one additional WPI faculty member. Successful completion of the internship will be verified by this committee. For a student from industry, an internship may be sponsored by his or her employer. (Prerequisite: completion of 12 credits of the CCN program; CS 598 Directed Research, CS 599 Master’s Thesis, or CS 699 Ph.D. Dissertation.)

CS 598 Directed Research

CS 599 Master's Thesis

CS 699 Ph.D. Dissertation

Maintained by webmaster@cs.wpi.edu