Computer Science 135 :: Diving into the Deluge of Data :: Fall 2016

We are surrounded by information: weather forecasts, twitter feeds, restaurant reviews, stock market tickers, music recommendations, among others. This course introduces fundamental computational concepts for representing and manipulating data. Using the programming language Python, this course explores effective ways to organize and transform information in order to solve problems. Students will learn to design algorithms to search, sort, and manipulate data in application areas like text and image processing, social networks, scientific computing, databases, and the World Wide Web. Programming topics covered include object-oriented and functional programming, control structures, types, recursion, arrays, lists, streams, and dictionaries. This course is appropriate for all students who want to create software and learn computational techniques for manipulating and analyzing data.

Particulars

  • 09.00 Section
    • Professor: Brent Heeringa
    • Email: heeringa [at] cs [dot] williams [dot] edu
    • Office: Thompson Chemistry Laboratory 306
    • Phone: 413.597.4711
    • Course Classroom: Thompson Chemistry Laboratory (TPL) 205
    • Lecture Time: MWF - 09.00-09.50
    • Office Hours: T: 10.00-12.00, W: 10-11
  • 11.00 Section
    • Professor: Bill Jannen
    • Email: jannen [at] cs [dot] williams [dot] edu
    • Office: Thompson Physics Laboratory 204
    • Phone: 413.597.2309
    • Course Classroom: Biology (TBL) 202
    • Lecture Time: MWF - 11.00-11.50
    • Office Hours: Tu: 14.30-16.30, W: 12.30-13.30
  • Lab Time: Mon - 13.00-14.25; 14.35-16.00
  • Teaching Assistants: Nick Post, Ben Solis-Cohen, Kelsie Dalton, Julia Goldman, Nathan Anderson, Vebiyou Metaferia, Julian Vera
  • Teaching Assistants' Evening Office Hours:
    • Nick: Tu 21.30-23, Th 21.30-23
    • Ben: M 19-20.30, W 19-20.30
    • Julia: Tu 19-20.30, W 21-23
    • Nebiyou: Tu 20-21.30, W 20-21.30, Th 19-23
    • Miranda: M 20.30-23, Th 20.30-21.30

Honor Code

Please read the honor code for computer science classes.

Grading

  • 10 labs, each worth 5% of your grade, lowest grade dropped.
  • 6 homework assignments, each worth 2% of your grade, lowest grade dropped.
  • 1 final project, worth 20% of your grade.
  • 1 take-home midterm, worth 20% of your grade.
  • An overall participation score, worth 5% of your grade.

Tools

Readings

Lectures

Lecture 1 :: 09 September 2016


  • Topics: Overview of Diving into the Deluge of Data
  • Goals: explore and experience computer science and problem solving; describe course structure
  • Readings:
  • Notes
  • Slides

Lecture 2 :: 12 September 2016


  • Topics: operating systems, unix, bash, and compiled versus interpretted languages
  • Goals: gain a rudimentary understanding of the operating system, filesystem, shell, programming languages, and the REPL
  • Readings:
    • Chapter 1 of Think Python.
    • A Unix tutorial. Write down questions and bring them to the first lab. The tutorial is probably best read in front of a computer equipped with a unix operating system (like OS X or Linux). To launch a shell on OS X, look for the Terminal application in /Applications/Utilities.
    • Bash on Wikipedia
    • How does a computer program work?
  • Notes
  • Slides

Lecture 3 :: 14 September 2016


  • Topics: the python interpreter, variables, numbers, and basic string type
  • Goals: understand variable declaration and assignment, integers, reals, mathematical operations on different numeric types, basic strings
  • Readings:
  • Additional Readings and Information:
  • Notes

Lecture 4 :: 16 September 2016


Labs

Homework

  • Homework 0 :: Assigned: 09 September 2016 :: Due: 00.00 11 September 2016
  • Homework 1 :: Assigned: 09.00 - 30 September 2016 :: Due: 09.00 07 October 2016
  • Homework 2 :: Assigned: 09.00 - 09 October 2016 :: Due: 09.00 15 October 2016
  • Homework 3 :: Assigned: 09.00 - 04 November 2016 :: Due: 09.00 09 November 2016
  • Homework 4 :: Assigned: 17.00 - 17 November 2016 :: Due: 17.00 22 November 2016 (5pm)
  • Homework 5 :: Assigned: 21.00 - 28 November 2016 :: Due: 09.00 05 December 2016
  • Homework 6 :: Assigned: 11.59 - 02 December 2016 :: Due: 09.00 05 December 2016

Final Project

Credits