CSCI 134 - Spring 2020

Introduction to Computer Science

Home | Face-to-Face Lectures | Remote Lectures | Labs & Homeworks | Resources | CS@Williams


Section:CSCI 134-02, 134-08, 134-09
Instructor:Shikha Singh
Phone: x4773
Office:TBL 309B
Student Hours: Mondays: 2:30-4 pm; Wednesdays: 12.30-2:00 pm (CS Common Room) & Thursdays: 1-2 pm
Lectures: MWF: 9:00-9:50 am, Schow Science Library 030a
Labs: Tuesday 1-2:30 pm (Section 08) & 2:30-4:00 pm (Section 09) in TCL 217a
 Labs are due Thursday @ 11 pm EST

Section:CSCI 134-03, 136-04, 136-05
Instructor: Iris Howley
Phone: x4663
Office:TCL 308
Student Hours: See Calendar (below) & by appointment.
Synchronous Lecture Discussions: MWF: 11:30-12:00 pm EST, via Zoom
Synchronous Lab Discussions: Monday 1-3:00 pm EST, via Zoom
 Labs are due Thursday @ 11 pm EST
Instructional Support: Lida Doret
Phone: x2309
Office:TCL 205
Student Hours: See Calendar (below) & by appointment.
TAs: Harun Curak, Diego Esparza, Nathan Thimothe, Maria Chapman, Amelia Chen, Caleb Dittmar, Hugo Hua, Brian Kamau, Sarah Lyell, Yash Mangal, Rachel Nguyen, Minh Phan, Mira Sneirson, Jules Walzer-Goldfeld
TA schedule: See Calendar (below).
Textbook: Think Python (2nd Edition), found at and here

Course Description

We are surrounded by information. 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, and databases. Programming topics covered include procedural, object-oriented, and functional programming, control structures, structural self-reference, arrays, lists, streams, dictionaries, and data abstraction. This course is appropriate for all students who want to create software and learn computational techniques for manipulating and analyzing data.

Organization. During lecture hours we will typically learn new concepts through the building of new tools to solve simple problems. While the learning process is initially supported by an online text, we expect a dynamic approach to the class that will allow us to steer lectures in directions of mutual interest. During formal lab hours, we will meet for 90 minutes to begin work on a more extended problem. We expect that this work will be continued outside of scheduled time. There are also weekly written homework assignments to support lecture and lab learning.

Work. You are responsible for reading supporting material and participating as the semester progresses. In addition, some topics may require you to investigate online resources (documentation, tutorials, and the like). Each week you will be responsible for completing a programming assignment (35 percent) in addition to a written homework (15 percent). There will be a midterm examination on March 5 (5:45pm or 8pm, 25 percent) and a scheduled final (Sunday, May 19 at 1:30 PM, 25 percent). We reserve the right to adjust grades by as much as 5 percent to reflect course participation.


Course Syllabus
Late Day Request Form
Department Honor Code and Computer Usage Policy

Course Support Schedule (TAs and office hours)


The Textbook
Typical workflows
Viewing Lab Grades in GitLab
Duane's Incredibly Brief Intro to Unix and Emacs Python Tutorial
Python Standard Library
Python Language Reference
Working Remotely
Working Remotely for CS134 - Set-up Slides
Williams CS - Working Remotely
VPN Instructions for Accessing GitLab from off-campus
Problems? Contact us!