18-649 Project F.A.Q
Last updated January 12, 2009
*Please submit all project-related questions to
-- 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.
- You should send email as soon as you know there will be
a late submission. If the TAs have already graded your ontime
submission when they received your email, they will NOT regrade your
late submission.
- You should send the second email as soon as your late submission
is complete so that the TAs know they can lock your late
directory. The late penalty increases daily, so the sooner you
notify the TAs, the better!
- Be sure to send all emails to the staff list, not to an
individual TA.
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:
- A zip file or tarball containing your entire source code tree
- The exact command line you were using to invoke the simulator
- Any input files you were using
- A description of how the problem manifests itself and the
approximate time during the simulation when it does so
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:
- Your group is responsible for making their code compatible with
the latest release.
For releases within 48 hours
of the deadline:
- If you elevator will function correctly with the earlier version
and you choose not to update it, then you must make a prominent note in
your portfolio documentation indicating which version of the code your
submission is compatible with.
- As noted above, you are responsible for the correct function of
your simulation. If you choose not to update your code to the
latest release and your elevator does not pass acceptance tests (even
if it is because of the bug), then you will not receive credit
(according
to the grade breakdown for that project) for whatever parts failed to
execute properly.
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:
- PSPad - code highlighting and
tabbed interface for editing multiple files
- Xemacs
- you can install a local copy which may run faster than the
X11-over-ssh version
- Netbeans - (see below)
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.
- Java JDK - you can download the Java jdk from here (JDK 6
download). Note that the latest version is JDK 1.6. You
can get the 1.5 release here (JDK 5
download). If you use the 1.6 release, just be sure to test
your code on the cluster before turning it in to make sure you have not
used any classes or features that are not available in version 1.5.0_11.
- Netbeans - netbeans is a full featured and powerful Java IDE
provided (for free) by Sun. You can download a Netbeans installer
that includes the Java JKD. Links are here for (Netbeans +
JDK 5) and (Netbeans
+ JDK 6). Netbeans makes it easy to compile and run the
simulator code. It also has useful features such as code
completion, on-the-fly syntax checking and refactoring tools.
Note that Netbeans is fairly memory intensive, so it may not run well
on older machines.
Here is a short tutorial on how to get the project code into
Netbeans:
- 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.
- 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.
- 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
- Dia - simple, free,
cross-platform diagram editor
- Inkscape - free,
cross-platform vector graphics editor
- Visio - MS windows only. Not free, but available on the
cluster machines.
Back to Course home page