10: School of Engineering and Applied Science

General Information | Degree Programs | Curricula | Course Descriptions | Faculty

Aerospace Engineering | Applied Mathematics | Biomedical Engineering
Chemical Engineering | Chemistry | Civil Engineering | Computer Science
Electrical Engineering | Engineering (Interdepartmental) | Materials Science and Engineering
Mechanical Engineering | Nuclear Engineering | Physics | Systems Engineering
Technology, Culture, and Communication | Technology Management and Policy

Computer Science

CS 101 - (3) (S)
Introduction to Computer Science

Prerequisite: APMA 101 or equivalent, and ENGR 160 or CS 120 or equivalent
Introduction to the basic principles and concepts of object-oriented programming through a study of algorithms, data structures and software development methods. Both synthesis and analysis of computer programs are emphasized.

CS 110 - (3) (S)
Introduction to Information Technology

Provides exposure to a variety of issues in information technology such as computing ethics and copyright. Introduces and provides experience with various computer applications, including email, newsgroups, library search tools, wordprocessing, Internet search engines, and html for the nontechnically-focused student. Not intended for students expecting to do further work in CS. Cannot be taken for credit by students in SEAS or Commerce.

CS 120 - (3) (S)
Introduction to Business Computing

Introduction to digital computing and business applications of computers. Overview of modern computer systems. Introduction to programming in C++. Use of applications programs. Emphasis on development of programming skills for business applications. Intended primarily for pre-commerce students. Cannot be taken for credit by students in SEAS.

CS 182 - (3) (S)
Introduction to FORTRAN Programming

Corequisite: APMA 101 or equivalent
Introduction to FORTRAN programming including control structures, arrays, input/output statements and subprograms. Use of microcomputers. Emphasis on applications in engineering.

CS 186 - (3) (S)
Introduction to PASCAL Programming

Corequisite: APMA 101 or equivalent
Introduction to fundamental programming techniques. Use of microcomputers. Analysis of simple input and output, program control statements, array manipulation, data abstractions, applications in sorting, numerical methods and use of graphs.

CS 201 - (3) (S)
Software Development Methods

Prerequisite: CS 101
A continuation of CS 101 emphasizing modern software development methods. An introduction to the software development life cycle and processes. Topics include requirements analysis, specification, design, implementation, and verification. Emphasis is on the role of the individual programmer in large software development projects.

CS 202 - (3) (Y)
Discrete Mathematics I

Prerequisites: CS 101 and APMA 102, or equivalent with grades of C- or above
Introduction to discrete mathematics and proof techniques involving first order predicate logic and induction. Application areas include sets (finite and infinite, such as, sets of strings over a finite alphabet), elementary combinatorial problems, and finite state automata. Development of tools and mechanisms for reasoning about discrete problems. Cross-listed as APMA 202.

CS 216 - (3) (Y)
Program and Data Representation

Prerequisites: CS 201 and CS 202 with grades of C- or above
Introduction to programs and data representation at the machine level. Data structuring techniques and the representation of data structures during program execution. Operations and control structures and their representation during program execution. Representations of numbers, arithmetic operations, arrays, records, recursion, hashing, stacks, queues, trees, graphs, and related concepts.

CS 302 - (3) (Y)
Discrete Mathematics II

Prerequisite: CS 202 or equivalent with a grade of C- or above
Continuation of CS 202 consisting of topics in combinatorics, including recurrence relations and generating functions; an introduction to computation theory including grammars, finite state machines and Turing machines; and an introduction to graph theory, including connectivity properties, Eulerian and Hamiltonian graphs, spanning trees and shortest path problems. Cross-listed as APMA 302.

CS 305 - (3) (Y)
Usability Engineering

Prerequisite: Completion of CS 101 with a grade of C- or higher, or permission of instructor
Focuses on the interface between humans and all technology, not just humans and computers. Treats human usability as an engineering design goal. Designs user interfaces to technology.

CS 308 - (3) (Y)
Computer Architecture

Prerequisite: Completion of CS 216 with a grade of C- or higher
Organization of modern computer systems hardware, including instruction sets, input/output, memories, peripherals; alternative hardware organizations, such as, cache memories, pipelining, and buses; parallel and vector computers; and other high-performance computer organizations.

CS 332 - (3) (Y)
Algorithms

Prerequisites: Completion of CS 216 and CS 302 with grades of C- or higher, and two semesters of calculus
A rigorous introduction to the analysis of algorithms and the effects of data structures on those algorithms. The algorithms are selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide- and-conquer, and dynamic programming. The data structures considered include search trees, heaps, splay trees, and spanning trees. The analysis techniques include asymtotic worst case, expected time, amortized analysis, and reductions between problems.

