CSCI 134 - Digital Communication and Computation
An Introduction to Computer Science
|Home | Lectures | Labs | Homework | Documents | CS Dept | Williams Home|
Home : Fall 2015
|Instructors:||Bill Lenhart||Tom Murtagh|
|Office:||TCL 307||TCL 309|
|Lectures and labs will be taught by both instructors on a rotating basis:|
|Lectures:||MWF 9:00am - 9:50am and 10:00am - 10:50am in Schapiro 129|
|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|
|Office Hours:||Tuesday, 1:30 - 3:30pm (Bill or Tom)|
|Wednesday, 1:00 - 3:00pm (Tom)|
|Thursday, 9:00 - 11:00am (Bill)|
|Thursday, 1:00 - 2:30pm (Tom)|
|Friday, 1:00-2:00pm (Bill)|
|TAs:||Nathan Andersen, Matheus de Carvalho Souza Rebecca Delacruz-Gunderson, Ben Drews, Julia Goldman, Karen Huan, Stephanie Liu, Eli Meckler, Riwaz Poudyal, Michael Shaw, Melanie Subbiah, Minh Tuan Tran, Kaleb (Yitong) Tseo|
|TA Hours:||See schedule|
A digital revolution has transformed the way we communicate and process information. Digital cameras have replaced film, MP3s have replaced LPs, DVDs have replaced analog VCR tapes, and 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 meeting.
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 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 final 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.
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 15. There will be two time slots, one from 6:00 to 7:15 and the other from 7:30 to 8:45. 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. If you wish to use more than two late days for any single assignment, you must obtain special permission from one of the course instructors. 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.
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 collaborate with one another; however, each student is responsible for writing their own solutions to problems and any collaboration should be clearly noted. 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.
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 :: email@example.com|