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: TBA TBA
Lectures: MWF 9:00am - 9:50am and 11:00am - 11:50am, Room TBA
Labs:M 1:00pm - 4:00pm in TCL 217a
M 7:00pm - 10:00pm in TCL 217a
T 1:00pm - 4:00pm in TCL 217a
Teaching Assistants: Yousef Alamassi, Mark Bissell, Amelia Chen, Noah Cowit, Kyle Cox, Matthew Davis, Hugo Hua, Carson Kurtz, Aidan Lloyd-Tucker, Jae Mahn Surh, Carter Melnick, Emma Neil, Vy Nguyen, Saud Afzal Shafi, Michaela Smith, Garett Tok Ern Liang, Lucas Tolley

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 chat 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 instructor and the teaching assistances 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.

You will submit your laboratory programs and projects electronically. An explanation of the submission process, details of the schedule of 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 howework assignments. A tentative schedule for these assignments can be found on our Homework page.

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 instructor 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.

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, 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 sumbit. Students may also discuss the problems with the course TAs or instructor.

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: Any work that is not the work of your team is considered a violation of the honor code.

If you do not understand how the honor code applies to a particular assignment, consult your instructor. 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.

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