cs3157 - Advanced Programming.
Spring 2006


Home Homeworks Schedule/Lectures Class Web-board Resources

Announcements:
  • Homework 3 posted
General Information: http://www.cs.columbia.edu/~sh553/teaching/3157s06/
Meeting Times and Locations:
Spring 2006 M/W 1:10-2:25pm, 633 Mudd
Prerequisites:
Intermediate Programming Knowledge (cs1004,cs1007)
Instructional Staff:
Instructor:
Prof. Shlomo Hershkop. (shlomo@cs.columbia.edu) (AIM: Prof Hershkop)
Office Hours: T/TR 12-1pm or by appt.
TA:
Tae Yano (ty2142@columbia.edu)
Office Hours (TA room): M 9:50 - 10:50, T 9:50 - 10:50
Amrita Rajagopal (ar2358@colum..)
Office Hours (TA room): Friday 11-1pm
Ankur Khanna (ak2546@columbia..)
Office Hours (Ta room): Thursday 10:30am-12:30pm
Course Objectives:
This course is a third course for majors in computer science.

The primary objective will be to learn the tools and tricks of working with programming projects.

A secondary objective is to offer a practical, hands-on introduction to programming techniques and tools for professional software construction, including learning how to write code to given specifications as well as document the results.

Provides introductory overview of C and C++ in a UNIX environment, for students with Java background. Also introduces scripting languages (perl) and basic web programming. UNIX programming utilities are also covered. Lab required.

We will develop sound programming and design skills, problem solving and modeling of real world problems from science, engineering, and other areas of interest using anything that works.

Course Materials:
Required Text:

Perl :
Programming Perl
Third Edition, Wall, Christiansen, and Orwant
OReilly Publishing
Note: You have 2 options for the C/C++ part of the course

  1. Deitel and Deitel
    C How to Program, Fourth Edition
    ISBN: 0131426443
    Note: It contains both c/c++ material.
  2. C:
    Brian Kernighan and Dennis Ritchie. (2004)
    The C Programming Language, 2nd Edition
    ISBN 0131103628, publisher: Prentice Hall PTR.
    C++ :
    Gregory Satir and Doug Brown. (2004)
    C++ The Core Language,
    ISBN 156592116 publisher: O'Reilly.>

CS Account Requirements
You are required to sign up for a CS account for this course.
The account charge is $50 and will allow you to use the clic lab during the semester. Please see CRF for more information
Click on apply for a cs account and choose No sponsor and fill out the relevant information.

Course Structure:

There are four major components to a grade in this course: labs, homeworks, midterm, and the final.

  • 9 Labs 120 points
  • 3 homework's 60 points
  • Midterm: 30 points
  • Final: 60 points

In other words, all the components are extremely important, but the hands on labs and homework's are especially significant. Class participation is also strongly urged. While there is no numerical grade attached to it, as neither participation nor attendance is strictly required, it's in your interest to make an acquaintance with me, especially if you're on the "borderline" between grades at the end of the semester. We may also give some bonus point opportunities on homework's; these are added up after the curve at the end of the semester. 

Homework and Lab Policy:

The hands on lab is a crucial part of quickly learning and assimilating the different programming languages and concepts covered in the course. Once we enter the second full week of the course, we will be meeting in the clic lab every Wednesday for hands on lab. Generally the labs will be due on the following Sunday (via electronic submission).

Unless other arrangments are made, if you do not submit your lab by the following Wednesday, the lab will be graded to a zero.

Homework's will generally consist of a programming project. You're generally allotted two weeks for each homework; make sure to start early so you can ask questions (or, make sure you have a lot of coffee and crossed fingers if you start the night before it's due). 

You are given 3 "late days" that can be used towards homework/lab submissions during the semester. A late day is defined as exactly 24 hours, so if a homework is due at 11:00:00am on Tuesday, you could submit the homework by 11:00:00am on that Wednesday by using up one of your late days.

As an example, you can submit homework 1 two days late and homework 4 one day late -- but all of the remaining homework's must be on time. Beyond the late days, no late homework's will be accepted; if you're in such a situation, submit what you have instead of getting a zero. (Please don't come to my office or email me with excuses -- short of a medical, family, or national emergency, I'm not interested in them!)

One catch: you may only use up to two late days on any single homework. That means you could use two for one homework and one for another homework, or one each for three different homework's, or less -- but not more. 

Cheating Policy:

One word: don't. All homework's and exams in this course are intended to be done by yourself, because that is the simplest way to learn and absorb the material. Feel free to leverage your brain, textbook, teaching assistants, the instructor, and the web-board to help you solve homework problems.. You're allowed to discuss problems with classmates, but only in general terms, and you must specifically avoid discussing any solutions.

Moreover, you'd be amazed how easy it is to detect plagiarism or cheating in both written and programming assignments. Cheaters don't spend tremendous amounts of time masking their copy, because that defeats the purpose and it would be simpler to do the homework themselves. Invariably, therefore, they get caught. An infraction is a zero on the assignment or exam and a referral to your academic dean. See this page for more details.

You must also resist the urge to copy code from the web. Obviously, there are many Computer Science classes out there, and while we put every effort into making my homework's reasonably unique, there are likely to be similar approaches elsewhere. While we obviously can't forbid you to look at other slides or text material, any evidence of plagiarism from other sources will merit similar consequences.

Contact Information:
I would like the course to run smoothly and enjoyably. Feel free to come to us during office hours, or make an appointment to discuss anything you like or don't like about the course. Your involvement at making sure you are following the material and are "up to date" is key to succeeding in the course. Some students have problems in the beginning of the course, which is exactly the time to get help, before things get out of hand.

We can't always promise that we'll resolve your issues (such as randomly dropping a homework grade), but we're here to help you learn and get the most out of the class.