computer organization
c m s c 311  
f a l l   2 0 0 2  

Project #0

Due Wednesday, Sept. 18, 11:59 PM (just before midnight)
Late Due Date Wednesday, Sept. 25, 11:59 PM (just before midnight)

Posted: September 6, 2002


Read this section frequently to check for updates/corrections/clarifications to the projects. There will be some, because the project description is rather rough right now. However, the methods should be more or less correct.


The goals of the project are:

Academic Integrity Statement

Please note that *all* programming projects in this course (including this one) are to be done independently or with the assistance of the instructional staff of this course only, unless otherwise specified IN PRINT by official webpages.

Please review the policies outlined on the class syllabus concerning the use of class computer accounts and concerning the University's Code of Academic Integrity. The instructors of this course will review the programs submitted by students for potential violations of the Code of Academic Integrity and if it is believed that a violation has occurred it will be referred to the Office of Judicial Programs and the Student Honor Council.

Hardcoding is considered a violation of academic integrity

Collaboration Policy

Should colloboration be permitted, you will need to pick a partner (groups of 2) or partners (3 or more), depending on the restrictions of each individual project.

Only one person should submit the project, and have all the names on it. Suppose a project allows teams of 2. The two people can work together on a team, and code on the same project. However, teams are expected not to communicate with other teams. Thus, you should treat each team like an "individual" when it comes with helping other teams.

Collaboration on P0

You may work in teams of 2. You should inform the instructor and/or TA who your team members are, and do so in writing, with both the members having signed a paper. The paper should say "For project 0, xxx and yyy will work on the same team. We understand that working with other teams is a violation of academic integrity."

The project is sufficiently short to be done individually. So, you do not have to work in teams.

Should you work in teams, you should try pair programming. In this case, both of you agree to code side-by-side. One person types, the other person looks it over. After a while, you switch off. By discussing what you will do, you will avoid bugs, and hopefully code quicker.

Project 0?

Why is this called Project 0 instead of Project 1? Traditionally, at Maryland, Project 0 is a simple project meant to get you started. Usually Project 1 is more typical of a project in terms of size and complexity.

dce_login: Changing Password/Shells

In order to change shells or passwords or finger information, you must authenticate yourself. If you use "telnet", this isn't all that important, since it doesn't care. However, using "ssh" requires authentication, otherwise changing your password, finger information or default shell fails.

To do this:

  1. Log into your account using ssh (secure shell).
  2. Type: dce_login, and hit return
  3. This will ask for some "Principal" name. Type in your username again.
  4. Then, it asks for the password. Type in your password again.
  5. This appears to start a new shell. You can then change your password by typing passwd (NOT password), hitting return, and changing the password.
  6. Once you are done, type exit. This exits out of the shell, and back into the previous shell.
  7. Then, type logout to exit your ssh session.

Changing Finger Information

You should change your finger information. If you use ssh to login, you must login a second time using dce_login (it will request your username and password a second time, and open a new shell). If you use telnet, you do NOT need to dce_login.

To change your finger information, type:

You should ONLY change your name. Please have your first and last name as you are registered in the system. For example, if you are registered as "Samir Khuller", please use "Samir Khuller" rather than "Sammy Khuller" or "Biff Khuller", even if you prefer to be called "Biff".

Ignore the parts that ask you for your phone number, office, etc. Just hit return, and don't fill anything in.

In addition, you will probably also want to change your password.

Notice the unusual spelling of "passwd".

This will ask for your original password, then your new password, and the new password again. If you use "ssh", it may take a day or so to take effect (it might work right away though). If you use "telnet", the changes should be immediate.


You will be given a file called Tokenizer.h. The specifications are in the following link.

Tokenizer Specification

Implement the methods. You may add helper methods, if you want.


You may assume



You may use STL or any other features you want, provided it compiles and runs under either cxx or g++. A driver will be provided, so you can submit.

How to Submit

A driver will be provided soon to partly test your code. Details will be provided soon.

See the class syllabus for policies concerning email
Last Modified: Wed Jun 5 10:38:37 EDT 2002
left up down right home