Once you have acquired basic skills in working with computers,
the best way to sharpen those skills and to learn how to solve
problems using computers is by working on demanding projects
which draw on the skills that you have and which force you to
acquire new knowledge and skills.
There are two major types of projects: development projects and
research projects. Development projects are ones
in which you design and implement a solution to a problem
for which the tools and techniques needed for solution
are well understood before undertaking the project. Research
projects are ones in which you define new problems and
in which you discover or develop new tools
and techniques needed to find solutions. In Computer
Science the line between research and development
can be blurry, but the basic idea is that in
research we find or develop something truly novel,
while in development we refine things that are already
reasonably well understood. (See
www.epa.gov/ogd/recipient/glossary.htm.)
This course is oriented around projects. In the real world, when
you work on a real project, you have to do a lot of work to
figure out precisely what you will be doing and to
gather the resources you will need to accomplish your
tasks. Therefore, for many of the assignments in this
course you will not be told everything you need
to know to complete them. Search on the web. Talk
to your classmates and other people. Put a lot of time
and energy into the work on your projects.
In the Fall semester Students were be given three weeks to establish
the infrastructure they
need to work on projects, to form groups and to prepare
detailed project proposals. For the Spring semester, the work will
be at a much faster pace. You are expected to begin the semester
will a well-defined project and to complete it well before
the midterm while also working on the project for which
you accepted a handoff. You will handoff your second project
before the midterm and both return to your initial project
a undertake a third project.
Each student will take the lead on at least one distinct
project during the academic year. A student who
is in the Project-Oriented Computer Science course (as
opposed to the Project-oriented Computer Science
Research course) must be a leader on a major
distributed application development project
and a leader or active team member on at
least two additional projects. A students who is in
the Project-Oriented Computer Science Research course
will take the lead on a major research project and must be a
consultant to at least one other project.
All materials produced for projects in this course
must be made available on the web under open source
licenses, preferably the GPL.
Assignments
Return to this page often to find new assignments and clarifications
to old assignments. The list begins with the assignments from the
Fall semester.
Acquire your text books, lab notebook, computer, disk and
other needed supplies.
Find the sourceforge web site and learn how to
start a project on sourceforge.
Establish a course web page in your account
on mcs.dowling.edu, with a link for a copy
of everything you put in your notebook as a blog. As you
create each project, you will establish a sourceforge
web page and add a link from your course web page to the
sourceforge web page.
Download and burn, or otherwise acquire CD's of
some open source unix evironment to use as a development
environment for your projects, and be prepared to discuss
your particular choice of software platform with your
classmates.
Find and read the GPL. Be prepared to discuss
it.
Discuss your ideas for projects with your
classmates and gather materials to use in presenting
at least two alternate project proposals.
You will start the work on the tasks specified
above in class, but you will not have enough time to
to the work properly unless you also devote several
hours outside of class.
You should now have your text books. Read them. You will be given
specific reading assignments to help to organize our discussions, but
you are responsible for reading widely and with a critical eye. For
each assigned reading, you are to prepare notes in your notebook
on what you have read and on how you would address the exercises
and problems you encounter. Those taking only POCS II and not POCS I
and others may have been through this or similar material before.
Those people are not excused from doing this work. Because
they have been through this material before, this should be
a review which goes very quickly for them.
Read Gustafson's SE through page 71 (chapters 1-4).
Read Brooks through page 50 (chapters 1-4).
Read Hubbard's Java through page 119 (chapters 1-5).
Prepare a solid, timed 15 minute presentation with
a web page (in your own account on mcs) and handout (6 copies)
introducing yourself and the projects you are considering.
Describe your skill and interests. Classify yourself as:
leader, follower, or lone wolf. Classify yourself as: Very organized,
somewhat organized, or not very organized. Classify yourself as: Highly
skilled with technology, somewhat skilled with technology, or not very
skilled with technology. Describe your project from the point of
view of users, saying what will be done for whom, and why this
work is needed. You are not to go into details of implementation at this
time.
Start building your development platform as soon as you have
enough pieces to get started. Keep detailed notes in you notebook
on what happens, and start or update your blog with this
information.
If you are in POCS II, read Valiela, chapters 1-4.
If you are just taking POCS II, you are still responsible for
having a solid knowledge of Software Engineering and of Java, so
you must be ready for quiz questions on these subjects.
Prepare a solid, timed 15 minute presentation of a needs analysis
and feasibility study of your project. You must include a brief
discussion of what the project is about (no more than 2 minutes),
and then spend half the remainder of your time showing whar role(s)
your project plays in what system(s), satisfying what needs for
what user(s). The remainder of your time should be spent
showing that there is highly likely to be a feasible way to
implement this project. This does not mean you need to have
a final design for your implementation of the project, just
that there is at least one practical way to implement it.
This is a very short time in which you will need to present
a great deal of technical material. You must organize your
material very carefully as a web presentation with a handout
and you must practice before hand, or you will fail to hit
your time mark. You need to have a sound idea (a model) of
the structure of your project around which to structure
your talk, but the model is just a means to the end: the
needs analysis and feasibility study.
Prepare a preliminary estimate of the infrastructure
you will need to do your project and start pulling the
pieces together. Update your blog with this information.
There are no classes at Dowling on Monday 3 October 2005, Tuesday
4 October 2005, and until 5:00 pm on Wednesday 5 October 2005. Therefore
the next assignment is due on Thursday, 6 October.
Assignment #4, assigned Tuesday, 27Sep 2005, due Thursday, 6 Oct
2005.
Read pages 85-137 (chapters 8-11) of Brooks.
Read pages 127-217 (chapters 9-14) of Gustafson.
Read Hubbard's Java 238-335 (chapters 10-14, App A and B).
Read Hubbard's C++ 1-155 (chapters 1-6)
If you are in POCS II, read Valiela, chapters 5-9.
If you are just taking POCS II, you are still responsible for
having a solid knowledge of Software Engineering and of Java, so
you must be ready for quiz questions on these subjects.
Prepare a solid, timed 15 minute presentation of a preliminary
system design for your project with detailed tasking and a
preliminary timeline. You must have the members of your
team identified and each task must be assigned to appropriate
people. You must have your sourceforge project established.
There are no classes at Dowling after 5 pm on Wednesday, 12
October 2005 and all day Thursday, 13 October 2005
Assignment #5, assigned Thursday, 6 Oct 2005, due Tuesday, 18 Oct
2005.
Read pages 141-206 (chapters 12-16) of Brooks.
Read Hubbard's C++ 156-341 (chapters 7-15)
Prepare a dense, detailed web page comparing java and C++ and explaining the
important differences, and add it to your web page. Be prepared to present any
or all of this material in class, referring only to this web page. Email the URL
of this web page to the instructor.
If you are only in POCS II, prepare a web page reviewing Valiela. Email
the URL of this web page to the instructor.
Prepare a solid, timed 15 minute presentation of an updated
system design for your project with detailed tasking and an
updated timeline showing progress and slipped tasks.
Assignment #6, assigned Tuesday, 18 October 2005, due Tuesday,
25 October 2005.
Be prepared for your oral midterm project status presentations starting
on Tuesday 25 October 2005. Each of you will do a timed 20 minute
presentation, following by a 10 minute question and answer period.
You must use your web site on arcib.dowling.edu and your web site
on sourceforge and your notebook as the only reference materials
for your presentations. You may not make any use of any
other web sites. You must come with 6 paper copies of a
well organized briefing book on paper, one for the instructor,
one for each of your classmates and one for yourself. The briefing
book should give the URLs from arcib and sourceforge to which
the reader should refer for more information. The arcib web site
must contain a complete and current blog giving the both the
history and current status of the project. The presentation must
include the following elements:
A brief, 2 minute overview of the user external functionality
of the project.
Directions on where to find the user manual both as a web page
and as a downloadable PDF, and a brief, 1 minute discussion
of the stucture of the user documentation.
A solid, 5 minute or less presentation of the system design
showing the major development tasks to be performed with
personneol assignments.
A solid ten minute presentation of the original project
timeline, the current best revisions to the timeline, and
the status of all tasks.
A 2 minute summary of your presentation along with
credits and references as appropriate.
The presentation may have started its life as a powerpoint
presentation or the like, but what you present must
be a web page that can be viewed using any standard
browser under Linux, with a downloadable copy of
your briefing book as a PDF.
Read pages 207-292 (chapters 17-19 and the epilogue) of Brooks.
Read Gottfried's C 1-240 (chapters 1-8)
Start a dense, detailed web page comparing C and C++ and explaining the
important differences, and add it to your web page. After the midterm
and more reading in Gottfried, you will have to be prepared to present
this material in class, referring only to this web page. Email the URL
of this web page to the instructor. You need to prepare this page
even if you are only taking POCS II.
Whether you are in POCS I and II or just in POCS II, you must
learn to use TeX. Do a web seach on LaTeX, teTeX and on BibTex and
find out how to prepare a document using references in BibTeX format,
and make certqain you have the necessary software installed
in your development environment.
Do a thorough search for all the published literature relating
to your project and prepare an annotated bibliography. Add it to
your web page both as text and based on a BibTeX file. The text must
be created as a LaTeX document using the BibTeX file as the source
of the references presented.
If you are only taking POCS II, prepare a document in TeX
using the literature you gathered above discussing the major open
research issues relating to your project. These are not necessarily
issues that you will address in doing your project, but the
issues that create the context in which you are doing your
project.
Assignment #7, assigned Thursday, 27 October 2005, due Tuesday,
1 November 2005.
Read Gottfried's C 241-475 (chapters 9-14)
Finish your comparison web page of C and C++.
Put the fruits of your BibTeX effort into a web page and send the
URLs of your
in an email to the instructor. If your are only taking POCS II be sure to
include the document on open issues.
We will begin the seminar portion of the course with presentations
by members of the class comparing java, C and C++. Everyone will
speak on Tuesday.
Have your notebooks updated with notes on all your activities
related to this course (back to the beginning of the semester).
This will be graded next Tuesday. Remember, notebooks are 25%
of your grade. Failure to get a decent notebook started by next
week will cost you 12.5% of this semester's grade and 6.25% of
the overall grade for the 2-semester course. This is your
last chance to get it done. No excuses. No extensions.
Assignment #8, assigned Tuesday, 1 November 2005, due Tuesday
8 November 2005.
If you are only taking POCS II, pick one of the open issues
in your issues document and write a short research proposal
on how to address that open issue. The research proposal
needs to be written in LaTeX with appropriate references
to your BibTeX bibliography.
If you are taking POCS I and II, use your BibTeX bibliography
to start a reference manual for your project. The reference
manual needs to be written in LaTeX with appropriate references
to your BibTeX bibliography.
Post the ltx and bibtex that you have used to create the
above documents, post them on your web site and email the URLs
to the instructor.
On 1 November you will have started a seminar-style
discussion of the C-family of languages. Prepare notes
of the discussion as a web page, and add a link to
your arcib web site and email the URL to the instructor.
Assignment #9, assigned Tuesday, 8 November 2005, due Tuesday,
15 November 2005.
Go back over all the programming assignments in past
quizzes and email your best solutions to all of them to
the instructor no later than 2 pm on Tuesday, 15 November
2005. We will start going through solutions then,
and no updates to your code will be accepted after that.
If you are in POCS I and II, read Hoglund and McGraw,
"Exploiting Software," pages 1-70 (chapters 1 and 2) and
be prepared to discuss.
Work out a reliable way to backup your development
environment and do it. We will be doing capture the flag
soon, and you would not want to lose the work you have
done in building your system.
Assignment #10, assigned Tuesday, 15 November 2005, due Tuesday,
22 November 2005.
Prepare a solid, professional interim status report of your
project as a new separate web page on arcib with:
A frozen snapshot of all project documentation including
your user manual, your reference manual (if you are in POCS I and II),
your issues document (if you are only in POCS II), your bibTeX bibliography
and your timeline.
A coherent discussion of the lags and leads of the project
Short term and long term plans
Make a PDF of the entire interim status report.
Email the URLs for the status report as a web page and
as a PDF to the instructor.
If you are in POCS I and II, read Hoglund and McGraw,
"Exploiting Software," pages 71-145 (chapters 3 and 4) and
be prepared to discuss.
If you have not already done so, Work out a reliable way
to backup your development environment and do it. We will be
doing capture the flag soon, and you would not want to lose
the work you have done in building your system.
Secure your system against attack in a way that allows
you to still use it as a devlopment system. Send email to
the instructor summarizing the steps you take.
Assignment #11, assigned Tuesday, 22 November 2005, due Tuesday,
29 November 2005.
Prepare a proposal for your next project as a web page, post
it on arcib and email the URL to the instructor.
Take the materials you prepared for today and use them
to update your sorceforge web site, adding in any and all code
and documentation you have so far. You must post everything, even if it
is not working, but you should clearly identify code
that is not working.
Examine each of the SourceForge web sites of your classmates,
prepare an ordered list of the projects, organizing them by listing
the project for which you would most like to accept a handoff first
and the one for which you would least like to accept a handoff
last. Have that list with you on Tuesday.
If you are in POCS I and II, read Hoglund and McGraw,
"Exploiting Software,", 147-276 (chapters 5 and 6) and be
prepared to discuss.
If you are in POCS I and II, prepare a plan to attack
other computers in the lab and email your plan to the instructor.
DO NOT POST YOUR PLAN ON THE WEB.
By now you whould have backed up and secured your computer.
Back it up again, label you media, and bring your media
to class on Tuesday to give to the instructor for safe-keeping.
Assignment #12, assigned Tuesday, 29 November 2005, due Tuesday,
6 December 2005.
If you are in POCS I and II, read Hoglund and McGraw,
"Exploiting Software,", 277-366 (chapter 7) and be
prepared to discuss.
If you are in POCS I and II, update your plan to attack
other computers in the lab and email your plan to the instructor.
DO NOT POST YOUR PLAN ON THE WEB.
Prepare a solid 20 minute presentation on your project,
explaining the purpose of the project, the design of
the project, the current status and future plans. The
presentations will begin on 6 December.
Assignment #13, assigned Tuesday, 6 December 2005, due Tuesday,
13 December 2005.
If you are in POCS I and POCS II, read Hoglund and McGraw,
"Exploiting Software,", 367-447 (chapter 8) and be prepared to discuss.
Go back over all past assignments, complete all missing
items that were to be posted to your arcib web site and
your sourceforge web site, and post them with an
assignment-by-assignment index on your arcib web site.
Failure to do this completely by 8 pm on Tuesday 13
December 2005 will result in an incomplete for the course.
You will now "bid" on a project for which you
will accept a handoff. The price you will offer is
a certain number of hours of work on upgrading and improving
the project you are evaluating. List all the projects
in the class and for each one give the number of
upgrade and improvement hours you are offering. Email
your bids to the instructor
Bring your notebook for grading.
For the quiz on Tuesday, be prepared to write
a java progam from memory that will read text from the keyboard and
to write a sorted list of the unique words within the text to the screen.
Be careful to allow for all common separators for English text, and be sure
to make your sort case-insensitive. You must do all
the work in java. Your code must work for you to get any credit.
Assignment #14, assigned Tuesday, 13 December 2005, due Tuesday,
20 December 2005.
Over the break, you will be getting your project in shape for
a handoff. Prepare an inventory of all the documents and software
you intend to include in your handoff, gather preliminary version
of those documents and software, prepare a tarball, put that
tarball on you arcib web site and send the URL to the instructor
no later than 2 pm on Tuesday, 20 December 2005.
Prepare detailed analysis of the lags and leads for
each of the task milestones in your timeline, with honest
explanations (not excuses, explanations) of each and
every lag, and an explanation of how you would prevent
such problems in your next project. If relevant to the
causes of the lags, cite the appropriate portion of Brooks
or some other SE text. Post this analysis on your web
site and email the URL to the instructor no later than
2 pm on Tuesday, 20 December 2005.
You will have been informed of the project for
which you have won your bid. Specifically citing the
status reports you have listened to for that project
and the web sites for that project, explain what
you will do to evaluate that project. Post this
document on your erb site and email the URL to the
instructor no later than 2 pm on Tuesday, 20 December 2005.
IMPORTANT NOTE: For Spring 2006 the POCS courses will run
50 minutes earlier: Tuesday 1:10 - 5:20, Thursday 3:30 - 5:20.
Assignment #15, assigned Tuesday, 20 December 2005, due Tuesday,
31 January 2006.
Prepare a clean, carefully timed, 20 minute professional presentation
of your new project proposal. This presentation must include the
following:
Needs analysis
Feasibility study
Preliminary systems design
A realistic timeline providing completion of a working prototype
no later than 1 March 2006.
Your presentation must be posted on your web site as HTML
Your must provide a handout for the instructor and all
of your classmates.
Be sure you computer is secure and backed up.
Come with a list of 5 proposed exploits. These must
be specific exploits that you are prepared to discuss in
detail and for which you have the software ready to deploy
on your machine.
Assignment #16, assigned Tuesday, 31 January 2006, due Tuesday,
7 February 2006.
You will have turned in your old notebook for grading
last time. Start a new one and keep it current. The
new notebook will be graded on the due date of this
assignment.
Prepare a clean, carefully timed, 10 minute professional
presentation on the status of your new project.
Prepare a clean, carefully timed, 10 minute professional
presentation on the status of the project for which you accepted
a handoff. Include a grade (A, B or F) for the project as
you received it.
Your presentations must be posted on your web site as HTML
Your must provide a handouts for the instructor and all
of your classmates.
Independently (purely as your own work) write a program
in any language you know to read in a valid C, C++ or java program and
to neaten it up as a new valid C, C++ or java program with
lines that are no longer than 132 characters (where possible).
be very careful about comments and character strings. Email
the URL of the program ot the instructor no later than 12 noon
on the due date. Your program does not have to be complete in
terms of features and quality of output yet, but it must work.
In collaboration with your classmates, work out a schedule
of seminar presentaions for the rest of the semester. Take
into consideration the plans people have to take various
challenge exams.
If you are only taking POCS IV, prepare a well-referenced
preliminary research paper on computer science topic of your
choosing related to the projects you are doing this year.
You must cite at least three distinct relevant journal references by
different authors.
If you are taking POCS III and POCS IV, prepare a
well-referenced management white paper on market potential
of one of the projects with which you are involved. Justify
why the project is worth the investment of time and other
resources. Base your argument on facts, not unsupported
assumptions.
Assignment #17, assigned Tuesday, 7 February 2006, due Tuesday,
14 February 2006.
You should have started a new newbook for this semester. Keep
it current and be prepared to submit it for grading during the
quiz on the 14th.
Prepare a clean, carefully timed, 10 minute professional
presentation on the status of your new project. Include
a timeline for what you will complete by 23 February 2005
(that is 9 days later).
Prepare a clean, carefully timed, 10 minute professional
presentation on the status of the project for which you accepted
a handoff. Include the status of the work you are doing to
improves this project.
Your presentations must be posted on your web site as HTML
Your must provide a handouts for the instructor and all
of your classmates.
Independently (purely as your own work) improve the program
to read in a valid C, C++ or java program and
to neaten it up as a new valid C, C++ or java program with
lines that are no longer than 132 characters (where possible).
be very careful about comments and character strings. Email
the URL of the program ot the instructor no later than 12 noon
on the due date. Your program does not have to be complete in
terms of features and quality of output yet, but it must work.
In this version you must have the following features working
to get any credit:
Both single-line comments and multi-line comments must
be reformatted to fit within 132 characters. When a single
token in a comment is longer than 129 characters, use a
terminal backslash to indicate continuation, but be sure
to respect the rules for comments if you are in
a langauge that does not have the C-preprocessor line
continuation support.
If a quoted string is no longer than 132 characters
(including the quote marks) treat it as a single token.
If a quoted string is longer than 132 characters
and the language is C, make use of the C-preprocessor
line continuation rules. If the langauge suppports
string concatenation, use that instead.
In collaboration with your classmates, prepare
a web page and a flyer announcing the POCS seminar
series for each Tuesday at 3:50 listing the topics
and speakers and inviting all interested faculty
and students to attend. The first seminar of the
semester will be on Tuesday, 14 February 2006,
so the flyers must be distributed no later than
the morning of Monday, 13 February 2006, and the
web page must be posted by then.
Assignment #18, assigned Tuesday, 14 February 2006, due Tuesday,
21 February 2006.
You should have started a new newbook for this semester. Keep
it current and be prepared to submit it for grading during the
quiz on the 21st.
Prepare a clean, carefully timed, 10 minute professional
presentation on the status of your new project. Include
a timeline for what you will complete by 23 February 2005
(that is 2 days later). Include information on where the
handoff packet will be for this project.
Prepare a clean, carefully timed, 10 minute professional
presentation on the status of the project for which you accepted
a handoff. Include the status of the work you are doing to
improve this project.
Your presentations must be posted on your web site as HTML
Your must provide a handouts for the instructor and all
of your classmates.
Independently (purely as your own work) improve the program
to read in a valid C, C++ or java program and
to neaten it up as a new valid C, C++ or java program with
lines that are no longer than 132 characters (where possible).
Be very careful about comments and character strings. Email
the URL of the program ot the instructor no later than 12 noon
on the due date. Your program does not have to be complete in
terms of features and quality of output yet, but it must work.
In this version you must have the following features working
in addition to the features from last week
to get any credit:
Now that you can recognize quoted string and comments, you
should be able to recognize all other tokens that are
separated by white space, operators and other separators
(e.g. comma and semi-colon). Make a reasonabke hierarchy
of separators, and when token sequences run past 132 columns
work back to a sensible break point in the sequence. For
example, it is better to split
36*x*y+72*r*s as
36*x*y+
72*r*s
than as
36*x*y+72
*r*s
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #19, assigned Tuesday, 21 February 2006, due Tuesday,
28 February 2006.
You should have started a new newbook for this semester. Keep
it current and be prepared to submit it for grading during the
quiz on the 28th. This is your last chance
to resolve the issue of notebook handling without a serious
impact on your grade for the semester. Failure
to comply with reduce your maximum grade by at least
one third grade.
You must hand off your second project on 28 February. Have
a handoff kit ready, both on the web and on paper with
and extra copy for the instructor Failure
to comply with reduce your maximum grade by at least
one third grade.
You must return the project for which you accepted a
hand-off 4 weeks ago. Prepare a complete report on
your evaluation of that project, and provide it both
to the package originator and to the instructor, both
on paper and as a URL. Failure
to comply with reduce your maximum grade by at least
one third grade.
Note that failure to deliver on time on all of
prior three items means that the maximum
grade you can get for this course is a B. There is
no way to make up for failing to meet this deadline.
Your project activity for the rest of the
semester will include responding to the evalaution
of your first project, possibly completing and
improving it, helping to evaluate the second
projects, and starting on a third project. The
third project will be assigned in class on the
28th. You will, again, have only 1 month to
do that project. At the end of the semester
you must have one of the 3 projects completed,
working, documented and fully released on
sourceforge. You will be doing a formal
public presentation of that project.
We will now take a pause in improving the
program you have been working on to clean up
C, C++ and java code. You are now to make the
program as clean and solid as you can, and you
are to post your best version on the web to be
reviewed and evaluated by the entire class.
You are to send the URL of you best version
to the instructor only by
12 noon on Thursday 23 February
2006. Do not disclose the URL to any of
your classmates yourself. The instructor will share the
information on those URLs in class on that Thursday
and you have until the start of class on Tuesday,
28 February 2006 to send email the Instructor
your evaluations of all the programs including your
own. Failure to provide a program for evaluation
by 12 noon on Thursday 23 February 2006 will
reduce your maximum grade for the course by
a full grade. Failure to do an honest, detailed,
and helpful evaluation of all of the programs
including your own on time will reduce your maximum
grade for the course by another full grade.
Note that the combined effect of these
two reductions could be sufficient to result
in failure of the course. You are urged
not to blow off this assignment. More importantly,
don't wait to the last minute to do either
part of this assignment. Remember Murphy's Law!!!!!
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #20, assigned Tuesday, 28 February 2006, due Tuesday,
7 March 2006.
Take the consolidated evalutations of the code cleanup
program, and, without further collaboration with your classmates,
improve your own program to the best level in all features
of the programs you have seen. You may use any portions of
the code of your classmates that seems helpful.
Take this best program, and without further collaboration
with your classmates add the ability to reorganize the code
so that in any given block, all declarations accur before
all executable code to the extent possible. Post the program
to the web and email the URL to the instructor.
In collaboration with your team, prepare a design document
and timeline for your third project, add it to your web page and email the
URL to the instructor.
You should have received your first project back. Prepare
a short but thoughtful response to what you have received and
email that reponse to the instructor.
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #21, assigned Tuesday, 7 March 2006, due Thursday,
16 March 2006.
This assignment was orginally scheduled for
Tuesday, 14 March, but, for this week, the Tuesday and
Thursday times have been swapped
In collaboration with everyone in the class, prepare
a short (20 minute) coherent presentation on the status of
project 3. You may choose a single spokesperson, or you
may divide the presentation among multiple people, but
both the windows and the linux status must be presented.
Take your current best version of the code cleanup
program, and prepare an automated test suite for what
you have done, post it to the web and send the URL to
the instructor.
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #22, assigned Tuesday, 14 March 2006, due Tuesday,
21 March 2006.
In collaboration with everyone in the class, prepare
a short (20 minute) coherent presentation on windup status of
project 3. You may choose a single spokesperson, or you
may divide the presentation among multiple people, but
both the windows and the linux status must be presented.
For each version of project 3, move all information about the project
to sourceforge, and start getting ready for a handoff,
in which the windows group will evaluate the linux
status and the linux group will evaqluate the windows
status. You will do the handoff on Tuesday, 28 March.
You will receive commentary on your code cleanup
program in class Thursday, 16 March. Improve your
program in light of what you hear about your own
program and that of your classmates and make a new best version
of the code cleanup program, and updating your automated test suite for what
you have done, post it to the web and send the URL to
the instructor.
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #23, assigned Tuesday, 21 March 2006, due Tuesday,
28 March 2006.
The project 3 Linux group will handoff their part of project
3 Windows group and the project 3 Windows group will hand off
to the project 3 Linux group on the 28th. Each group is to come prepared
with a full handoff kit and detailed documentation for what
they are receiving and test suites for for both what they
are handong off and what they are receiving. The first
tests will be done in-class immediately on receipt of
the handoff, which will consist of attempting to download
the package from sourceforge and making an attempt at
building and testing what is downloaded.
You will receive more commentary on your code cleanup
program in class Tuesday, 21 March. Further improve your
program in light of what you hear about your own
program and that of your classmates and make a new best version
of the code cleanup program, and updating your automated test suite for what
you have done, post it to the web and send the URL to
the instructor.
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #24, assigned Tuesday, 28 March 2006, due Tuesday,
4 April 2006.
Prepare a complete and final report on the handoff of
Project 3 as a written paper document. You may work
individually or in groups, but the groups have
to be completely voluntary and collaborative. You
may not simply put your name onto a group
report for which you have not been an active
participant and for which you do not completely
know and understand the contents of the report.
Bring 6 paper copies of this report with you.
Select one of the three projects with which
you have been involved this semester and prepare
a written report of what you intend to complete
and release that project on sourceforge as
a finished, fully documented project no later
than 12 noon on 23 April 2005. You
may not simply put your name onto a group
report for which you have not been an active
participant and for which you do not completely
know and understand the contents of the report.
Bring 6 paper copies of this report with you.
Working individually, prepare the best
version you can create of your code cleanup
program. Prepare a web site and a full written
report on the status of the program and use
of the program. Bring 6 paper copies of
the report with you.
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #25, assigned Tuesday, 4 April 2006, due Tuesday,
18 April 2006.
You have two weeks to make solid progress on your chosen final
project. In addition to any other milestones you may have
for completion of your project, you must have complete
user documentation ready on the due date of this assignment,
both posted on sourceforge and a 6 full paper copies.
You may not use such phrases as "TBD" in this
documentation. This user documentation must be complete
and final. You will need to deliver complete and final
code, internal documentation, and a handoff kit one week
later. If you do not complete both of these tasks on
time you will have an incomplete for the course, which
can only be cleared by doing a totally new, 4th project
properly. It would be much better to complete this project
on time and properly.
In this two weeks review the posted code cleanup programs,
and either select the best one or make a new consolidated program
out of them. You may work on your own or in consultation with
your classmates or other people. Be prepared to demonstrate
the results. Again, failure to complete this assignment
will result in an incomplete that can only be cleared by
a similar, but totally new assignment. It would be much
better to complete this task now.
Help to maintain and organize the POCS
seminar web page. Be sure to contribue
the web page of your talk to the POCS
seminar web page.
Assignment #26, assigned Tuesday, 18 April 2006, due Tuesday,
25 April 2006.
You will need to deliver complete and final
code, internal documentation, and a handoff kit for your final
project If you do not complete both this task on time,
you will have an incomplete for the course that can only
be cleared by doing a totally new, 4th project
properly. It would be much better to complete this project
on time and properly.
You must deliver the complete kit on paper and as a sourceforge
URL. No excuses for incomplete or non working code will
be accepted. No excuses for incomplete internal and external
documentation. No excuses will be accepted for failure to
show up with 6 complete paper copies.
You will have received the user documentation for
all final projects on the 18th. Collaboratively with
your classmates, prepare a detailed test protocol to
be used for all the projects, and post those test protocols
to the web.
Assignment #27, assigned Tuesday, 25 April 2006, due Tuesday,
2 May 2006.
This is the final assignment for the semester.
In collboration with your classmates, prepare a coherent 2 hour
tutorial on how to do a software project, drawing on your experiences
in this course for examples both of what you should do and
what you should not do. You must produce a written
report with proper references for the entire class.
In collaboration with your classmates, prepare a coherent
2 hour tutorial explaining the objectives, use and
functionality of the essemble of completed final projects.
Be sure to include the results of the test protocols in
the functionality report. You must produce a written
report with proper references for the entire class.
Post the tutorial and project report on an arcib web site.
You must present this tutorial and the project report in time slots chosen
by all of you as a class on 2 May, 4 May and 9 May.