Course Offerings

CS 110 – Selected Topics (Credits: 1 to 6)
An in-depth presentation of a topic of interest to both students and faculty. Topics will vary from year to year depending on the interests and availability of faculty. Prerequisites: May be required for some topics.

CS 121 – Intro Software Development (Credits: 1)
This survey course introduces computer software, the process of its development, and its uses in contemporary society. Topics include data representation, basic computer architecture, and categories of software including multimedia products, end-user applications, process-control, and scientific computing.

CS 140 – Microcomputer Syst (Credits: 3)
Emphasis is placed on the technical details of the microcomputer system as a whole in order to produce sophisticated users. This course focuses on microcomputer operating systems, their structures and relations to the microcomputer architecture, a technical understanding of information flow through the microcomputer and its hardware interfaces. This course also introduces the Internet, networking, and communications protocols such as TCP/IP.

CS 161 – Foundations Of CS I (Credits: 4)
Introduces basic data representation, branching and iteration, memory management, computer architecture, and the analysis and design of problem solutions.

CS 162 – Foundations Of CS II (Credits: 4)
Introduces some common algorithms for searching and sorting, the analysis of algorithm complexity, exception handling, and file output.
Prerequisites: Math 111, CS 161.

CS 209 – Field Placement (Credits: 1-15)

CS 210 – Selected Topics (Credits: 1 to 6)
An in-depth presentation of a topic of interest to both students and faculty. Topics will vary from year to year depending on the interests and availability of faculty. Prerequisites: May be required for some topics.

CS 221 – C/C++ Programming (Credits: 4)
An introduction to the basics of programming as used in C and C++, including selection statements, loops, arrays, string handling, pointers, registers and functions. Practical exercises will require the construction, compilation, debugging, and execution of complete programs that implement given algorithms to solve simple problems. The emphasis in this course will be on the common features of C and C++; however memory allocation and the use of pointers will be discussed in the context of the ANSII C implementation.
Prerequisite: CS 162.

CS 248 – Unix Programming (Credits: 3)
The essentials of UNIX tool programming will be covered with the use of high-level programming languages, utilities, and toolkits. Topics include UNIX shells and essential utilities and network security issues, and high-level networking and protocol basics. Provides students with an opportunity to team the tools and programming languages that will help them make the best use of UNIX.
Prerequisite: CS 221.

CS 260 – Data Structures (Credits: 4)
An introduction to various implementations of commonly used data structures and their applications. Topics include lists, stacks, queues, trees and hash tables.
Prerequisite: CS 162.

CS 310 – Selected Topics (Credits: 1 to 6)
An in-depth presentation of a topic of interest to both students and faculty. Topics will vary from year to year depending on the interests and availability of faculty. Prerequisites: May be required for some topics. Students must have at least a Sophomore standing to register for this course.

CS 311 – Operating Systems (Credits: 3)
The principles and problems involved in the development of a computer operating system. Overview of the development of operating systems, sequential and con-current processes, cooperation, communication and mutual exclusion, synchronization constructs: monitors, conditional critical regions, semaphores; deadlocks, resource allocation, scheduling policies, storage management.
Prerequisite: CS 248. Student must have at least Sophomore standing to register for this course.

CS 315 – Interactive Software Design (Credits: 4)
Institutional Grad Requirement – UWR

Covers models of software development, with emphasis on the prototyping model, and user interface design. Students will design an interactive product, producing deliverables for each stage of design up to the development of a working prototype.
Prerequisites: CS 162: Foundations of Computer Science II.

CS 316 – Authoring Environment Programming (Credits: 4)
Students learn to apply procedural and object oriented programming methodologies to create interactive products for informational, educational, and entertainment applications for web or stand-alone delivery.
Prerequisites: CS 162: Foundations of Computer Science II.

CS 318 – Algorithm Analysis (Credits: 4)
The analysis of variety of algorithms that arise frequently in computer applications. Basic principles and techniques for analyzing and improving algorithms in areas such as List Searches, Sorting, Pattern Recognition, Polynomial and Matrix Computations.
Prerequisite: MATH 231 and CS 260. Student must have at least Sophomore standing to register for this course.

CS 321 – Computing Theory (Credits: 3)
Includes automata, complexity, Turing machines, unsolvable problems.
Prerequisite: CS 318. Student must have at least Sophomore standing to register for this course.

CS 325 – Applied 3D Graphics and Animation (Credits: 4)
Covers the three dimensional computer modeling tools for the creation of still and moving images. Topics include creation of models using a variety of techniques including spline and vertex editing; animation using keyframes, skeleton rigging and morph targets; virtual lighting, and use texture maps.
Prerequisites: CS 162: Foundations of Computer Science II.

