CSci 134 - Digital Communication and Computation
An Introduction to Computer Science
Home | Lectures | Labs | Homework | Documents | CS Dept | Williams Home

Home : Fall 2019

Instructors: Jeannie Albrecht Tom Murtagh
Phone: x4251 x2369
Office: TCL 304 TCL 309
Office Hours: Wed and Thur 1-2:30 Wed and Thur 2-4:00
Friday, 1:30 - 2:25pm
Lectures: MWF 9:00am - 9:50am TPL 205 and 11:00am - 11:50am Schow 030A
Labs:M 1:00pm - 4:00pm in TCL 216/217a
M 7:00pm - 10:00pm in TCL 217a
T 1:00pm - 4:00pm in TCL 216/217a
Teaching Assistants: Yousef Alamassi, Mark Bissell, Amelia Chen, Kyle Cox, Matthew Davis, Hugo Hua, Carson Kurtz, Alex Taylor, Carter Melnick, Emma Neil, Vy Nguyen, Saud Afzal Shafi, Michaela Smith, Garett Tok Ern Liang, Lucas Tolley
TA availability: Sun (TCL 123) 7pm-11pm: Saud, Garett, Alex, Amelia
Mon (TCL 216/217) 9pm-11pm: Hugo
Tue (TCL 216/217) 7pm-11pm: Saud, Hugo, Amelia, Michaela
Wed (TCL 216/217) 7pm-11pm: Vy, Carson, Hugo, Micheala
Thur (TCL 216/217) 7pm-11pm: Vy, Yousef, Matt, Micheala, Emma
Individual Tutors: Noah Andrew, Jackson Bibbens, Heidi Leeds, Karmen Liang, Alex Taylor, Daniel Woldegiorgis, Peter Zhao, Soban Mehmood

Course Description

A digital revolution has transformed the way we communicate and process information. Digital cameras have replaced film, MP3s have replaced LPs, communications through email, chat systems, and the Web have become part of daily life. This course explores the principles that underly such digital information processing and communication systems.

The representation of information in discrete, symbolic form is ultimately what makes a system digital. We will examine digital techniques for representing information. How can a beam of light traveling through an optical fiber represent a sequence of 0s and 1s? How can numeric data capture the tones we hear when we listen to a digital recording? As we explore these questions we will examine the tradeoffs involved in the design of schemes for representing information.

All digital information processing and communication systems are driven by precise rules or algorithms expressed as computer programs. We will develop an appreciation for the nature and limitations of such algorithms by exploring abstract algorithms for complex processes and by learning the basics of computer programming in Java. Programming topics covered will include object-oriented programming, control structures, arrays, recursion, and event-driven programming. Programming projects will include network applications like email clients, tools to process and compress digital images, and simple network servers. While the programming assignments for the course will focus on the application of programming to communication, the programing skills students develop will be applicable in many other areas. In particular, this course is designed to provide the programming skills required to complete CSCI 136 and/or CSCI 237.

Textbooks and Readings

In lieu of textbooks, we will use two course packets. One is called Understanding Digital Communications and the other is called Programming with Java, Swing and Squint. The texts will be distributed during the first class or lab meetings.

The CS 134 Lectures page describes the topics we plan to cover in each lecture and, where appropriate, the readings that should be completed before the lecture.

A fee of approximately $10 is charged for the course packet.

Programming Laboratories and Projects

Lab sessions will be held each week. These sessions provide a time during which your instructors and the teaching assistants can actively assist you in the development of programs. Lab descriptions will be handed out in advance, and you will be expected to have planned your approach to the assignment before the beginning of lab. Unexcused absence from your laboratory section may result in a grade of F for that week's lab.

In addition to the weekly programming laboratories, students will be expected to complete a final programming project during the last weeks of the semester. Details will be discussed during lecture.

You will submit your laboratory programs and projects electronically. An explanation of the submission process, details regarding lab deadlines, information about teaching assistants and a discussion of our approach to grading your labs can be found on our Labs page.

Written Assignments

During the semester, students will be expected to complete about 10 written homework assignments. A tentative schedule for these assignments can be found on our Homework page.

In general, we expect students to spend about 10 hours per week outside of class and lab on work related to the course (programming assignments, written homework, and assigned readings). If you are spending significantly more time than that on your assignments, please come talk to your instructors.

Exams and Grading Policies

There will be one written exam given at midterm and another during the final exam period. The midterm will be on the evening of October 17th. The time and place for the final exam will be announced on the web site when that information becomes available.

