300

CPSC-30000 Computer Organization

This study of computer organization covers the central processor unit, memory unit and I/0 unit, number systems, character codes and I/O programming. Programming assignments provide practice working with assembly language techniques, including looping, addressing modes, arrays, subroutines, and macros. Microsoft assembler is discussed and used for programming throughout the course.
3

Prerequisites

CPSC 21000

CPSC-31500 Scientific Computing

An introduction to developing computer applications for collecting, analyzing, and visualizing scientific and mathematical data. Students will learn how to use mathematical computing environments like Matlab, Octave, and R as well as to write journal-style papers in LaTeX.

3

Prerequisites

MATH 20000, MATH 21100, or MATH 24000

CPSC-33000 Database Systems

File storage structures, relational database management systems, entity relationship diagrams, relational algebra, relational calculus, SQL, database security, concurrency control, distributed and cloud storage solutions, coding database-supported web sites using PHP and XML.

3

Prerequisites

CPSC 20000

CPSC-34000 Algorithms and Data Structures

This course is the study of the design and analysis of computer algorithms including the data structures used in these algorithms. Topics include design techniques, such as divide-and-conquer, dynamic programming, the greedy method and backtracking, sorting, searching, graph computations, pattern matching and NP-complete problems.
3

Prerequisites

CPSC 21000

CPSC-35000 Operating Systems

A survey of concepts, facilities, and characteristics of contemporary computer operating systems that includes topics such as memory management, concurrent process control, multi-threading, security, virtualization, and parallelization.

3

Prerequisites

CPSC 21000

CPSC-35500 Cloud Computing and Virtualization

An introduction to the concepts and techniques of implementing cloud computing through the use of virtualization and distributed data processing and storage. Topics include operating system virtualization, distributed network storage, distributed computing, cloud models (IAAS, PAAS, and SAAS), and cloud security.
3

Prerequisites

CPSC 35000

CPSC-36000 Applied Programming Languages

This course exposes students to a variety of current programming languages that are not the focus of other courses in the major. The goal of the course is to increase students' programming skills while helping them develop good programming methodology and style. This course also gives students experience using code management systems and working on open-source programming projects.

3

Prerequisites

CPSC 24500

CPSC-396XX Topics in Computer Science

This series of 300-level seminars focuses on various topics related to computer science and is usually offered on weekends.

1-3

Prerequisites

See Semester Course Schedule