CS 328 – Intro to Video Game Design & Development (Credits: 4)
The design, implementation, and testing of video games. Includes incremental game engine development, simple graphics, user input, animation, sound, music, and artificial intelligence.
Prerequisites: CS 221, CS 260.

CS 330 – Database Management System (Credits: 4)
Analysis, design, and implementation of data systems in relation to information transfer.
Prerequisite: CS 260, CS 3184. Student must have at least Junior standing to register for this course.

CS 335 – Networking/Network Admin (Credits: 4)
An introductory examination of the Open System Interconnection Reference Model (OSI). Topics covered include network architecture, data flow control, transmission control, path control, recovery, and routing techniques.
Prerequisite: CS 311. Student must have at least Sophomore standing to register for this course.

CS 344 – Systems Analysis & Design (Credits: 3)
Introduction to fundamental concepts of object-oriented software development. Covers requirements determination and specification and systems design using the Unified Modeling Language (UML). Emphasis is placed on methods of iterative and incremental software development.
Prerequisite: CS 260. Student must have at least Sophomore standing to register for this course.

CS 360 – Object-Orient Prog With C++ (Credits: 4)
A study of object oriented programming with C++. Beginning and intermediate concepts are covered including classes, objects, member functions, overloading, inheritance, polymorphism, templates, and virtual functions.
Prerequisite: CS 221, CS 260. Student must have at least Sophomore standing to register for this course.

CS 369 – Mobile Application Development (Credits: 4)
Development of applications for phones, tablets, and other mobile devices, with an emphasis on the constraints facing mobile application design and development from both a hardware and user perspective. Introduction to current mobile app frameworks, events, and user interfaces.
Prerequisites: CS 360.

CS 370 – User Interface Design (Credits: 3)
Institutional Grad Requirement – UWR
Introduces principles of human-computer interface design and methodologies of implementation, evaluation, and research in human-computer interaction. Topics include user psychology, dialog styles, error handling and reporting, system response time, user documentation and help systems, and “intelligent” interfaces. Discusses techniques for the implementation and testing of human-computer interfaces.
Prerequisite: MM 252 and MM 315 (concurrently). Student must have at least Sophomore standing to register for this course.

CS 380 – Software Engineering (Credits: 4)
Emphasis is on the specification, organization, implementation, testing, and documentation of software. Inherent problems, challenges, tools, and methods of a large software project. Presents methods and tools used in the various stages of software production. This course should prepare students for the problems they will encounter as software professionals.
Prerequisite: CS 344. Student must have at least Sophomore standing to register for this course.

CS 381 – Programming Languages (Credits: 4)
Concepts of high-level programming languages. Syntax and semantics of several existing languages. Compilers, interpreters and formal syntax specification.
Prerequisite: CS 360. Student must have at least Sophomore standing to register for this course.

CS 401 – Capstone (Credits: 1 to 6)
Prerequisite: Upper-division standing or Consent of instructor. Student must have at least Junior standing to register for this course.

CS 407 – Seminar (Credits: 1 to 6)
Prerequisite: Junior or Senior standing. Student must have at least Junior standing to register for this course. Credits:

CS 409 – Practicum (Credits: 1 to 12)
Students gain practical experience in a professional or pre-professional setting.
Prerequisites: Upper-division standing and consent of instructor. Student must have at least Junior standing to register for this course.

CS 410 – Selected Topics (Credits: 1 to 5)
An in-depth presentation of a topic of interest to both students and faculty. Topics will vary from year to year depending on the interests and availability of faculty. Prerequisites: May be required for some topics. Student must have at least Junior standing to register for this course.

CS 425 – Computer Graphics (Credits: 4)
This course studies the principles underlying the generation and display of 3D computer graphics. Topics include geometric transformations, 3D viewing and projection, lighting and shading, color, camera models and interaction, and standard graphics APIs.
Prerequisites: CS 221 and junior standing.

CS 427 – Numerical Computation (Credits: 3)
Introduction to numerical methods. Includes topics from elementary discussion of errors, polynomials, interpolation, quadrature, linear systems of equations, and solution of nonlinear equations.
Prerequisite: MATH 261, CS 360. Student must have at least Junior standing to register for this course.

CS 428 – Web Architecture/Programming (Credits: 4)
This course will cover some of the emerging technologies in the area of dynamic Web page development and Web server programming, including DHTML, XML, and Java Server Pages.
Prerequisite: CS 330. Student must have at least Junior standing to register for this course.

CS 440 – Artificial Intelligence (Credits: 4)
Basic concepts of intelligent systems and artificial intelligence programming, representation, control, communication, and perception.
Prerequisites: CS 318, CS 360, and junior standing