Introduction to computing fundamentals. Topics include: history of computing, basic computer architecture, programming languages, problem solving, algorithm development, object-oriented program design and programming and ethical issues involved in computer use.

Pre-requisites: MATH 1112 or MATH 1113

View the Department Course Profile
A continuation coverage of computing fundamentals. Topics include: basic data structures, basic algorithms, data and procedural abstraction, software design principles, and an introduction to the analysis of the complexity of algorithms.

Pre-requisites: CS 1301 with minimum grade of C

View the Department Course Profile
An integrated approach to the study of data structures, algorithm analysis, and discrete mathematics. Topics include: induction and recursion, time and space complexity, and big-O notation, propositional logic, proof techniques, sorting, mathematical properties of data structures, including lists.

Pre-requisites: CS1302 and MATH 1634

View the Department Course Profile
Software development methods for large-scale software systems. Management of software development projects. Software engineering standards. Students are expected to complete a large-scale software project. Pre-requisites: CS 3151 and CS 3211 View the Department Course Profile
NOTE: This is an independent study offering of this course.
The course covers fundamental concepts of computer networks. Topics include: OSI model; LAN/WAN architecture & design; network services and protocols such as TCP/IP, IPv6, mobile IP; DNS, ICMP, telnet, ftp, etc; distributed object systems; and collaboration technology and groupware. Students are expected to complete a project that covers the essentials of set-up, configuration and administration of multi-protocol servers and clients.

Pre-requisites: CS3151 and CS3211

View the Department Course Profile
This course covers fundamental of operating systems. Topics include process management, concurrency, scheduling, device management, file systems and naming, security and protection, and distributed operating systems. Students are expected to complete a project in the administration and maintenance of operating systems.

Pre-requisites: CS3100 and CS3152

View the Department Course Profile
Regular languages, finite-state automata, and regular expressions; context-free languages, context-free grammars, and push-down automata; Turing machines and recursively enumerable languages; Chomsky hierarchy; Church's thesis, decidability and the halting problem, and computability; The P and NP classes.

Pre-requisites: CS3152

View the Department Course Profile
This course integrates core topics of the computer science body of knowledge, teamwork, and professional practices through the implementation of a large-scale project.

Pre-requisites: CS3212 and CS3230 and CS3260

View the Department Course Profile
Advanced concepts in database systems, object-oriented systems, distributed-database systems, and concurrency control. The course includes special emphasis on current applications of web-based database management systems. Students will also be introduced to current professional certification processes and standards.

Pre-requisites: CS6231

View the Department Course Profile
The implementation, validation, and documentation of software systems. Students will apply software development processes in a major project. Students will also be introduced to current professional certification processes and standards. Pre-requisites: CS6241 View the Department Course Profile
The course covers fundamental concepts of computer networks. Topics include: OSI model; LAN/WAN architecture and design; network services and protocols such as TCP/IP, IPv6, and mobile IP; DNS, ICMP, telnet, ftp, NCP/SPX/IPX, UDP, etc. Students are expected to complete a project that covers the essentials of set-up, configuration, and administration of multi-protocol servers and clients.

Pre-requisites: CS5202 or equivalent

View the Department Course Profile

A survey of techniques and tools for software reverse engineering. Emphasis will be on practical applications, i.e., using reverse engineering principles to aid software development and maintenance. Topics include program representations, design recovery, static and dynamic program analysis, and program, database, and user interface reverse engineering.

Pre-requisites: CS 5202 or equivalent

Discussions and information for folks involved with csX.