CS 88. Computational Structures in Data Science

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: 2.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/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 may receive no credit for Computer Science 88 after completing Computer Science 61A.

Formats:
Fall: 1.0 hours of lecture and 2.0 hours of laboratory per week
Spring: 1.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


Class Schedule (Fall 2018):
Mo 2:00PM - 2:59PM, LeConte 4 – David Culler

Class Schedule (Spring 2019):
Mo 9:00AM - 9:59AM, LeConte 4 – Gerald Friedland
Mo 10:30AM - 11:29AM, Soda 306 – Gerald Friedland

Fall 2018 class homepage on bCourses

Class homepage on inst.eecs

General Catalog listing


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.