400

CS 400 Seminar

In-depth study of professional responsibility in the field of computer science. Students are expected to read journal papers, articles, and books, participate in class discussions, and give presentations.

2

Prerequisites

Upper-division standing.

CS 411 Analysis of Algorithms

Design, analysis and correctness proofs of important algorithms from areas such as combinatorics, seminumerical algorithms, data storage and retrieval, systems programming, and artificial intelligence. Includes a study of complexity theory.

3

Prerequisites

CS 304, MTH 311, MTH 461

CS 421 Artificial Intelligence

The history and applications of artificial intelligence. Topics include: inference, knowledge representation, search, cognitive architecture, decision making under uncertainty, and machine learning. Course is taught in fall of odd-numbered years.

3

Prerequisites

CS 303

CS 423 Computational Biology

Algorithmic and analysis techniques for biological data such as DNA, RNA, proteins, and gene expression. Topics include molecular biology, alignment and searching algorithms, sequence evolution algorithms, genetic trees, and analysis of microarray data. This course is interdisciplinary and assumes programming skills. Course is taught in fall of odd-numbered years.

3

Prerequisites

MTH 201, CS 203, and one of the following: BIO 205, BIO 207, CS 303

Cross Listed Courses

BIO 423

CS 432 Computer Graphics

An examination of topics in computer graphics, including graphical output devices, line-drawing and clipping algorithms, representation and drawing of curves, techniques for transforming graphical images, and methods of modeling and rendering in three-dimensions. Course is taught in fall of even-numbered years.

3

Prerequisites

MTH 201, CS 303

CS 434 Database Management Systems

The design and implementation of databases with an emphasis on the use of relational database management systems (DBMS). Query languages, table and index design, query evaluation, transaction management, tuning, security. Course taught in fall of even-numbered years.

3

Prerequisites

CS 304 or corequisite.

Corequisites

CS 304 or prerequisite.

CS 441 Software Engineering

Software lifecycle models. Requirements engineering. Planning and managing software projects. Software design methods. System integration, software quality assurance, testing, and validation. Software maintenance.

3

Prerequisites

CS 303 or equivalent.

CS 442 Software Engineering for Internet Applications

Students will design, develop, and evaluate a web-based application. Emphasis on human factors, security, databases. Course is taught in spring of odd-numbered years.

3

Prerequisites

CS 304

CS 445 Computer Networks and Internetworking

A broad first course in computer networks and internetworking. OSI and TCP/IP layered models, TCP/IP protocol suite, transmission media, local area networks, network and transport-layer protocols, internetworking, internet addressing and routing. Course is taught in spring of odd-numbered years.

3

Prerequisites

CS 304 or equivalent.

CS 446 Operating Systems

Functions, structure, design, and problems of operating systems. Concepts and principles of operating system design and implementation including file system, CPU scheduling, memory management (including virtual memory), deadlocks in computer systems, concurrent processes and programming, threads, and protection.

3

Prerequisites

CS 304 or equivalent.

CS 447 Game Design and Theory

This course will provide an introduction to the field of computer game design. The philosophy, objectives, and history of this field will be explored. In addition, the course will emphasize practical applications of some of the more prevalent techniques. Course is taught in spring of even-numbered years.

3

Prerequisites

CS 304 or corequisite.

Corequisites

CS 304 or prerequisite.

CS 448 Computer Systems Security

Cryptography, program security, security in operating systems, security in computer networks, security administration and policies. Course is taught in spring of even-numbered years.

3

Prerequisites

CS 303

CS 451 Theory of Computation

Introduction to finite automata, Turing machines, formal languages, and computability.

3

Prerequisites

CS 203, MTH 311

CS 452 Compiler Design

Lexical analysis, syntactic analysis, type checking, and code generation. Introduction to optimization.

3

Prerequisites

CS 304, CS 374, CS 451

CS 480 Senior Design Project Preparation

Selection of and preparation for a senior capstone design project in computer science. Students work in teams to prepare a formal proposal and design to meet performance specifications or research goals. Written and oral reports on the design project are required. Fee: $40.

3

Prerequisites

Upper division standing.

CS 481 Senior Design Project

A continuation of CS 480, students work in teams to implement, test, and evaluate their design. Written and oral reports are required, including a demonstration of the project. This course includes a comprehensive examination based on the CS curriculum. Fee: $40.

3

Prerequisites

CS 480

CS 490 Directed Study

Credit arranged.

Variable

CS 491 Seminar

Credit arranged.

Variable

CS 492 Seminar

Credit arranged.

Variable

CS 493 Research

Faculty-directed student research. Before enrolling, a student must consult with a faculty member to define the project. May be repeated for credit.
1-3

Prerequisites

Upper division standing.

CS 499 Senior Thesis

Research, study, or original work under the direction of a faculty mentor, leading to a scholarly thesis document with a public presentation of results. Requires approval of thesis director, department chair, dean, and the director of the honors program, when appropriate.

Variable

Prerequisites

Senior standing; 3.0 G.P.A. in the thesis area or good standing in the honors program.