Com1204, COM1370, Summer 2003 - How to do projects
Professor Futrelle -- College of Computer & Information Science, Northeastern U., Boston, MA
Updated 22 June 2003
Introduction
The projects will be organized in similar ways in both courses, though
the details of the assignments will differ.
In both courses, the following will be required:
-
Every student in charge of a group's material and code
in either class must have a CCIS account.
This is because we have to be able to access and run your code
on our CCIS Unix system (Sun Solaris).
If you need an account and don't
have one, get a form, read the directions, set up your account on
a Sun machine (or by remote login) and turn in the signed form,
in that order. Check to see when your account is activated. You won't
get a notification.
- Each student will work in a team of three or four students.
The team
makeup and assignments will be put together as follows:
- The project groups have been chosen, by you, as of Thursday, June 19th.
Be sure you know who all your group members are and be sure you have
their email addresses. Having their phone numbers or IM IDs couldn't
hurt either.
- On Sunday, June 22nd, I am posting the Project Topics; get them
via the course homepages.
- We'll discuss the topics on Monday the 23rd.
Each group will come up with a list of five preferred projects,
in rank order, from #1 to #5, to be handed in at the beginning
of class on Wednesday, June 25th. I will immediately run a lottery
to decide which group gets which project.
- All programming projects must be written in Java and will be
required to compile and execute correctly on the CCIS Sun Solaris systems,
currently running Java 1.4.1. This is the only arrangement that will
allow us to grade your work in a uniform and efficient manner.
(There are 60 students in each course.)
Do not develop your code elsewhere and assume it will work without
problems on the Sun systems. It is your responsibility to ensure that
it does.
- Every group will have a project website that we will use to
access your reports, java source, compiled code and javadoc documentation.
We would strongly prefer that the website be on the CCIS systems.
-
We will pay attention to your English, and if you write sloppily,
you will lose some credit. Writing will be important in whatever
career you pursue in the future, so pay careful attention to
practicing and improving your writing.
- If you would like to keep your website and code private, then
here are some guidelines that will enable that, at least on the
CCIS Unix systems:
All Java code must be on the Sun systems so we can execute it.
- Create a .www directory in your unix home directory; you should
already have such a directory. ls -l on the directory should give
permissions: drwxr-xr-x, readable and executable by others is the
primary point, the rightmost r-x. Use mkdir to create directories.
- In your .www directory create a directory which is either
com1204sm2003 or com1370sm2003 (or both, if you're taking both
courses ;-( This directory should have the same drwxr-xr-x
permissions.
- In this directory, create a pub/ and/or a priv/ directory.
The pub directory should have the same drwxr-xr-x permissions
as before. For priv directory, restrict the readability using
the command:
chmod go-rw priv
If you then execute
ls -ld priv
you will see the permissions:
drwx--x--x
so the directory is executable but not readable.
- cd to the priv directory and do the following relatively secure
thing. Create a directory whose name is of the form priv123456
but with a "random" choice for the six digits. (I often use the last
six digits of some randomly chosen number from the phonebook to
choose such numbers.) If, for example, you choose priv943562
then this is the directory name that you must mail the grader,
Ms. Shao,
mailto:myshao@ccs.neu.edu.
And you must do this early in Week 2 of the course, the week
ending June 27th.
The "priv123456" directory can have the usual drwxr-xr-x permissions.
- In your "priv123456" directory (using your digits), create
an index.html page that tells us where any of your private
pages are and where any subdirectories are that hold any code
that you're handing in. Anything that you want only Professor
Futrelle and the grader to have access to.
This index.html page should be readable by all, e.g., permissions -rw-rw-r--.
All code should have indications in it
of which students designed, coded, tested and documented which parts of it.
You should realize that no one can access your index.html page or
any subdirectories, because your "priv123456" directory name is
unguessable. This is an adequate enough security system for our
purposes. I use it for many private web directories for various research
groups on campus that I'm involved with.
- In your pub directory you should place a public index.html page
that looks like this.
Whichever design you use, with pub/ and/or priv/ directories, you
must be sure that your group's reports are available by midnight
on the three due dates for your project.
See the course schedules for these dates,
COM1204 schedule,
COM1370 schedule.
- One final point: You should have compiled versions of your projects
for us to run. But if you generate or write to any files as part of
your system, then it would be best to put your code in a private location,
since you need to make the directory writable by others. Another possibility
is to set up a subdirectory for these files that is writable. Once there's
any writable directory that anyone can find, those people can write to it
and delete anythign there or fill it up to your quota limit.
But if any writable directories are "hidden" from the world, there should
be no problems.
- The point of all this organization is that there will be a location
for your three reports that we can monitor (and grade!).
The grader will make up two private web pages
for her and my use that will have links to the public and private
index pages for every project in each class.
The directions above will be discussed and refined in the first weeks of class.
Go to Futrelle's Teaching Gateway
Return to Prof. Futrelle's home page