Thursday Extra 2/8/18: Incorporating Data Science into Introductory CS Course

Thursday, February 8, 2018
4:15 p.m. in Science 3821
Refreshments at 4:00 p.m. in the Computer Science Commons (Science 3817)

A Functional Approach to Data Science in CS1, presented by Professor Samuel A. Rebelsky, discusses the new "data science" version of CSC 151 he has been doing with Titus Klinge and Sarah Dahlby Albright.

As part of the development of a new interdisciplinary initiative in data science that draws from statistics, mathematics, computer science, and the social sciences, we have developed a new introductory CS course that emphasizes data science and that we refer to as DataCSCi. Unlike other introductory data science courses, such as Berkeley's Data 8, our course retains the broad array of concepts necessary not only to introduce programming principles related to data science, but also to prepare students for the second course in our standard introductory computer science sequence. In particular, the course includes coverage of recursion (numeric and structural), unit testing, linked data structures, and other concepts we rely upon in subsequent courses in computer science.

At the same time, we introduce students to a wide variety of techniques and approaches that support them in their subsequent work in data science, including techniques for wrangling, cleaning, and visualizing data. We achieve this combination of breadth and depth through two core approaches: We focus on a spiral "use then implement" approach and we focus on a functional model of programming using Scheme/Racket. While Python and R are the most commonly used languages for data science, we find that Scheme works particularly well to introduce students to concepts both complex, like map-reduce, and simple, like list filtering.

Thursday Extra: "Algorithmic arts"

On Thursday, September 27, Professor Sam Rebelsky will discuss the emphasis on the algorithmic construction and transformation of graphic images in our CSC 151 course:

We have transformed the introductory course in computer science to emphasize the construction and manipulation of images. Students work with a drawing application, creating images by hand and with “scripts.”

The capstone project for the course is A Procedure is Worth 1000 Pictures, in which students write a program that, given a width and height, can generate one thousand different but related images that meet particular guidelines. The project must meet both studio and computer science design criteria. We do studio critiques of both the aesthetic and computational aspects of the projects.

We are exploring ways to have students in this course collaborate with students in the introductory studio art course. One approach builds on a Modular Print project in the studio art course in which students build a square block that they then print in multiple rotations to achieve a more complex image. For the bridge activity, we expect that studio students can propose basic arrangements of the blocks, and CS students can build a program that helps the art students explore the design spaces those arrangements suggest.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). The talk, Algorithmic arts: bridging computer science and studio art, will follow at 4:30 p.m. in Noyce 3821. Everyone is welcome to attend!

Thursday Extra: Transitioning to an Interdisciplinary Graduate Program

On Thursday, 17 November 2011, Jillian Goetz '10 will join us for an informal CS extra. Jillian, who is in her second year in a graduate program in bioinformatics, will talk about the transition from Grinnell to graduate school and will answer questions students have about her experiences in applying to graduate school, starting graduate programs, and working in an interdisciplinary field.

Refreshments will be served at 4:15 p.m. in the Computer Science Commons (Noyce 3817). An informal discussion will continue at 4:30 p.m. in the same location. Everyone is welcome to attend.

Syndicate content