Homework 1
In the beginning...

out: 8/31, due by midnight 9/12

Updates

  • 9/4/2011 The survey is available. Click on the Course Documents button on the left to get to it. If yu have questions on HW1, use the HW1 forum on Blackboard.
  • 8/31/2011 We are having some problems with blackboard and the assessment survey is currently not available. We hope to have this fixed by the end of this week.

Preliminaries

  • Explore the course web site at http://www.cs.umbc.edu/331/ and http://blackboard.umbc.edu/. Become familiar with the different features that we will be using this semester (e.g. the discussion board, surveys and grade book).
  • Make sure you have a unix account on the gl.umbc.edu machines, are on the class mailing list, are enrolled in the course on Blackboard (see http://blackboard.umbc.edu/), and can access the submit system on gl for cs331

To do

  • First, take the first assessment survey, "What programming languages do you know" on Blackboard, which will give us a little background information. You will find this by clicking on the Surveys button on the 331 backboard page. (5 points)
  • Next make a post in the First Post thread of the Welcome to 331 forrum on Blackboard. (5 points)
  • Read chapters one and two in our text book on the history of programming languages.
  • Read Paul Graham's short essay The Hundred-Year Language.
  • Write short answers to the following questions and submit it using the UMBC submit system on gl. Provide a single document that is either a pdf file (prefered) or a plain text file.
    1. Paul Graham made some predictions (now seven years old) about what popular programming languages will be like in 2103. Of these, describe the ones you find most and least believable in a few paragaphs. (20 points)
    2. We usually think of programming languages as allowing us to specify proceedures that can be carried out by computers. Describe the concept of a non-proceedural programming language and give at least two examples of languages generally considered to be non-procedural. (10 points)
    3. Describe the most important contributions that the programming language Algol made in a paragrph or two. (20 points)
    4. Your roommate claims that it's no longer neccessary for computer science students to learn low level languages like assembly or even C because we have much better high-level languages like Java and Python that allow programmers to be more productive. Explain why you agree or disagree with her. (20 points)
    5. Another classmate believes that the current collection of high-level programming languages (C, C++, Java, C#, Python, and Perl) are all anyone will every really want. She doesn't expect significant new ones to be developed and to become widely used. In a paragraph or two, explain why you agree or disagree with her. (20 points)

The Submit System

Submit a single file containing your answers to questions one through five using the submit command on the gl system with course cs331 and project hw1. The format can be pdf, html or txt. Please name the file hw1.xxx where xxx is an appropriate file extension for the document type (e.g., pdf, html or txt). You can experiment with the test project if you like.

$ submitproj cs331
The following projects are defined for finin's cs331 class:
test     this is just for testing
hw1    Homework one

$ cd 331/hw1

$ ls
hw1.pdf

$ submit cs331 hw1 hw1.pdf
It seems you have already submitted a file named hw1.pdf.
Do you wish to overwrite? (y/n):
y
Submitting hw1.pdf...OK

$ submitls cs331 hw1
total 8
drwxr-xr-x 2 finin faculty 2048 Mar 23 20:16 .
drwxr-xr-x 47 finin faculty 2048 Mar 23 20:08 ..
-rw-r--r-- 1 finin faculty 3745 Mar 23 20:18 hw1.pdf