According to the SEAS bulletin: General introduction to Computer Science designed to prepare students with no prior CS experience for the major. Taught in Java. The course develops an understanding of fundamental concepts and skills that are critical to the CS Core. It provides some programming background in Java and teaches baseline Unix abilities in preparation for COMS 1007, Introduction to Computer Science.
Note that the bulletin is incorrect about a lab requirement; the course is no longer taught with a lab. Registering for just the class itself is sufficient. No programming background is assumed; in fact, the only required background is basic computer skills (e.g., word processing, email, web, mouse) and a desire to learn a whole new paradigm of thinking. Both non-majors and majors are welcome.
If you are fluent in programming (for example, you've taken the Advanced Placement Computer Science exam), you should register for CS1007 instead.
Section 001 | Section 002 |
TR 11:00am-12:15pm 717 Hamilton |
TR 2:40pm-3:55pm 207 Math |
Instructor: Janak J Parekh Email: Office: 608 CEPSR (the building immediately west of Mudd) Office hours: Tu/Th 12:15-1:15 (starting in classroom) |
Instructor: William M Beaver Email: Office: 406 Mudd (yes, it's actually in Carleton Lounge!) Office hours: Tu/Th 4:00-5:00 |
Bhagyashree Bohra Email: |
Samit Jain Email: |
David Lau Email: |
Billy Liu Email: |
Payton Ong Email: |
Peter Ottomanelli Email: |
Becky Plummer Email: |
Here are everyone's office hours. All of the TAs' office hours, in yellow, are held in the TA Room. The instructors' office hours, in blue, are held right after class in the appropriate office; the easiest way to ask them for help is to come right after class and to follow them to their office as necessary. (Also note that the time slots are not consecutive, so the hours on Wednesday, for example, are not all adjacent.)
Monday | Tuesday | Wednesday | Thursday | Friday | |
11am-12pm | Bhagyashree | ||||
12pm-1pm | Becky | Janak (12:15pm) | Payton | Janak (12:15pm) | Payton |
1:30pm-2:30pm | Billy | Becky | Billy | ||
3pm-4pm | David | David | Samit | ||
4pm-5pm | Peter | William | Samit | William | |
5pm-6pm | Bhagyashree |
Unfortunately, no one textbook exists on the market today that covers the syllabus for this course, so there are two textbooks for the class: a theory textbook and a programming textbook. Both will be available from Morningside Bookshop, 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 regular Columbia University bookstore does not have the books, so don't go looking there. We also provide Amazon links, although note that Amazon may or may not be cheaper.
Schneider, G. Michael
and Gersting, Judith. Invitation
to Computer Science: Java Version, Second Edition.
Thomson Course Technology, February 2004. ISBN: 0534419941; Amazon link. |
|
Lewis, John and Loftus,
William. Java
Software Solutions (Java 5 version): Foundations of Program Design, 4th
Edition. Addison-Wesley,
November 15, 2004. ISBN: 0321322037; Amazon link. Note: Confusingly, there are multiple versions of the 4th Edition; the above ISBN reflects the latest version. The early ones document Java 1.4, while the newer ones document Java 1.5 (also called Java 5). Worse, the book changed multiple times to reflect the changing aspects of Java 5 until it was released. If at all possible, try to get a version of the book that's Java 5 compliant, even if its publication date is before Nov. 15th. If you must, you can try a Java 1.4 version, but we recommend against this (if you do, make sure to closely follow the lectures to see the differences). Make sure any version you get is the 4th Edition. |
We're aware there's a substantial cost to acquiring two textbooks, but there are shockingly few good books for this course (and we've looked at a ton of them). The second book was used by CS1004 students last semester, so you may be able to find some deals on campus or on the 'Net. Please keep in mind the editions and language for each book if you do search for a deal.
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. We may also give some bonus point opportunities on homeworks; these are added up after the curve at the end of the semester.
Janak's 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).
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). Homeworks are usually due by the first section's 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 on the homeworks page well before the first homework is due.
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.
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 we put every effort into making my homeworks 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.
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. 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.