18-649 Project F.A.Q

Last updated January 12, 2009

*Please submit all project-related questions to {email} -- thanks!

Online File Submissions (for projects)

File submissions will be made using the course AFS space.  Handins will be made to the location:  /afs/ece/class/ece649/Public/handin/ .  You should be able to access this space when logged in with your ECE username on any of the ECE systems (e.g. color machines).  There will be a separate folder for each project (e.g. project1).  Within each project folder will be a folder for each group. You will only have permissions to access your group's folder. Your homework submissions will not be viewable by the rest of the class.

File headings:

Each file you submit should contain the following information:

    course name and semester, group number, and the names and andrewIDs of all team members.

This applies to all files that are submitted for a grade, including java code files and any simulation output files.  For automatically generated files, you should investigate the -head option in the simulator.

Late submissions:

Late submissions will be treated in accordance with the course late policy.  If you overwrite or otherwise update a file, the time stamp displayed will be treated as the hand-in date and time for the entire assignment.  If you want to submit a draft and overwrite the files before the deadline that is fine. Technical glitches can (and probably will) occur during the course of the semester.  We will try to be reasonable, but it is your responsibility to submit your work on time.  You should plan ahead enough so that you can turn your work in comfortably before the deadline.  Report any problems with the submission as soon as you are aware of them.  Most technical issues, especially those avoidable with reasonable planning, will not result in an extension of the deadline.

Within each group's folder, there is an “ontime” and “late” folder. You should submit your solutions in the “ontime” folder, which will be locked by the TA's after the assignment is due. The “late” folder is provided in case you wish to submit an assignment after the “ontime” directory has been locked.

If you wish to submit late, you must send two emails. 


Bug Handling Policy

We make every effort to provide you with an accurate, reasonably bug-free simulator.  However, as you will find out, all software has bugs, so if you find a bug in the simulator, please notify us as soon as possible.  Include as much detail as you can, such as:
You are encouraged to debug the simulation yourself (to the extent that you can) and determine the source of the problem.  If you believe you have found a fix, please submit the details of the fix along with the above information.

Note that, ultimately, you are responsible for the correct function of your elevator simulation.  We will gladly work with you to identify and remove bugs from the simulation, but do not try to "game the system" by waiting until the last minute to report a bug to us.  It is in your best interest to report bugs to us as soon as possible.

Because of the possibility that there will be bugs in the simulator, we will likely be releasing newer versions of the code on an ongoing basis.  Most bug fixes and improvements will likely not affect the compatibility of your code.  However, it is possible that a change will require you to modify your code to maintain compatibility.  Therefore, we have established the following policies related to bugs in the simulator.  Note that you can always visit the download page for a history of code releases and brief description of the changes in each release.

Simulator releases at the beginning of a project

In general, we will try to wait to release a new version until the beginning of the next project.  For versions released along with the new project, your group will be responsible for making any necessary change to make their code function correctly with the latest version of the simulator.

Simulator releases between projects

If we (or one of the project groups) identifies a serious bug in the simulator, we may need to release a fix while one of the projects is in progress.  In that case:

For releases more than 48 hours before the deadline: 
For releases within 48 hours of the deadline: 


Useful Tools

Here are some recommendations and links for tools that you may find useful.  Please note that we do not support ANY of these tools or programs ourselves.  If you have a simple question or get stuck, you are welcome to come to the TA's office hours and ask, but our reply is likely to be "go ask Google".  If you are having trouble with department resources (e.g. AFS) on department supported machines, you can also send mail to gripe@ece.cmu.edu

AFS

Most on-campus Windows PCs already have your personal AFS space mounted as a drive letter.  Most on-campus linux machines use your AFS space as your home directory.  We recommend that you use the AFS space for your project development because it is easy to move from computer to computer and share code with your teammates. 

A note on privacy:
You should use the Private folder for your code.  Please read the AFS ece wiki page for information on how to add permissions that will allow your teammates to view your code.  DO NOT put your code in your Public or home directories.  Anyone with AFS access, including people from other teams, can view these directories.

You can use the OpenAFS client to access the AFS space in windows.  Sometimes this can be unreliable.  Another simple way to transfer files to AFS space is the use the 'scp' command (linux) or WinSCP (Windows) to transfer files to one of the color cluster machines like black.ece.cmu.edu (these machines use AFS for your home directory by default).

Version Control

Subversion (SVN) is a version control system that is already installed and configured on most of the campus machines.  Once you create a repository (in your private AFS space), you can check out a copy of the code, modify it, and submit your changes.  The version control system keeps track of all changes made so you can roll back or access earlier versions.  It also helps you resolve conflicts if more than one person has modified the same file.  SVN has a significant learning curve, but if you take the time to figure it out, it can provide significant benefits in helping you keep your code synchronized and up-to-date.

Text editors

The cluster machines have vi and emacs / Xemacs, which are useful text editors that can be run on the cluster machines in a terminal or over a forwarded X11 session.  If you have your AFS directories mapped to a local drive letter, you can also used any locally installed editor.  Here are a few suggestions for Windows users:

Java

All the project code development is done with Java.  In order to receive credit, your code and tests must compile and run on the games cluster machines (e.g. chess.lab.ece.cmu.local) as described in the simulation overview.  However, you may prefer to do some of your own development and testing on a local machine.  This may also be helpful if you are somewhere with a slow, unreliable, or nonexistent internet connection or if the cluster is temporarily unavailable.  Here are some links and tips to get you started.

Here is a short tutorial on how to get the project code into Netbeans:

  1. Create a new project.  Choose "Java" from the categories and "Java Application" for the type and click Next.  Choose a location and uncheck the "create main class" option.
  2. Navigate to the project directory and find the 'src' directory.  Copy the contents of the 'code' directory from the elevator simulator codebase into the 'src' folder (which should be empty if you created the project correctly).  After the copy, you should see the simulator classes appear in the project navigator in Netbeans.  You may need to expand the "src" folder to see them.
  3. Right click on the project name in the navigator pane and select 'properties'.  Go to "Run" and set the main class to 'simulator.framework.Elevator'.  Note that you can also set command line arguments here, and specify the working directory (useful if you want to use a folder which contains your test files).  The default working directory is the project directory.
Note:  When you submit code to be graded, you must submit the source code only.  You may NOT submit your Netbeans project.  It's up to you to understand which parts of the project are the project source and which parts are the related to the Netbeans IDE.  If you feel you cannot do this, then you should do your development using the cluster machines.

HTML / Webpage Editing

There are numerous HTML editing tools available.  One choice is the SeaMonkey suite (formerly Mozilla Suite) which includes a WYSIWYG editor (the "compose" feature).  You can donwload Seamonkey here

Image Editing Tools


There are several choices for creating and editing UML diagrams.  You will find it easiest if you pick a tool that is available to all members of your team and use that tool exclusively.  This makes it easier to edit the source files for your images later in the project.  Here are a few suggestions


Back to Course home page