General Information: |
Prerequisites: Introductory course requires basic familiarity with a computer. Must know how to type, surf the web, and read email. If you're not exactly sure how to do these with respect to Columbia's computer systems, please see me. I can be reached via email or at 1 (212) 939 7177. No knowledge of any programming language is required. The course consists solely of a 3 point lecture, although the homework assignments include light programming tasks. You do NOT need to purchase a CLIC, Columbia CS, or MRL account for this course. The only programming tools you need access to are a web browser (e.g., Firefox) and the Unix command line provided by the CUNIX environment.
The SSH client
PuTTY is useful to access the
cunix.cc.columbia.edu
machines to do your work remotely from
a MS Windows computer.
Personnel:
Name | Role | UNI | Office Hours |
Michael Locasto | Instructor | mel2008 | 15:30 - 17:30 :: Wednesday, CSB 522, or by appointment |
Lauren Wilcox | TA | lgw23 | 13:30 - 14:30 :: Tuesday & Thursday, TA Room |
Sambuddho Chakravarty | TA | sc2516 | 18:00 - 19:00 :: Monday & Wednesday, TA Room |
Meetings: Tuesday & Thursday 17:40 -- 18:55, 833 S. W. Mudd Hall. Improve your heart rate -- take the stairs.
Course Texts: |
For the text books, remember that B&N usually offers same day delivery in Manhattan. You can also obtain them directly from the publisher (OReilly), Amazon.com, or the school bookstore.
Lecture Notes and Course Schedule: |
Date | Topic | Assignment(s) Due | Notes |
January 17 | Course Overview | ||
January 19 | Computer Organization [review 1] | ||
January 24 | Digital Logic, Boolean Algebra, Binary | Read "In the Beginning..." | alu.jpg |
January 26 | Essay Discussion, Digital Logic, ALU operation | Assignment 1 | |
January 31 | Assembly Language, FDX-cycle [review 2] | ||
February 2 | Intro to Bash and CUNIX | Read Chp1, Bash Basics, in LTBS | CUNIX notes |
February 7 | Bash Commands, Intro to HTML [html review] | Assignment 2 | fun with Bash |
February 9 | Intro to Javascript [review] | [hello.html, dec2bin.html] | |
February 14 | Variables and Strings | HW1 | cscu.jpg, hw1page.pdf |
February 16 | Arrays | Read Chp1 (pp 1--25) in JS&DC | [strings.html, print-array.html] |
February 21 | Control Flow and Math | Read Chp3 (pp 50--63) in JS&DC | math.html |
February 23 | Functions [review] | Read Chp4 (pp 80--101) in JS&DC | simplefunc.html |
February 28 | Recursion | recursion.html, towers.html | |
March 2 | Review for Midterm | ||
March 7 | Midterm Exam | ||
March 9 | Video about Open Source and Linux | HW2 | |
March 14 | Spring Recess | ||
March 16 | Spring Recess | ||
March 21 | Midterm answers | hangman hint | |
March 23 | Languages and Levels/Assembly | sh.c, add.c, add.s | |
March 28 | Operating Systems | ||
March 30 | No meeting | (optional) attend | |
April 4 | OS (cont.) | Extra Credit | |
April 6 | Scheduling Algorithms [review] | ||
April 11 | Networking & Internet | ||
April 13 | Security | ||
April 18 | Presentations 1 | HW4 due | |
April 20 | Presentations 2 | ||
April 25 | Final Exam Review | ||
April 27 | Final Exam | Mudd 833 | 17:40-19:00 |
Course Policies: |
The point of this course is your intellectual enlightenment and enjoyment. I want the course to run as smoothly as possible, so I encourage feedback on both positive and negative aspects. Feel free to drop by my office, send email, or leave a note.
Your grade is based on 1000 points and is split according to the following schedule:
Class participation counts heavily towards your final grade. I expect and encourage thoughtful and lively participation and discussion. I strongly encourage you to use the class web discussion board to communicate with the TA. This BBoard is not the one in Courseworks. Refer to the link at the top of the page.
Refrain from posting solutions or questions that encode a solution. DO ask questions that would likely be of help to your classmates. If you have a question, it may have been answered on the board already, so please check before you post a "me too" question.
I typically DO NOT scale or curve grades unless there is a classwide epidemic of failure. Plan your work and effort based on the assumption that there will be no curve, but don't panic. The point of the course is to reward you for learning, not penalize you for not learning.
You can contact me via email, but please start your email's subject
with the string [COMS 1001]
; otherwise, I will likely not
see it -- I get a lot of email. Please refrain
from emailing us technical questions directly; instead, use the BBoard,
as we monitor it frequently.
You should save direct emails for personal discussions (your grade, etc.).
You can encrypt your email to me if you wish, using my
GPG (GNU Privacy Guard)
public key.
Keep your email short and to the point. I'll probably ignore it if it is
longer than one or two paragraphs.
Please turn off all cell phones and other noise-making devices.
There may be unannounced quizzes. They will count toward your class participation and cannot be made up.
While collaboration on homework and projects is greatly encouraged, your answers must be original. No collaboration is allowed on the final or midterm. Students collaborating on assignments must clearly list with whom they worked. If your answers look the same or I feel that one person did the work and the other copied, I will treat the incident as plagiarism, give both students a zero, and forward the matter to the Dean. The bottom line is that general discussion is welcome, but specific solutions cross the line.
Cheating and Plagiarism are absolutely forbidden. I will assume that you have read both the Computer Science Department's Policies and Procedures Regarding Academic Honesty and Columbia's Engineering School general Policy on Conduct. Retribution and penance are swift and severe. Again, I urge you to read the policies for your own good. It is almost absurdly easy to discover cheating, and often difficult enough to do a good job camouflaging the cheating that you would have saved time just doing the assignment.
No late work will be accepted.
Grievence procedures: If you feel that grading was unfair, you must follow this procedure in order to document your case and bring it to a swift and fair conclusion. The policy is meant to give you a fair shake without wasting the TA or professor's time. This is a classic tradeoff; computer science is all about tradeoffs.