Catalog Description: Development of Computer Science topics appearing in Foundations of Data Science (C8); expands computational concepts and techniques of abstraction. Understanding the structures that underlie the programs, algorithms, and languages used in data science and elsewhere. Mastery of a particular programming language while studying general techniques for managing program complexity, e.g., functional, object-oriented, and declarative programming. Provides practical experience with composing larger systems through several significant programming projects.
Units: 3.0
Course Objectives: Develop a foundation of computer science concepts that arise in the context of data analytics, including algorithm, representation, interpretation, abstraction, sequencing, conditional, function, iteration, recursion, types, objects, and testing, and develop proficiency in the application of these concepts in the context of a modern programming language at a scale of whole programs on par with a traditional CS introduction course.
Student Learning Outcomes: Students will be able to demonstrate a working knowledge of these concepts and a proficiency of programming based upon them sufficient to construct substantial stand-alone programs.
Prerequisites: MATH 1A. Also, this course is a Data Science connector course and may only be taken concurrently with or after COMPSCI C8/DATA C8/INFO C8/STAT C8. Students may take more than one Data Science connector (88) course if they wish, concurrent with or after having taken the C8 course.
Credit Restrictions: Students will receive no credit for DATA C88C after completing COMPSCI 61A.
Formats:
Fall: 2.0 hours of lecture and 2.0 hours of laboratory per week
Spring: 2.0 hours of lecture and 2.0 hours of laboratory per week
Grading basis: letter
Final exam status: Written final exam conducted during the scheduled final exam period
Also listed as: DATA C88C, COMPSCI C88C
Fall 2020 class homepage on bCourses
Department Notes: Introduction to computer science in the context of data science. This course provides a rigorous introduction to the programming topics that appear in Foundations of Data Science, expands the repertoire of computational concepts, and exposes students to techniques of abstraction at several levels, including layers of software and machines from a programmers’ point of view. It provides an understanding of the structures that underlie the programs, algorithms, and languages used in data science and other settings. It focuses on paradigms for controlling program complexity, such as functional programming, object-oriented programming, and declarative programming. Mastery of a particular programming language is a valuable side effect of studying these general techniques. It provides practical experience with composing larger computational systems through several significant programming projects.