CSCI 134

Introduction to Computer Science

Lectures | Labs | Homeworks | Resources

Home

Welcome video: Welcome to Introduction to Computer Science
Instructors: Daniel Aalberts (mail: daalbert)
Duane A. Bailey (mail: bailey)
Molly Q. Feldman (Lab only, mail: mqf1)
Office Hours:TBA
Lectures (on-line): Posted Sundays, Tuesdays, Thursdays
Discussion (Hybrid):MWF 9:20-10:10, Bailey, Remote
MWF 12:00-12:50, Aalberts, in-person, Wege (TCL 123)
Labs (Remote):M 1:30-2:45pm or 3:15-4:30pm, with Bailey; or
M 1:30-2:45pm or 3:15-4:30pm, with Feldman; or
T 9:45-11:00am or 3:15-4:30pm, with Aalberts.
Textbook: (Recommended) Think Python (2nd Edition), found at greentreepress.com and here
TAs:TBA
TA Hours:TBA
Web Resources:http://www.cs.williams.edu/~cs134
Technical Support:Lida Doret (email: lpd2)

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, 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. Lecture material for this course will be delivered on-line, through Glow. During these lectures we will typically learn new concepts and problem solving strategies to solve simple problems. Students are expected to have reviewed the lectures before attending scheduled in-person or virtual lecture time, where the material will be discussed in greater detail, with a focus on applying the material to sample problems. We expect a dynamic approach to class discussions that will allow us to steer our focus in directions of mutual interest. Each week students will work on a larger, independently worked project. Students will check in, virtually, with the teaching staff during scheduled ``laboratory'' meetings to gauge progress and receive feedback. Teaching assistants will hold regular remote hours, focused on small group interaction. Throughout the semester students will be challenged with non-credit thought questions that will directly prepare students for midterm and final exams (held through Glow).

Work. You are responsible for watching pre-recorded lectures, and pursuing interaction in online Student Help hours as the semester progresses. In addition, some topics may require you to investigate online resources (documentation, tutorials, Think Python and the like).

Policies

Course Syllabus (TBA)
Department Honor Code and Computer Usage Policy

Lectures

Description | Labs | Homeworks | Resources

Date Topic

Laboratories

Description | Lectures | Homeworks | Resources

Date Topic

Homeworks

Description | Lectures | Labs | Resources

Due Date (place) Topic

Resources

Description | Lectures | Labs

Item
The Textbook
Duane's Incredibly Brief Intro to Unix and Emacs
The Java Language Specification
The Java Application Programmer's Interface (API) Documentation
The Java Tutorials Page at Oracle