CS1003/1004: Course Information
[ Announcements | Course Info | Schedule & Homeworks | Resources | Webboard | Grades ]

Course description and prerequisites

According to the Computer Science course descriptions:

This pair of classes are architected in a somewhat-unusual fashion: both share a common theory lecture, once a week. In addition, you must register for a lab section, where language-specific content is taught.

NOTE: The office hours listed below are not valid for reading week. See this post for more information.

Instructor

Janak J Parekh
Email: janak at cs dot columbia dot edu
Office: 608 CEPSR (the building immediately west of Mudd)
Office hours:
  • Tues 12:15pm-1:15pm (in classroom, moving to 608 as necessary)
  • Fri 3pm-4pm (in 608)
  • Or by appointment

Teaching Assistants

Suhit Gupta
Email: suhit at cs dot columbia dot edu
Office hours:
  • Tues/Thurs 10am-11am, 608 CEPSR
Maryam Kamvar
Email: mkamvar at cs dot columbia dot edu
Office hours:
  • Mon 8pm-9:15pm, in TA Room
  • Thurs 12:15pm-1pm, in CLIC
William Beaver
Email: wmb2013 at columbia dot edu
Office hours:
  • Monday 2:30pm-3:30pm, 251 ET
Rob Tobkes
Email: rbt2002 at cs dot columbia dot edu
Office hours:
  • Wednesday, 2:30pm-3:30pm, TA Room
  • Thursday, 2:00pm-3:00pm, 251 ET

Theory lecture

Classroom: 207 Math
Class time: T 11:00am-12:15pm
Registrar info, including call number: [ W1003 ] [ W1004 ]
Taught by: Janak J Parekh

Labs

W1113, for CS1003:
  1. Classroom: 407 Math
    Class time: R 9:10am-10:25am
    Registrar info, including call number, here.
    Taught by: Suhit Gupta
  2. Classroom: 207 Math
    Class time: R 11:00am-12:15pm
    Registrar info, including call number, here.
    Taught by: Suhit Gupta
W1114, for CS1004:
  1. Classroom: 252 ET (Mudd)
    Class time: R 9:10am-10:25am
    Registrar info, including call number, here.
    Taught by: William Beaver
  2. Classroom: 486 CS (directions)
    Class time: R 11:00am-12:15pm
    Registrar info, including call number, here.
    Taught by: Maryam Kamvar
  3. Classroom: 558 Schermerhorn Extension
    Class time: W 7:10pm-8:25pm
    Registrar info, including call number, here.
    Taught by: Maryam Kamvar

Textbooks

There are three textbooks. The first one is required for both CS1003 and CS1004, while the other ones are language-specific. All three textbooks will be available from Papyrus Bookstore, located on the southwest corner of 114th and Broadway. Note that you need to go down the stairs on 114th to the computer section (the upper section may be undergoing renevation, but the downstairs is open). The regular Columbia University bookstore does not have the books, so don't go looking there. Alternatively, I provide Amazon links below.

Brookshear, J. Glenn. Computer Science: An Overview, 7th Edition. Addison-Wesley, July 2002.
ISBN: 0201781301; Amazon link.
Required for both CS1003 and CS1004 students.
Oualline, Steve. Practical C Programming, 3rd Edition. O'Reilly, August 1997.
ISBN: 1565923065; Amazon link.
Required for CS1003 students only.
Bishop, Judith. Java Gently: Programming Principles Explained, 3rd Edition. Addison-Wesley, January 2001.
ISBN: 0201710501; Amazon link.
Required for CS1004 students only.

Course structure

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

In other words, all three components are extremely important, but homeworks 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. I may also give some bonus point opportunities on homeworks; these are added up after the curve at the end of the semester.

I'm a strong believer in the "reasonable person principle" as pioneered by Professor J.L. Gross. Among other things, a reasonable person catches up with material should they miss class, explains answers on homeworks or exams, and does not cheat (more on this later).

Homework format and submission

Homeworks will generally be divided into two parts: written theory questions and programming questions. 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). I generally make homeworks due by classtime, so you don't have an incentive to skip out on the next lecture, but this may vary when appropriate.

Consequently, there will be two means of submission: hardcopy and electronic; the first will be required for the written problems, and the latter for the programming exercises. A link to the instructions will be posted here well before the first homework is due.

Homework lateness

You are given 3 "late days" that can be used towards homework 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 homeworks must be on time. Beyond the late days, no late homeworks 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 homeworks, or less -- but not more.

Cheating and plagiarism

One word: don't. All homeworks and exams in this course are intended to be done by yourself, and with the help of the textbook, teaching assistants, the instructor, and the webboard. 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 I put every effort into making my homeworks reasonably unique, there are likely to be similar approaches elsewhere. While I obviously can't forbid you to look at other slides or text material, any evidence of plagiarism from other sources will merit similar consequences.

Feedback

I love feedback! Feel free to come to me during office hours, or make an appointment to discuss anything you like or don't like about the course. I can't always promise that I'll resolve your issues (such as randomly dropping a homework grade), but I do promise I won't take it out on you. I'm here to help you learn and get the most out of the class.