CPS 100 FALL 1996: Assignment #1

Due: Monday, Sept. 16 by 8am

Last Date to Turn in: Monday, Sept. 23 by 8am

16 points

Part 1: News and Email (2 pts)

The purpose of this part of the assignment is for you to learn how to send email and how to post messages to newsgroups. Every Duke student is given an account on the Public Unix Clusters. If you are a new student, the account login id and password should have been mailed to you. If you have been here awhile and don't know your login or password, you can get this by visiting the Office of Information Technology (OIT) on the first floor of the North Building. The book "Introduction to the Public Unix Clusters at Duke", which is available at the Gothic bookstore, explains how to login, send mail, and read newsgroups.

You can receive help from the TA or Prof. Rodger, and from UTA's at Teer 106 and Carr 125 clusters in the evenings, usually 7-11pm every evening.

  1. Post a brief note to the class newsgroup duke.cs.cps100 introducing yourself (who you are, where you are from, what you like to do, and anything else interesting about yourself). You should check later to make sure your note is posted. Sometimes it only takes a few minutes, but sometimes it takes an hour or two.

    Your message MUST HAVE THE SUBJECT: CPS 100: (your name here)

    Your FIRST and LAST name must be on the subject line (no nicknames!).

    For example, Prof. Rodger would send her message with the subject line

                   CPS 100: Susan Rodger
    

  2. Send an email note to the graduate TA, Scot Ransbottom, and tell him what your programming experience is, if any. To find out his email address, check the CPS 100 home page. The CPS 100 home page is accessible via netscape at the URL address:
    http://www.cs.duke.edu/~rodger/courses/cps100/intro.html
    

    Your message MUST HAVE THE SUBJECT: CPS 100: (your name here)

    Your FIRST and LAST name must be on the subject line (no nicknames!).

    You should receive a reply back from Scot indicating receipt of your message. If you do not receive an email note back within 48 hours (not counting the weekend), you may not have sent the email message correctly, try again or ask a TA or prof for help.

Part 2: Programming Warmup (14 points)

For those of you who didn't take CPS 6, a Getting Started document will be available on the web page sometime Friday that will show you how to create a directory, how to create and compile a simple C++ program, etc. For those of you who took CPS 6, you still might want to look at this document as it will tell you how to setup your environment and may include some new things you didn't do last semester.

Create a cps100 directory, and in this directory create a directory called "assign1". Change into the "assign1" directory. If you did this correctly, when you type "pwd" you should see a long path name that ends with "/cps100/assign1"

In order to do this assignment, you need to copy a Makefile using the following "cp" command (don't forget the trailing period, or dot):

 cp  ~rodger/cps100/assign1/*  .

If you type "ls" you should see "Makefile", and "sample.cc". The sample.cc file is just a template file you might want to use to get started with.

For the programming problem that follows, you should use the style rules discussed in class, which includes meaningful variable names, indentation, and comments (pre and postconditions) at the top of the file and for each function. Also include your name, date, course, and purpose in a comment at the top of the program.

Problem: Anagram Solver

Write a C++ program to solve the anagram problem in the Groupwork 1 assignment. Your program should be modular and well designed. and should be in one file called anagram.cc

The input and output are described on the Groupwork 1 assignment. You can assume there are no blanks contained in a word.

Submitting Program

When your programs compile and produce the correct output, create a "README" file (please use all capital letters). Include your name, section number, the date, and an estimate of how long you worked on the assignment in the "README" file. You must also include a list of names of all those people (students, prof, tas, tutor) with whom you collaborated on the assignment. See the rules for collaboration in the CPS 100 syllabus.

To submit your programs electronically type:

    submit100 assign1 README anagram.cc 

You should receive a message telling you that the program was submitted correctly. If it doesn't work try typing ~rodger/bin/submit100 in place of submit100 above.

Extra Credit (2 points)

Your program should contain a meaningful class.

You can put the class definition at the top of the file. If you want to create separate files for the class, then you will need to create a Makefile and also submit it. Name the extra credit program anagramX.cc Typing make anagramX must work for compiling your program.

Submitting Extra Credit Programs

Follow the instructions above, but type anagramX.cc instead of anagram.cc. Also include any additional .h or .cc files and the Makefile if you created separate files.