Computer Science (CS)

CS160 Introduction To Computer Science  4 credits  (3 lec, 2 lec lab hrs/wk)

Introduction to Computer Science is an engaging course designed for beginners. It provides an overview of the field of computer science, covering key concepts and algorithms that underpin modern computing technology. Students will explore various topics, including internet search engine algorithms, number systems, binary math, Boolean logic, computer architecture, artificial intelligence, and the future of computing. Practical programming exercises in a beginner-friendly language will be included, offering hands-on experience in developing simple scripts and applications. This course is ideal for anyone interested in understanding the basics of computing and programming, and it serves as a foundational "big picture" course for those continuing in the CS series.

This course may be taken 1 time for credit.

Course classification: LDC

CS161 Computer Science I  4 credits  (3 lec, 2 lec lab hrs/wk)

Prerequisite(s): ( CS160 ) or ( ENGR112 )

Computer Science I introduces students to the fundamentals of programming using the C++ language. The course covers basic concepts such as variables, control structures, functions, arrays, and elementary data types. Emphasizing problem-solving and algorithmic thinking, it guides students through the development of simple programs and basic software development processes. The course also introduces debugging and testing techniques, laying the groundwork for more advanced programming concepts and practices in subsequent courses.

This course may be taken 1 time for credit.

Course classification: LDC

CS162 Computer Science II  4 credits  (3 lec, 2 lec lab hrs/wk)

Prerequisite(s): ( CS160 ) or ( ENGR112 )

Computer Science II is a course designed to teach concepts in computer science using the Python programming language. Topics include variables and data types, algorithmic problem solving, conditional and iterative control structures, functions, basic data structures, introductory object-oriented programming, debugging, security considerations, and proper code documentation.

This course may be taken 1 time for credit.

Course classification: LDC

CS205 System Programming & Architecture  4 credits  (3 lec, 2 lec lab hrs/wk)

Prerequisite(s): ( CS260 )

System Programming and Architecture is designed to bridge the gap between high-level programming and computer hardware. Aligned with the requirements of OSU and PSU, the course is an essential component of the CS Major Transfer Map (MTM). The primary focus is to understand the relationship between C programs, assembly code, and machine architecture. We will explore key aspects of computer architecture, data representation in assembly, and the compilation process. Additionally, this course serves as an introduction to the C programming language, equipping students for junior-level courses that require a proficiency in C. Students will learn to write well-structured C programs, debug effectively, and gain a foundational understanding of how software interacts with hardware.

This course may be taken 1 time for credit.

Course classification: LDC

CS260 Data Structures  4 credits  (3 lec, 2 lec lab hrs/wk)

Prerequisite(s): ( CS162 )

Data Structures is an advanced course that builds upon the foundational knowledge acquired in earlier computer science courses. It delves into the design, implementation, and analysis of complex data structures and algorithms. Emphasizing practical applications, the course covers binary search trees, hash tables, graphs, and heaps, equipping students with the skills to manage and manipulate large sets of data efficiently. Students will also learn about memory management and algorithm efficiency, vital for developing optimized and scalable software. Through a combination of theoretical learning and hands-on projects, CS 260 prepares students for tackling real-world computational problems with advanced programming techniques.

This course may be taken 1 time for credit.

Course classification: LDC