Final grades will be based on an average determined as follows: Laboratory programs: 20%, Midterm 20%, Final Project 20%, Homework Assignments: 20%, Final exam: 20%.

You may use a maximum of four free late days during the course of the semester. A late day permits you to hand in a program or a written assignment up to 24 hours late, without penalty. To use a late day, simply email your instructors and Lida Doret and let them know that you are using a late day. You should use no more than two late days for a single assignment. Once your four late days are exhausted, laboratory programs and written assignments will not be accepted after the due date, but in computing your grade the lowest score on submitted lab assignments will be dropped. Therefore, it is to your advantage to submit assignments on time, even if they are incomplete.

Computer Science Honor Code

For general information about the College's Honor System, look here. For information on the department's policies, look here.

Unless announced otherwise, exams will be "closed-book": Students may not use any books, notes, calculators, or other resources (human, technological, or other). When working on problem sets/written homework, students may discuss problems with one another; however, any collaboration should be clearly noted and each student is responsible for independently writing the solutions they submit. More specifically, students can exchange broad ideas or general approaches toward problem sets with other students, but may not engage in any joint writing or step-by-step problem solving. One way to be sure you are not violating the honor code is to refrain from writing/typing/crafting your response to the assignment with others. Rather, save the writing until you are on your own and working independently. Note that students are also encouraged to discuss the problems with the course TAs or instructors at any time.

For programming assignments in Computer Science courses, the honor code is interpreted in very specific ways. When a program is assigned, your instructor will identify it as a "laboratory" or "team" program. The Honor Code applies differently to each with respect to collaboration or assistance from anyone other than the TAs or instructors:

Laboratory Programs: Laboratory programs are expected to be the work of the individual student, designed and coded by him or her alone. Help locating errors is allowed, but a student may only receive help from other students in correcting errors of syntax; help in correcting errors of logic is strictly forbidden. Guideline: Assistance from anyone other than the TAs, approved tutors, or instructors in the design or coding of program logic will be considered a violation of the honor code.

Team Programs: Team programs are laboratory programs that are to be worked on in teams of two (or more) students. You are allowed to discuss team programs with your partners, but work with others is restricted to assistance that does not involve the program's logic as with laboratory programs. Guideline: Assistance from anyone outside of your team, TAs, tutors, or instructors is considered a violation of the honor code.

If you do not understand how the honor code applies to a particular assignment, please consult your instructors! We are happy to have these conversations. The Department of Computer Science takes the Honor Code seriously. Violations are easy to identify and will be dealt with promptly.

Suggestion: To protect your work, dispose of printouts carefully, and avoid leaving your programs on hard disks in labs and other public storage areas.

Computing Ethics

Students should be aware of the Computing Ethics policies outlined here. Violations including uninvited access to private information and malicious tampering or theft of computer equipment or software are subject to disciplinary action.

Getting Help

If you need additional help, you are encouraged to come see your instructors, Lida Doret, or the teaching assistants. If you are confused, do not stay confused! The sooner we can get you back on track, the easier it will be to keep up with the material.

In addition to the teaching assistants, you may be able to schedule time with a tutor. As a Williams student, you can use the free tutoring services provided by the Peer Academic Support network. A schedule showing available individual tutoring sessions, as well as staffing in the Math and Science Resource Center (MSRC), is available through the Williams College TutorTrac system. TutorTrac, which will be updated weekly, can be accessed through mobile devices, but you must be on the Williams College network to do so. Step-by-step instructions for finding and scheduling tutoring sessions are available when you log into TutorTrac. If you have questions about tutoring at Williams, please email

Health/Accessibility Resources

Students with disabilities of any kind who may need accommodations for this course are encouraged to contact Dr. GL Wallace (Director of Accessible Education) at 597-4672. Also, students experiencing mental or physical health challenges that are significantly affecting their academic work or well-being are encouraged to contact the instructors and to speak with a dean so we can help you find the right resources. The deans can be reached at 597-4171.

Inclusion and Classroom Culture

The Williams community embraces diversity of age, background, beliefs, ethnicity, gender, gender identity, gender expression, national origin, religious affiliation, sexual orientation, and other visible and non visible categories. We welcome all students in this course and expect that all students contribute to a respectful, welcoming and inclusive environment. If you have any concerns about classroom or lab climate, please come talk to your instructors to share your concerns.

Department of Computer Science :: 47 Lab Campus Drive :: Williamstown, MA 01267
413.597.3218 ::