CPS100. Computers and Applications . 3 Credits.

This course will provide students with a broad overview of computers and their uses. Topics include hardware, software, and the Internet/World Wide Web. Various applications such as word processing, spreadsheets, and database management systems will be discussed. The course is not intended for Computer Science majors.

CPS104. Visual Programming . 3 Credits.

This course covers the Windows environment including files, program groups, Windows Help and applications. It covers visual programming topics such as applications, windows, controls and script writing.

CPS110. Web Page Design. 3 Credits.

A first course in the techniques and software used to design web pages, including html, xhtml, java script, dhtml and xml.

CPS193. Computer Science Selected Topic. 1-12 Credits.

.

CPS210. Computer Science I: Foundations . 4 Credits.

Algorithms, computer organization, data representation, program structure, programming techniques, numerical and non-numerical problems with emphasis on the analysis of problems and the formulation of algorithms for their solution. Numerous short programming assignments.

CPS293. Computer Science Selected Topic. 1-12 Credits.

.

CPS295. Indep Study Comp Science. 1-6 Credits.

.

CPS296. Departmental Elective. 0 Credits.

.

CPS299. Modular Course. 0 Credits.

.

CPS310. Computer Science II: Data Structures . 4 Credits.

Advanced programming and techniques for organizing and operating upon data. Lists, stacks, trees, and graphs. Sequential and linked storage allocations. Data structures in language processors. Includes supervised programming laboratory.

CPS315. Computer Science III. 4 Credits.

A continuation of Computer Science II: Techniques for operating on advanced data structures, has tables, search trees, heaps, and graphs; design, analysis, and implementation of algorithms for searching, sorting, and graph processes.

CPS330. Assembly Language and Computer Architecture . 4 Credits.

Provides an "under the hood" examination of computer systems. Topics include number systems, machine language, assembly language, linking and loading, instruction set architecture, microarchitecture, memory systems, and high-level languages at the assembly level.

CPS340. Operating Systems. 4 Credits.

The design and implementation of single and multi-user operating systems. Memory management, process management, device management.

CPS341. Operating Systems II . 3 Credits.

Design and implementation of major components of a modern operating system.

CPS342. Embedded Linux. 3 Credits.

Students learn the principles and practices of the Linux operating system in the embedded environment.

CPS352. Object Oriented Programming . 3 Credits.

The concepts of object oriented programming -- objects and classes, messages and receivers, encapsulation and inheritance -- and the typical tools -- browsers and libraries -- are presented. A large number of programming assignments require the student to commit substantial time and effort to this course, and provide the student with a working knowledge of object oriented programming.

CPS353. Software Engineering . 3 Credits.

This is an introductory software engineering course that has a project as a major component. The emphasis is on the specification, organization, implementation, testing, and documentation of software. Programming proficiency in C as well as a background in data structures, file handling, and basic flowcharting are necessary prerequisites.

CPS393. Computer Science Selected Topic. 1-12 Credits.

.

CPS396. Departmental Elective. 0 Credits.

.

CPS399. Modular Course. 0 Credits.

.

CPS415. Discrete and Continuous Computer Algorithms. 3 Credits.

A sequel to MAT 320 (Discrete Mathematics for Computing). Techniques for algorithm design, including divide-and-conquer, greedy algorithms, dynamic programming, basic probability and statistics and hypothesis testing and introduced as needed, pseudorandom number generation, and matrix manipulation. Mathematica coding is used to illustrate each topic.

CPS425. Language Processing. 4 Credits.

The theory and practice of language processing: finite state machines, context-free grammars, push-down machines, Turing machines, lexical analysis, top-down and bottom up parsing, and parser generators.

CPS440. Database Principles . 3 Credits.

Study of the logical and physical organization of large databases; database system programming.

CPS441. Database Projects. 4 Credits.

Transaction processing through stored procedures, stored procedures vs triggers, physical database design and index construction, database logical and physical security issues, SQL injections, databases, XML and the web, group project work.

CPS460. Computer Architecture . 3 Credits.

Data representation, memory organization, input/output processing, stack computers, parallel computers, pipeline architecture, microprogramming.

CPS470. Computer Communication Networks . 3 Credits.

Network architecture, data flow control, transmission control, path control, recovery, routing techniques.

CPS471. Computer Communication Networks II. 4 Credits.

Topics selected from: Advanced routing in IP networks including OSPF and BGP, network security, wireless and sensor networks, mobile ad hoc networks, peer-to-peer networks.

CPS485. Projects. 4 Credits.

Engage in computer projects to solve real-world problems. The projects will utilize new technologies and will integrate previously learned knowledge and skills. Students will give oral presentations and write reports concerning their projects. Options for projects include internships, local (campus-based) projects and course-based projects.

CPS493. Computer Science Selected Topic. 3-12 Credits.

.

CPS494. Fieldwork Comp Science. 1-12 Credits.

.

CPS495. Indep Study Comp Science. 1-12 Credits.

.