CS W1001-01 Introduction to Computer Science
Homework 0 (4 points)
Getting started with your computer account
We would like to get the semester
off to a flying start! So, what class would be complete without an
assignment asking you to write an essay describing what you did over
break? Answer: this one. Rather, we want you to get
started using the
computers at Columbia, and UNIX in particular!
For Homework 0, we would like you to:
- Get an AcIS extended account.
- Try out a variety of UNIX commands.
- Start using Pico
- Start using the web
- Send email using Pine (or your email program of choice).
Due Date:
Tuesday, January 25. For this assignment only there
will be a grace period of one week, since people
are getting settled in and some join the class late.
However, you are strongly advised to do this short homework assignment
by the earlier deadline
since, on that day, the next homework will
be assigned (and due two weeks later).
Reading:
Chapter 1 of "An Invitation to Computer Science." Take the time to
read this chapter carefully. It builds the foundations for the field
of computer science and motivates all the work we will do this
semester. I think you will enjoy it since it includes some pretty
deep concepts. Exercises: After reading the chapter, look at and
think about exercises 1-6 (you are not required to hand in their
solutions).
Things to try on your AcIS account:
- Go on the web to the course home page to see the office
hours of the TAs: http://www.cs.columbia.edu/~evs/1001/ -- It is
recommended to work on this and all assignments in the lab when a TA
is there so you can get help if and when you get stuck.
- Go to http://www.columbia.edu/acis/publications/handouts.html
to see what helpful handouts AcIS has available; get the ones you might need.
- Explore the topics in the online UNIX tutorial, by typing
"tutor". (This and the commands below are at the (Unix) dollar sign
prompt.)
- "mkdir W1001" will create a space (directory) for your work in
this course
- "cd W1001" will go to that directory
- "pwd" will show you what directory you are in ("print working directory")
- "cp ~es66/W1001/dontreadthis ." will copy a file from my directory to yours (don't forget that "extra" period at the end, and the space right before it!)
- "ls" will show you there is a new file in your W1001 directory
- "cat dontreadthis" will show you the contents of the file. If it
goes by too fast, try "more dontreadthis".
- Don't read it!
- Just kidding.
- Get the AcIS handout about Pico and use Pico to edit a file
in your W1001 directory. Name this file hw0, or something that makes
sense. You will type all your answers to this homework in that
file, and then send it to a TA.
- Optional: EMACS is a more sophisticated editor than Pico.
Most students of 1001 will use Pico to edit their assignments (e.g.,
html documents or computer programs). However, if you are interested,
or if you may continue programming html or Java after this semester,
EMACS makes a lot of things faster and more convenient. The big minus
is that EMACS takes a lot longer to learn -- everything you want to do
is some kind of control-character code. To find out, start up EMACS
(type "emacs") and run the EMACS tutorial (control-h t) to learn
EMACS. Also, AcIS has a handout overviewing the main commands.
- Type answers to the following questions in your file:
- Provide the answers to at least two of the puzzles from the
"dontreadthis" file. Feel free to get as much help from anyone you
want on this particular exercise. If your friend reads one out
loud, sometimes you can tell what they are saying before they do!
Also, it helps to repeat it out loud, faster and faster.
The ones further down the list are more difficult.
- If your home page on the web linked to home pages of 5 friends,
and each of them linked to 5 friends that you don't know,
and so on and so on, how many different people could I get
to from your web page with four clicks of my mouse?
What about with 10 clicks?
Hint: with one click,
I could get to one of a possible five. With a second click, I could
get to one of a possible 25.
Show your work.
- Compute who your TA is. Do this by multiplying together the day
of the month you were born, the month you were born
(e.g., March is 3) and the last 3 digits of your student ID. Then
divide that number by 5. What is the remainder? The remainder is
called the modulus, and it is useful in many computer science
problems. In this case it should be between 0 and 4. This number
determines who your TA is. 0: Boyle, 1: Shen, 2: Clem,
3: Solomon, 4: Simin.
Please show your work. By the way, you may be
switched to a different TA soon, due to administrative
shuffling (in which case you will be notified), and in any case you
can always visit the office hours of any TA. If you want to
switch to a TA with more compatible hours, wait a couple weeks before
requesting this, since the office hours of TAs are only tentative at
this time.
- Write a couple sentences for your TA describing what you personally
hope to learn from this course, what you find most intriguing
about computer science, and what you find most intimidating. This will
be a nice thing for your TA to hear about.
- Try "man man" at the Unix prompt. Now, use the "man" command
to figure out what a UNIX guru means when she says that "less" is "more".
Hint: "less" and "more" are Unix commands.
- "Hand in" your answers by emailing them to your TA.
The course web page has each TA's email address.
Use Pine (or your favorite mailer) to send it -- you
can use the control-r command (hold down the control key and press the
r key at the same time) in Pine to read in a file.
email: evs at cs dot columbia dot edu