Spring 2020 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 computer programming using a high-level computer language, including subprograms and arrays. Principles of problem solving, debugging, documentation, and good programming practice. Elementary methods of searching and sorting. No prior programming or computing experience needed. Previously offered as CS 2103.
- 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: Recursive algorithms. Intermediate methods of searching and sorting. Mathematical analysis of space and time complexity, worst case, and average case performance. Course previously offered as CS 3333.
- 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.
- 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.
- CS 4173
Video Game Development
Description: History of video games. A survey of various game plat-forms. Computer graphics, audio tools and techniques, and arti cial intelligence for game development. Game engines. Game development tools and techniques. An overview of the video game industry from a development perspective.
- 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 first introductory course for databases, COP4710 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 different 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 specification. 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. ** A major area of emphasis is a semester long class project involving NASA involving creation of VR/Augmented Reality environments. Students will be assigned to specific teams with specific objectives. The weekly progress in the projects will serve as a homework or quiz.
- CS 4743-5743 Combined -
Description:Survey the history, state-of-the-art, and future of immersive computing, a.k.a VAMR (virtual, augmented, and mixed realities), a.k.a. XR (extended reality). 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 immersive systems. Investigate the relationship between immersive computing and IoT (Internetof-Things). Learn about the construction of virtual environments and tracking between real and virtual objects. Study the applications of immersive computing to solve realworld 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 performance 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, cloud services and tools, data mining algorithms, and distributed clusters and servers to the students.
- CS 5323
Principles of Database Systems
Description: An overview of database management systems, entity-relationship model, relational model, structural query language, relational algebra, functional dependencies, relational database design with normalization theorems, query processing, fault recovery, concurrent control, web-based database systems. Introduction to NoSQL databases, querying NoSQL databases.
- 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.