Fall 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 1013 Computer Science Principles
Description: Computing as a creative human activity, abstraction to reduce detail and focus on concepts relevant to understanding and solving problems, describing data and information to facilitate the creation of knowledge, discuss algorithms as tools for developing and expressing solutions to computational problems, use programming is a creative process that produces computational artifacts; and discuss digital devices, systems, and the networks that interconnect them.
- CS 1103 Computer Programming (Python)
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
- 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 4173 History of Video Games
Description: A survey of various game platforms. Computer graphics, audio tools and techniques, and artificial intelligence for game development. Game engines. Game development tools and techniques. An overview of the video game industry from a development perspective.
- CS 4243 Design and Implementation to Computer Security
Description: Overview of the components of computer and network security. Discussion of external processes required in secure systems, information assurance, backup, business resumption. Detailed analysis of security encryption, protocols, hashing, certification, and authentication.
- 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 4743-5743 Combined - Design and Implementation of Operating Systems I
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 4783 Machine Learning
Description: Machine learning uses interdisciplinary techniques such as statistics, linear algebra, optimization, and computer science to create automated systems that can be applied to large volumes of data at high speed to make predictions or decisions without human intervention. Machine learning as a field is now incredibly pervasive, with applications spanning from business intelligence to home-land security, from analyzing biochemical interactions to structural monitoring of aging bridges, and from emissions to astrophysics, etc. This class will familiarize students with abroad cross-section of models and algorithms for machine learning, and prepare students for research or industry application of machine learning techniques.
- 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 5313 Formal Language Theory
Description: Formal language theory applied to procedure oriented languages. Application of finite state algorithms to lexical analysis. Chomsky hierarchy of languages. Generation, recognition, and closure properties of languages.
- CS 5413 Data Structures and Algorithm Analysis II
Description: Data structures and their application in recursive and iterative algorithms. Static and dynamic data structure representations and processing algorithms. Dynamic and virtual storage management.
- CS 5423 Principles of Database Systems
Description: To build the essential foundation as a stepping-stone to data management research, this course exposes students to advanced database system design principles and concepts. We will broadly explore the classic as well as more recent research work.
- CS 5683 Algorithms and Methods for Big Data Analytics
Description: This course will discuss several data mining and machine learning algorithms for big data analytics: clustering, recommendation systems, social media analysis, big graph mining, data stream analysis, large-scale machine learning, and online algorithms. The course includes hands-on experience for big data frameworks and algorithms with tutorials and assignments. All assignments will be based on Apache Spark and Python programming. But prior knowledge on Apache Spark is not required.
- CS 5783 Machine Learning
Description: A probabilistic, statistical approach to automated pattern discovery applied to large datasets. Constructing computational models with this information and assessing their behavior and reliability. Representing data and devising tools for discovering these models. Class focuses on the development and analysis of learning algorithms as well as the mathematical formulations underlying statistical processing. Same course as CS 4783.