With your host, Professor Eric V. Siegel
Eric Siegel now provides predictive analytics services at Prediction Impact, Inc., where predictive modeling and data mining are applied to gain customer intelligence.
(email: evs at cs dot columbia dot edu)
Office: 703 CEPSR
Phone: (212) 939-7112
Office hours: Tues 4:00-5:00 (starting in 1127 Mudd, proceeding to office, usually by 4:15), Wed 3-4.
A computer sits in your home like a TV, radio or toaster. These things are all nice and useful for doing what you need to do. You can watch TV, listen to your radio, make toast with a toaster or write a paper with your word processor. These things are just appliances, right? Well, the computer is different: it is an all-powerful, general purpose devise that can follow any set of non-physical instructions you can imagine. Your toaster follows only one instruction: "toast." Your TV follows a few instructions, such as "turn on," "turn off," or "change to channel 9." Your computer can take a huge set of very specific instructions to do all sorts of things. People have already given it instructions to do things you want, such as surfing the net and writing a paper on a word processor. But if you like, you can create instructions for it to do something completely unique that only you could come up with. In this class, we will learn about computers not only for the things they've already been programmed to do, but also in their full potential, as general-purpose problem-solvers.
A computer is a general-purpose machine to perform any algorithm.
An algorithm is a precise, specific set of instructions to solve some problem (we will define this more formally in class). One example algorithm is the set of directions to drive from 116th and Broadway to the corner of Christopher and Sullivan. Other examples include the detailed processes you follow to add or multiply two numbers by hand.
How can we carefully break down the notion of "following directions"? At first this seems like a child's game, but before you know it, we have identified fundamental questions that must be answered before building or programming a computer. For example, are there some tasks that are impossible for a computer to carry out, that is to say, for which there is no set of directions that will succeed?
Computer science is the study of algorithms. In this field of study, we ask abstract questions that apply both to the real electronic computer that holds you plane reservation, as well as to an imaginary spring-loaded device that uses cogs, wheels and levers to multiply numbers (yes, that is possible):
The purpose of this course is to provide an overview of computer science. No previous experience is required. However, a willingness to try things out and to explore is essential.
Topics. In just one course we will touch upon all of these topics:
Special notice: This course cannot be taken for credit after taking W1003, W1005 or W1007. If you have already taken one of these, you should consider W3101, W3131 or W3139.
Course structure: There will be 2 required lectures each week. There will be homework assignments, a midterm, and a final exam. The class work-load (including attending the lectures) is expected to be approximately ten hours a week.
Text: An Invitation to Computer Science (second edition), by Schneider and Gersting, available at Papyrus Booksellers on the southwest corner of 114th Street and Broadway. Please inform the instructor if they run out of books.
In addition, there will be a packet of photocopies later in the semester that you will be required to purchase from a photocopy store in the neighborhood.
Computer account : Each student is required to obtain an extended Columbia AcIS (Academic Information Systems) student machine account. To get an account, go to the AcIS business office (Philosophy 102), as soon as possible, to get that process started. This account is included in the regular fees for Columbia University undergraduates. For all other students (graduate school, Barnard, Teacher's College, etc.), there is a $45 fee (as of Spring 1998). AcIS has some courses scheduled to get you started on their systems. You can find out more about AcIS accounts, Unix, email and other topics at http://www.columbia.edu/acis/publications/handouts.html
A basic, email account is not sufficient. This is because the lab with TA office hours (251 Engineering Terrace) only works for extended accounts. That lab also has the Excel Spreadsheet, needed for HW #1, and may also have software needed in future assignments. Besides, it is clear that you would need an extended account to have the disk space, printing abilities and time needed for this class, at least to do it conveniently.
You are encouraged to make use of AcIS tutorials (free of charge), especially if you have never used AcIS, and double-especially if you have never used email and/or the web. In class we will not cover all the details of using email. Go to http://www.columbia.edu/acis/training/ (or physically to Philosophy 102 (if that is possible (get it?))) for the training schedule.
Teaching Assistants: You will be assigned to one TA, who is your primary contact for questions, and is generally the first place to go for help. However, at any given time, you are encouraged to ask questions of any other TA if one is more accessible. Note that some questions can be conveniently asked and answered by email. Your professor will also be available during office hours and through e-mail. Since your TA is the one who graded your homework, any issues regarding the assigned grade should first be discussed with the TA. If these issues are not resolved, discuss first with the head TA, and then the professor. Please feel free to go over your homework with your TA.
Please place your TA's name at the top-right of all homework submissions. The electronic submission is due by the deadline for everyone. The hardcopy must be handed in to Eric in class. Electronic submission and hardcopy submissions must be identical.
Answers to the homeworks will not be available -- when there is something you do not understand from TA feedback on your homework, you must visit a TA to learn about it!
The Head TA: If and when you have a question, issue or problem that is not easily resolved with a TA, you should email or speak with the head TA. This can include questions about the content of this course, or administrative questions such as, "Who do I ask if I want to change to another TA", "My TA was half an hour late to her office hours", "I still haven't gotten my graded homework back", "During the office hours I can visit, the TA is always swamped with questions." In general, the head TA is the supervisor and administrative coordinator of the other TAs, and also shares in some of their duties. One time to find the head TA is to visit her or his office hours.
Grading : 60% homeworks, 15% midterm, 25% final. To receive a passing grade, you must complete satisfactory work in every area. In other words, you must receive passing grades for your homework, a passing grade on your midterm, and a passing grade on your final.
Late homework: Late assignments will only be accepted in extreme circumstances. Otherwise you will receive no credit. However, partial credit will be considered for all incomplete work that is turned in on time.
Collaboration on homework: Discussion of material covered in class is strongly encouraged. It is acceptable to help or receive help from other students concerning general concepts and using AcIS computers. Working together can be a great way to do the work, but be careful that one partner does not do a disproportional amount of the work; make sure you both come out understanding everything. Everyone is responsible to learn the topics in this course; you will be tested on the midterm and final exams. The best way to learn is to do the homework.
If you collaborate on problem sets or programs, such collaboration must be explicitly indicated and may be held to a higher standard. This should be indicated with a signed "Statement of Collaboration" containing statements such as:
Advice and Encouragement: If you are new to computers or new to the type of computer system used at Columbia, you will experience some frustration and discouragement at first. In fact you may experience a lot of frustration. There is a lot to learn, and many details to get right before anything works.
But the rewards are great. When you successfully accomplish a task that has formerly stymied you, it is a wonderful feeling. With each success, you will overcome your fears and inhibitions about computers. A computer is the ultimate servant, so enjoy your full reign of control over it.
One big secret to success is to ask lots of questions. There are times when you should just figure it out on your own, but most often when you are stuck, it pays to ask for help. Ask a lab consultant (if it is a general question that any user of AcIS might need to know), or a TA (for any and all questions). Send questions at any time of the day with email, or go to some office hours.
World Wide Web : This handout is available on the web at http://www.cs.columbia.edu/~evs/1001/, and will be updated periodically to include info regarding homework assignments, office hours, and links to other course materials. Students are required to log in and check the page at least once per homework assignment to make sure they are up to date with any information pertaining to the course since this web site is the primary means of getting information to you outside of class.
Open Door Policy: We would like the course to run smoothly and enjoyably. Feel free to let us know what you find good and interesting about the course. Let us know sooner about the reverse. See us or send e-mail.
Fall 1999 homework assignments
On-line resources for programming concepts
Announcements and supporting web links (mostly reverse-chronological):
Also, type the following at the dollar sign: " export LD_LIBRARY_PATH=/usr/openwin/lib"
Please contact a TA immediately if it doesn't work.
email: evs at cs dot columbia dot edu