200

CPSC-20000 Introduction to Computer Science

This course explores the field of computer science. It provides an overview of computer architecture, networking, data organization, information security, and computational theory. Students will be introduced to fundamental concepts underlying all of computing, such as algorithms, abstractions, and how computers represent numbers, text, images, and sound. Students will learn the basics of programming and computational problem solving.

3

Prerequisites

MATH 12000 or 3 years of high school Mathematics, including Trigonometry

CPSC-21000 Programming Fundamentals

A study of computer organization, data types, expressions, logical structures, subprograms (subroutines and functions), recursion, structured data types (arrays and records), dynamically allocated data, array-based lists, linked lists, stacks, queues, graphs, trees, sorting, and searching.

3

Prerequisites

CPSC 20000 or CPSC 31500

CPSC-22000 Introduction to Unix

Students are introduced to the Unix operating system, including installation, configuration, administration, and on-line documentation. Networking with TCP/IP is presented, together with an introduction to apache (http server) and samba (file and printer server). Security controls in Unix and operating system virtualization are also discussed.

3

Prerequisites

CPSC 20000

CPSC-23000 Visual Basic

This course introduces computer programming using the Visual BASIC programming language with object-oriented programming designs and principles. The Microsoft .NET framework is used to develop applications. Emphasis is placed on event-driven programming methods, including creating and manipulating objects, classes, and using object-oriented tools such as the class debugger. An introduction to databases and ASP .NET applications is also discussed.

3

Prerequisites

CPSC 20000

CPSC-23500 Programming for Data Analysis

Disciplines and industries are collecting increasing amounts of data to help guide their work. This course presents programming techniques for working with large data sets. It teaches computer programming from the perspective of developing tools to analyze data.
3

Prerequisites

MATH 21500, MATH 31400, MATH 31500 OR PSYC 30300

CPSC-24500 Object-Oriented Programming

Students will learn to design and develop software using the object-oriented approach. Topics include encapsulation, inheritance, polymorphism, abstraction, and patterns. Students will learn how to use an SDK to develop desktop and web applications that provide data processing and visualization services. Students will also learn how to manage threads and networking connections in software they write.

3

Prerequisites

CPSC 21000

CPSC-24700 Web and Distributed Programming

Languages and technologies for programming and leveraging web-based computer services securely. Languages include PHP, Perl, JavaScript, Java, Ruby, CSS, and HTML5. Technologies include relational databases, web services, Hadoop, and cloud computing platforms. This course teaches students how to develop useful applications using a variety of distributed data and programming models.

3

Prerequisites

CPSC 20000

CPSC-25000 File Systems and Digital Forensics

A study of concepts related to the storage, retrieval, backup, and recovery of data in file systems. Topics include the organization and processing of sequential access files, direct access files, and indexed sequential access files; RAID and disk spanning; the organization of data on a variety of storage devices; the disk boot process; identifying hidden data on a disk's Host Protected Area; analyzing various kinds of partitions; analyzing FAT, NTFS, Ext2, Ext3, UFS1, and UFS2 file systems; recovering data from deleted files and hidden file locations; and using open-source forensics tools to identify drive contents.

3

Prerequisites

CPSC 20000

CPSC-29600 Topics in Computer Science

This course focuses on a specific topic in computer science that typically falls outside the established curriculum. This course enables the student to encounter content that engages an emerging question or subject in computer science. Topics will vary in accordance with areas of intense current interest.

1-3

Prerequisites

See Semester Course Schedule for prerequisites, if any.