CS - Computer Science
Introduction to programming. Numeric variables, control structures, arrays, functions, and file input/output. Emphasis on writing numerically-oriented programs to solve engineering and scientific problems.
1
Create a foundation for computer science and the software development process. Emphasis on good design and programming techniques through practice in writing, running, and debugging programs. Study of a programming language which incorporates objects, structured control statements, classes, inheritance, strong data typing, and sub-programs with parameters.
3
Corequisites
CS 273
Weekly three-hour laboratory to support CS 203.
1
Corequisites
CS 203
Continue to build a computer science foundation. Study of intermediate programming language constructs: event handling, graphical user interfaces, threads, and networking. Introduction to the software engineering process and programming-in-the-large.
3
Prerequisites
CS 203
Corequisites
CS 371
Continues the study of computer science and software engineering methodologies. Analysis of common data structures, time and space efficiency, stacks, queues, linked lists, basic trees, recursion, searching, and sorting algorithms. Study of program language features required to support dynamic memory arrays.
3
Prerequisites
CS 203
Advanced data structures, including advanced trees, graphs, hash tables, heaps. Study of the program language features required to support templates, inheritance, and exception handling.
3
Prerequisites
CS 303
Comparative analysis of several modern high level languages in terms of data types and control structures, with emphasis on run-time behavior of programs.
3
Prerequisites
CS 304
Weekly three-hour laboratory to support CS 301.
1
Corequisites
CS 301
Weekly 3-hour laboratory to support CS 303. Use of software tools and data structures to support software development (UNIX operating system).
1
Prerequisites
CS 303 or corequisite.
Corequisites
CS 303 or prerequisite.
Weekly 3-hour laboratory. Assembly language and systems programming.
1
Prerequisites
CS 303
The course focuses on developing and practicing techniques for rapid programming in a small team environment: approaches to problem assessment, selection of data structures and algorithms, implementation, and testing. Students will hone their skills by working in small teams to produce correct solutions to a wide variety of computing problems under time constraints.
1
Prerequisites
CS 303 or corequisite.
Corequisites
CS 303 or prerequisite.
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.
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
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
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
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
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.
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.
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
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.
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.
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.
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
Introduction to finite automata, Turing machines, formal languages, and computability.
3
Prerequisites
CS 203,
MTH 311
Lexical analysis, syntactic analysis, type checking, and code generation. Introduction to optimization.
3
Prerequisites
CS 304,
CS 374,
CS 451
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.
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
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.
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.
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
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
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
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
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
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 is taught in fall of even-numbered years.
3
Software lifecycle models. Requirements engineering. Planning and managing software projects. Software design methods. System integration, software quality assurance, testing, and validation. Software maintenance.
3
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
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
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
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
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
Introduction to finite automata, Turing machines, formal languages, and computability.
3
Lexical analysis, syntactic analysis, type checking, and code generation. Introduction to optimization.
3
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