CS 340 - (3) (Y)
Advanced Software Development Techniques

Prerequisite: Completion of CS 216 with a grade of C- or higher
Analysis of modern software engineering practice for multi-person projects; methods for requirements specification, design, implementation, verification, and maintenance of large software systems; advanced software development techniques and large project management approaches; project planning, scheduling, resource management, accounting, configuration control, and documentation.

CS 360 - (3) (Y)
Scientific Computing Using FORTRAN

Prerequisites: CS 101 or CS 182, or CS 186, and APMA 206, or equivalent
Use of large-scale scientific computers in interactive and batch modes to solve science oriented problems in the FORTRAN language. Brief introduction to computer structure, files, operating system commands, and editors. FORTRAN syntax. Applied programming problems in several categories, including: polynomial manipulations, initial value problems, boundary value problems, matrix manipulations, and the manipulation of large program and data structures.

CS 390 - (1) (Y)
Computer Science Seminar I

Prerequisite: Open only to third-year computer science majors
This seminar provides a "cultural capstone" to the undergraduate experience, where students make presentations based on topics in computer science which have not been covered in the traditional curriculum. Emphasis is on learning the mechanisms by which both researchers and practicing computer scientists can access information relevant to their discipline, and on the professional computer scientist's responsibility in society.

CS 414 - (3) (Y)
Operating Systems

Prerequisite: CS 216 and completion of CS 308 with a grade of C- or higher
Analysis of process communication and synchronization; resource management; virtual memory management algorithms; file systems; and networking and distributed systems.

CS 415 - (3) (Y)
Programming Languages

Prerequisite: Completion of CS 340 with a grade of C- or higher
Presents the fundamental concepts of programming language design and implementation. Emphasis is on language paradigms and implementation issues. Develops working programs in languages representing different language paradigms. Many programs oriented toward language implementation issues.

CS 416 - (3) (Y)
Artificial Intelligence

Prerequisites: Completion of CS 201 and CS 302 with grades of C- or higher
Introduces artificial intelligence. Covers fundamental concepts and techniques and surveys selected application areas. Core material includes state space search, logic and resolution theorem proving. Application areas covered may include expert systems, natural language understanding, planning, machine learning, or machine perception. Provides exposure to AI implementation methods, emphasizing programming in Common LISP.

CS 457 - (3) (Y)
Computer Networks

Corequisite: CS 308 with a grade of C- or above, or equivalent knowledge of operating systems
Intended as a first course in communication networks for upper-level undergraduate students. Topics include the design of modern communication networks; point-to-point and broadcast network solutions; advanced issues such as Gigabit networks; ATM networks; and real-time communications.

CS 462 - (3) (Y)
Database Systems

Prerequisite: Completion of CS 216 and CS 302 with grades of C- or higher
Introduces the fundamental concepts for design and development of database systems. Emphasis is on relational data model and conceptual schema design using ER model, practical issues in commercial database systems, database design using functional dependencies, and other data models. Develops a working relational database for a realistic application.

CS 490 - (1) (Y)
Computer Science Seminar II

Prerequisite: Open only to fourth-year computer science majors
A continuation of CS 390.

CS 493 - (1-3) (S)
Independent Study

Prerequisite: Consent of instructor
In-depth study of a computer science or computer engineering problem by an individual student in close consultation with departmental faculty. The study is often either a thorough analysis of an abstract computer science problem, or the design, implementation and analysis of a computer system (software or hardware).

CS 494 - (1-3) (S)
Special Topics in Computer Science

Prerequisite: Permission of instructor, additional specific requirements vary with topics
Content varies from year to year and depends on the interests of the instructor and needs of the Department. Serves a purpose similar to CS 551 and CS 751 , however, the course is taught strictly at the undergraduate level.

CS 551 - (1-3) (S)
Selected Topics in Computer Science

Prerequisite: Permission of instructor
Course content varies from year to year and depends on the interest and needs of students. Recent topics included the foundations of computation, artificial intelligence, database design, and scientific computing.

CS 571 - (3) (Y)
Translation Systems

Prerequisite: Completion of CS 308 with a grade of C- or higher
The theory, design, and specification of translation systems. Translation systems are the tools used to translate a source language program to a form that can be executed. Using rigorous specification techniques to describe the inputs and outputs of the translators and applying classical translation theory, working implementations of various translators are designed, specified, and implemented.

Note   Courses at the 600 level and above are listed in the Graduate Record.


Continue to: Electrical Engineering
Return to: Chapter 10 Index