Spring 2021 Syllabi
- CS 1003 Computer Proficiency
Description: For students with minimal personal computer skills. Use of Internet and productivity software such as word processing, spreadsheets, databases, and presentation software. The ability to log on to a personal computer, access the OSU network, and access OSU Web sites is assumed. Previously offered as CS 1002.
- CS 1103
Computer Programming (A)
Description: Introduction to Python Programming language, Introduction to computer science using a block-structured high-level computer language, including subprograms, arrays, and records. Principles of problem solving, debugging, documentation, and good programming practice.
- CS 1113
Computer Science I (A)
Description: Introduction to computer science using a block-structured high-level computer language, including subprograms, arrays, recursion, records, and abstract data types. Principles of problem solving, debugging, documentation, and good programming practice. Elementary methods of sorting and searching. Use of operating system commands and utilities. Previously offered as CS 2113.
- CS 2133 Computer Science II
Description: This course continues the Java-based introduction to basic computer science concepts begun in Computer Science I. Essentially, this course covers the use of object-oriented programming to design and implement software solutions. Students will learn and understand how to design large programs to make them readable, maintainable, elegant, and efficient. In addition, students will also learn to analyze the program and predicts its efficiency. Java is the language used; it is an object-oriented programming language that was designed for developing large systems from reusable components. Prerequisites: CS 1113 - Computer Science I.
- CS 2351 Unix Programming
Description: The UNIX programming system. The programming environment. The UNIX file system and the shell. Use of pipes and filters. Course previously offered as CS 3451.
- CS 2433 C/C++ Programming
Description: C/C++ programming language types, operators, expressions, control flow, functions, structures, pointers, arrays, UNIX interface. Basic object oriented programming using C++ and the related language syntax and functionality. Previously offered as CS 2432.
- CS 3353 Data Structures and Algorithm Analysis I
Description: Storage, structures, data and information structures, list processing, trees and tree processing, graphs and graph processing, searching, and sorting. Previously offered as CS 4343 and CS 4344.
- CS 3363 Organization of Programming Languages
Description: Programming language constructs. Run time behavior of programs. Language definition structure. Control structures and data flow programming paradigms. Previously offered as CS 4363.
- CS 3443 Computer Systems
Description: Functional and register level description of computer systems, computer structures, addressing techniques, macros, linkage, input-output operations. Introduction to file processing operations and auxiliary storage devices. Programming assignments are implemented in assembly language.
- CS 3513 Numerical Methods for Digital Computers
Description: Errors, floating point numbers and operations, interpolation and approximation, solution of nonlinear equations and linear systems, condition and stability, acceleration methods, numerical differentiation and integration. Course previously offered as CS 3223.
- CS 3613 Theoretical Foundations of Computing
Description: Introduction to the classical theory of computer science. Sequential machines and their applications to devices, processes, and programming. Models of computation: finite-state automata, push-down automata, Turing machines. The role of non-determinism. Limits of digital computation. Computability and unsolvability. The Church-Turing Thesis.
- CS 3653 Discrete Mathematics for Computer Science
Description: Theory and applications of discrete mathematical models fundamental to analysis of problems in computer science. Set theory, formal logic and proof techniques, relations and functions, combinatorics and probability, undirected and directed graphs, Boolean algebra, switching logic.
- CS 4153
Mobile Applications Development
Description: The history of mobile apps and their implication on computing in general. Survey of the various platforms and approaches used for mobile apps. Examine the differences between "conventional" programs and mobile apps. Learn tools and techniques to develop mobile apps, and demonstrate proficiency through development assignments. May not be used for degree credit with CS4153/CS5153.
- CS 4323 Design and Implementation of Operating Systems I
Description: Process activation and process context block. Batch, multi-programmed, and timeshared operating system. Process management, memory management, and synchronization primitives. Deadlock prevention, avoidance, and detection.
- CS 4433
Introduction to Database Systems
Description: As the rst introductory course for databases, CS4433 studies the fundamentals of relational database management systems (RDBMS). Materials include, but are not limited to, the ER (Entity-Relationship) model and its mapping to the relational data model, the algebraic language in the relational data model and its relationship to the commercial relational query language: SQL, database design that conforms to di erent normal forms, database applications, database indexing, transaction management, recovery and other advanced topics. Furthermore, students will participate in a semester-long project and build a web-based database system (e.g., an online bookstore) starting with a customer speci cation. In summary, this course is about the principles of designing and developing applications using relational database systems.
- CS 4623/5623
Introduction To Cyber Physcial Systems
Description: This course will introduce students to principles and technologies dealing with cyber physical systems. Topics covered will include design of cyber physical systems including the role of Virtual Reality (VR) based simulation environments approaches. Students will also be exposed to Virtual Reality technologies and Next Generation Internet frameworks to support the adoption of Cyber Physical methodologies. The role of Information modeling techniques to support the design of collaborative methodologies for CPS contexts will also be addressed.
- CS 4743-5743 Combined -
Description: Survey the history, state-of-the-art, and future of extended reality (XR), a.k.a VAMR (virtual, augmented, and mixed realities), a.k.a. immersive computing. Learn to use appropriate tools and techniques to develop for a variety of target platforms. Examine the human physiological factors that affect the design and development of XR systems. Investigate the relationship between XR and IoT (Internet-of-Things). Learn about the construction of virtual environments and tracking between real and virtual objects. Study the applications of XR to solve real-world problems.
- CS 4883 Social Issues in Computing
Description: The history and evolution of computing systems, providing the background for the analysis of the social impact of computers. The social implications of computer use and or misuse with emphasis on the effects on the individual, society, and other human institutions. Social responsibilities of people involved in using or applying computers.
- CS 5113
Computer Organization and Architecture
Description: The objective of this course is to study computer architecture by examining architectural concepts with consideration of use and performance. This course covers a number of issues involved in the design and utilization of high per- formance computing systems. This includes: Instruction Set Architecture, Performance Evaluation, Pipeline Microprocessor, Cache and Memory, Multiprocessor, Interconnection Network
- CS 5123
Cloud Computing and Distributed Systems
Description:The course gives broad ideas and popular methodologies in cloud computing and distributed systems. The course mainly aims to use distributed computing frameworks like Hadoop MapReduce and Apache Spark for complex data-intensive problems like big data processing, web search, and machine learning. Course lectures, assignments and project will be designed to help students to understand the basics of distributed computing frameworks, some data science concepts, cloud tools and services, and trends in the cloud like Serverless, Edge, and Micro-services.
- CS 5323
Principles of Database Systems
Description:This course look into the important problems in operating system design and implementation.The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The discussion will cover the trade-offs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management(processes, threads, CPU scheduling, synchronization, and deadlock), memory management(segmentation, paging, swapping), and file systems; and on operating system support for distributed systems. Prerequisite: CS 4323 or equivalent and Knowledge of programming
- CS 5433
Big Data Management
Description: Data storage and processing for big data, Map-Reduce model for big data processing within the Hadoop software framework, big data warehouse for summarization, query and analysis using Hive, Data munging and transformation using Pig; Streaming data using Flume; Transferring structured data using Sqoop; Loading, Querying and transforming data using HBase; Setting up distributed services using ZooKeeper; Data Processing using Apache Spark; Writing Data Pipeline jobs for Hadoop; Machine learning in Spark and R.