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 assignment 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.
Students will be given two weeks to establish the infrastructure they
need to work on projects, to form groups and to prepare
detailed project proposals. The rest of the academic year
will be spent turning those initial proposals into
sound completed projects and in devising new projects.
Each student in POCS will take the lead on at least two distinct
projects during the academic year and participate in a minimum of
six projects. At least three projects must be completed
successfully. Each student in POCSR will take the lead on
at least two distinct research projects in the academic year and
will participate in a minimum of three projects (one of which may be
a development project instead of a research project). At least one
research projects must be completed successfully. EACH student who
is in the POCS course (as opposed to the POCSR course) must
be a leader on a least two major distributed application development
projects and a leader or active team member on at
least four additional projects. A students who is in
POCSR course
will take the lead on two major research projects 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. Projects should start on
the gforge server on blondie.dowling.edu and, when
sufficiently mature for general distribution, should
migrate to www.sourceforge.net.
Assignments
Return to this page often to find new assignments and clarifications
to old assignments.
Acquire your text books, lab notebook, computer, disk and
other needed supplies.
Contact G. Todorov to establish your gforge account
on blondie.dowling.edu. Mr. Todorov has been asked to
play the role of a typical IT manager for this course.
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 gforge project
and a sourceforge web page and add links from your course web page to the
gforge anf 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 and to start building a development environment
on Tuesday, 12 September 2006.
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 must 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. You may have been through this or similar material before.
Even in that case, you are not excused from doing this work. If you
have been through this material before, this should be
a review which goes very quickly for them.
If you are in POCS or POCSR, read Gustafson's SE through page 71 (chapters 1-4).
If you are in POCS or POCSR, read Brooks through page 50 (chapters 1-4).
If you are in POCS or POCSR, read Hubbard's Java through page 119 (chapters 1-5).
If you are in POCSR, read Valiela, chapters 1-4.
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. You will have to settle on your first project and an
initial list of participants before leaving class on Tuesday, 19 September.
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 or POCSR, read pages 51-83 (chapters 5-7) of Brooks.
If you are in POCS or POCSR, read pages 72-126 (chapters 5-8) of Gustafson.
If you are in POCS or POCSR, read Hubbard's Java 120-237 (chapters 6-9).
If you are in POCSR read Valiela, chapters 1-4.
If you are just taking POCSR, 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.
In this week, you must get your project up to full speed,
so you can complete it in the two weeks after that. You must
prepare the following documents in the order given, post them
to your web site, and email them to the instructor as soon
as each one is ready. Each person on the project is responsible
for the timely delivery of each of these documents, but
only one person in the project should send the email message.
Brief overview of the project
Needs analysis and user manual
Feasibility study
System Design
Day by day implementation timeline with milestones
and task assignments, starting from today and continuing
through delivery of a handoff kit in 21 days. Be sure to
allow slack for things to go wrong.
Prepare a solid, timed 15 minute presentation on the
status of each project. You have 2 minutes to introduce
the project to your audience, 10 minutes to honestly
review the project timeline and honestly report
task lead and lag times and what you will do to ensure
timely delivery of the product. You then have 1 minute
to summarize and 2 minutes for questions. 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 marks. Everyone involved in the project must
be prepared to make the presentation. You will be told
who will present only at the start of the presentation
and at any point in the presentation the instructor
may require a change to an alternate presenter.
Keep your notebook and blog current through all
of this.
Note: There are no classes at Dowling on Monday, 2 October
2006. You should not count on being able to work with your
group that day.
Assignment #4, assigned Tuesday, 26 Sep 2006, due Tuesday, 3 Oct
2006.
If you are in POCS or POCSR, read pages 85-137 (chapters 8-11) of Brooks.
If you are in POCS or POCSR, read pages 127-217 (chapters 9-14) of Gustafson.
If you are in POCS or POCSR, 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 POCSR, read Valiela, chapters 5-9.
If you are just taking POCSR, 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 guided tour of your project gforge site, your
documentation, your timeline (both original and current status)
and code status report as a written document (8 copies) as a handout
to use for the next item.
Prepare a solid, timed 15 minute presentation on the
status of each project. You have 2 minutes to introduce
the project to your audience, 10 minutes to honestly
review the project timeline and honestly report
task lead and lag times and what you will do to ensure
timely delivery of the product. You then have 1 minute
to summarize and 2 minutes for questions. 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 marks. Everyone involved in the project must
be prepared to make the presentation. You will be told
who will present only at the start of the presentation
and at any point in the presentation the instructor
may require a change to an alternate presenter.
Keep your notebook and blog current through all
of this.
Assignment #5, assigned Tuesday, 3 Oct 2005, due Tuesday, 10 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 POCSR, prepare a web page reviewing Valiela. Email
the URL of this web page to the instructor.
If you have not already done so, the head of each project team
must establish a sourceforge project and each member of the team
must be added as a developer. You do not have to add code to the
project on sourceforge yet, but you must add the user documentation
as soon as the sorceforge project is created, and the best
system documentation, system code and test protocol, along with
the report from the handoff will have to go up on sourceforge
by 17 October (details in the next assignment).
Your projects must be completed and ready for handoff at 1 pm
on 10 October 2006. You must have posted a complete release kit on
the gforge server with full user documentation, system documentation,
system code and a test protocol before the start of class. You
must bring 7 sets of written documentation with you. You will
not be permitted to produce or revise it after 1 pm. You must
have a complete web page presenting the completed project.
If any of these elements are not complete by 1 pm,
the entire project will be considered a failure. Each team
will make a solid-time 20 minute presentation of their completed
project and one of the other teams will be assigned to accept
the handoff.
Keep your notebook and blog current through all
of this.
Assignment #6, assigned Tuesday, 10 October 2006, due Tuesday,
17 October 2006 and Thursday 19 October 2006.
Each project leader is to add the people who have been
assigned to accept the project handoff to the gforge and
sourceforge projects so that the handoff reports can be
added to the project website without censorship by the
original project developers.
Be prepared with your handoff reports on the projects for
which you will have accepted a handoff at the class meeting
of 10 October. Each handoff report is to be a tight, well-organized
20 minute presentation, with a written report and a copy
of that report as a pdf and as a web page that must have
been upload to the gforge site on blondie before the class
meeting on 17 October and that is to be uploaded to the
sourceforge site as soon as possible thereafter.
No matter what the status of the project, a complete
updated release responding to the handoff report
is to be posted on gforge no later than 3 pm on
19 October 2006, and that same release is to be
posted to sourceforge as soon as possible thereafter.
Midterm grades will be based primarily on what is
posted on gforge as of 3 pm on 19 October 2006.
Each person on the relevant development team and
the relevant handoff team is responsible for the state
of the relevant gforge project site.
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 POCSR.
Whether you are in POCS or just in POCSR, 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 certain 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 gforge site 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 POCSR, 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.
You will have been assigned second project in class on
10 October. Prepare a tight, timed, detailed 10 minute
status presentation with handout on your new project for
1 pm on 17 October 2006. Be certain to have your notebook up to
date.
In view of the lack of attention to the assigned readings,
you will have a long quiz on Brooks on Thursday, 19 Oct 06.
The only material you may use for the quiz is your notebook.
Assignment #7, assigned Tuesday, 17 October 2006, due Tuesday,
24 October 2006.
Each project group is responsible for a tightly timed,
20 minute presentation on the status of the second project
at its half-way point. This presentation must include the
following elements:
A solid presentation of the user externals.
A brief explanation of why the project is feasible.
A detailed timeline from the beginning to the end
of the project with tasks, dependencies, estimated
time for completion of each task and assignments
of those tasks to particular people.
For each task in the first two weeks, the
actual status of that task with lag and or lead.
For each person on the teams, a day by
day total of the number of characters of code
and documentaion produced by that person.
You must enter class with 7 copies of a handout.
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 continue the seminar portion of the course with presentations
by members of the class comparing java, C and C++. Everyone will
speak on Tuesday.
We will continue the seminar portion of the course with
presentations each Tuesday at 3:50 pm. If you have not
volunteered for one of the following topics you will have
one assigned to you.
Basic skills
Basics of C, C++ and Java
Building Linux
Working with Apache and Tomcat
Dealing with people
Software system life cycle concepts
Analysis of needs and identification of problems
Consideration of alternatives
Understanding logical vs. physical design issues
Data Communications
Network Flows and Queuing Theory
Network Design
Databases
Current state of the art in software engineering
Introduction to UML
Development of Requirements and Specifications
The business view of systems engineering
Information gathering by interviews and document reviews
Identification of stakeholders
Facilitated meetings
Arranging for buy-ins and sign-offs
The technical view of systems engineering
System models
Prototypes and emulations
Documentation and specifications
Creating a detailed, costed system design
Building a real system
Distributed Systems
Validation and handoff
Dealing with existing systems
Modern tools
Dissemination and Open Source Issues
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, 24 October 2006, due Tuesday
31 October 2006.
If you are only taking POCSR, 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, 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 24 october 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 #8, assigned Tuesday, 31 October 2006, due Thursday
9 November 2006.
On Tuesday, you were to have completed your second project.
Use the extra two days you have to prepare a really polished
handoff presentation on the second project, and to prepare
a really polished proposal for your third project. Your handoff
must be based on complete code and documentation on the
gforge site. Everything on this list must be there:
User documentation
Feasibility study
System Design
Reference Manual
Working code
Installation instructions and test suite
Carefully prepare a set of exactly 20 slides for a 20 minute
presentation. Ecah slide must have a coherent point to make
and must present a bulleted list of relevant items. That
presentation must also be on the gforge site, and you must have
printed out 7 copies of those slides, 6 slide images
per page on paper as a handout before the start of class
on Thursday. If any of these items are not ready by
3:10 pm, the project will have failed even if the code
itself is working.
For your third project, you are to prepare a one page
project proposal on a project that:
You really want to do;
That you believe it is feasible to do very, very well
between 9 November and the first class meeting in the
Spring semester;
That involves a serious programming effort, i.e.
more than can be done by one person working alone in
the time frame given.
That will produce a useful product that can
be accomplish something of interest and value to
a significant community of users.
If you are in POCS, read Hoglund and McGraw, "Exploiting
Software," pages 1-70 (chapters 1 and 2) and be prepared to
discuss.
Whether you are in POCS or POCSR Work out a reliable way to backup
your development environmentand do it.
Assignment #9, assigned Thursday, 9 November 2006, due Tuesday
14 November 2006.
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 1 pm on Tuesday, 14 November
2005. We will start going through solutions then,
and no updates to your code will be accepted after that.
On 9 November the handoffs of two projects
will have been presented. You are to prepare
a short, one page written evaluation of each of
those two projects (whether you worked on the project
or not) including one solid recommendation for improvement
of that project. Bring 7 copies of that single page with you.
On 9 November your third project will have been
assigned. Be prepared to report on the time you have
invested in that project and its status on 14 November.
Go back over the gforge site of each project
with which you have been involved this semester and
start to fill it in and clean it up so that you can
return to each project and continue on it at a future
date. You do not have the time to fix anything major
right now, but you need to make notes in the form
of a TODO list of what needs to be done before it fades
any more than it has from your mind.
If you are in POCS, read Hoglund and McGraw,
"Exploiting Software," pages 71-145 (chapters 3 and 4) and
be prepared to discuss.
Prepare a proposal for a single source denial
of service attack and email that plan to the
instructor.
Assignment #10, assigned Thursday, 14 November 2006, due Tuesday
21 November 2006.
If you are in POCS, read Hoglund and McGraw, "Exploiting Software,",
147-276 (chapters 5 and 6) and be
prepared to discuss.
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.
Bring a complete, printed user manual for your third
project to class, and prepare an clean 15 minute (15 slide)
presentation with handout of the user functionality of the
third project. The presenter for each project will be
selected at random.
In order to do proper software development, you must have
a unix development environment and be able to build packages.
If you have not already done so, by next Tuesday, you must
have installed a bootable Linux on your external disk. The
system must have working compilers, headers and libraries.
We will be doing some package builds next time.
Assignment #11, assigned Thursday, 21 November 2006, due Tuesday
28 November 2006.
In collaboaration with your classmates, write a simple,
reliable task scheduling program in any language you wish.
In class today, you will have installed rasmol. If that
install is not complete, finish it. Then locate kits for
PyMol and jmol and install those packages as well. Be prepared
for questions on the differences among the packages.
If you are in POCS, read Hoglund and McGraw, "Exploiting Software,", 277-366 (chapter 7) and be
prepared to discuss. Try to set up your machine to defend against a denial of
service attack. You will both attack and defend next time.
Bring a complete, printed system design document for your
thirdproject to class, and prepare an clean 15 minute (15 slide)
presentation with handout of the system design of the
third project. The presenter for each project will be
selected at random.
Assignment #12, assigned Tuesday, 28 November 2006, due Tuesday
5 December 2006.
Last time in collaboration with your classmates, you wrote a simple,
reliable task scheduling program in any language you wish. Apply
that program to your current project and email the results to the instructor.
Locate a source kit for apache tomcat. Build that kit from source,
install it on your system, configure it and test it.
If you are in POCS, read Hoglund and McGraw, "Exploiting Software," 367-447
(chapter 8) and be prepared to discuss. Try to set up your machine to
defend against a port probing attack. You will both attack and defend next
time.
You will have completed your user documentation and system design for the
previous class. For this class you are to start coding by creating
a full set of working dummy output screen generators that can later be converted
to accept real output and working software to accept input and validate
it. You must prepare a clean 15 minute (15 slide)
presentation with handout of this input/output scaffolding. You must
have posted your user externals and system design to the docs section
of your gforge site and this code to the CVS section of your
gforge site prior to class time. This portion of this assignment
is the first 25% of your final exam for this semester.
Assignment #13, assigned Tuesday, 5 December 2006, due Tuesday
12 December 2006 and Thursday 14 December 2006.
This is the last assignment with a due date within the
current semester. For 50% of your final exam grade you are
to prepare a webpage with a complete index of all past assignments
and quizzes for this semester, linked to your best responses to those
assignments. It is very important that those responses include
working code for all coding assignments. On quizzes, be very
careful to read and respond to each of the questions. Members
of the class may (indeed should) divide the work and/or work together on
all responses for both assignments and quizzes, but each student must
present a web page on arcib with the required index of links.
Email the URL to the instructor no later than 10 pm on 14 December
2006. It is unlikely that you will be able to complete
this assignment in a satisfactory manner unless you work with
your classmates.
You will have completed your user documentation, system design
and input-output scaffolding for the previous classes and this class.
For this assignment you are to use this documentation and coding
framework to create a realistic plan with timeline for writing
and inserting coding tasks into this framework. The timeline
must realitically allow for completion of all coding tasks no
later than 15 January 2007 to allow time for testing and creation
of a clean release kit. Each coding task must be designed to
allow the code produced to be inserted into the input-output
scaffolding and tested in that environment. You must prepare a
clean 15 minute (15 slide) presentation with handout of this timeline,
along with a demonstration of the first coding task inserted
into the scaffolding and tested. You must have posted your user
externals, system design and time lineto the docs section
of your gforge site and all code to the CVS section of your
gforge site prior to class time. This portion of this assignment
is the last 25% of your final exam for this semester, and must be
completed by the start of class on Tuesday, 12 Dec 2006.
Everyone will have to particpate in these presentations.
Assignment #14, assigned Tuesday, 12 December 2006, due Tuesday
30 January 2007.
This is the first assignment for the Spring semester.
You must have your third project complete and ready for
handoff on Tuesday 30 January 2007. In order to help you
reach the goal, you are to email two interim project
reports to the instructor during the break: one reporting completion
of all coding and documentation, no later than 15 January 2007
and one reporting completion of a complete release kit
no later than 25 January 2007. Each person in the project
must send these two emails, even if they are all duplicates.
At the 12 December 2006 class meeting you will have
settled on a firm timeline for delivery of the code to fit
into your scaffolding. For each deliverable on the timeline,
the person or persons designated as responsible for that
deliverable is to send an email to the instructor on the due date
of the deliverable, and another email on the actual delivery date,
which must be after posting of the code for that deliverable
on gforge. Each of these emails must also be posted to the gforge
site.
Each project team must prepare a full half-hour
(30 slide) presentation of the third project. This
presentation must include:
A brief overview of the project and the status
of the code and documentation
A detailed discussion of the user externals
A brief discussion of outstanding problems
A detailed discussion of how to install and test
the release
A summary of all of the above points
References and bibiography
At the time of the presentation, a handout must be
provided to the instructor and all class members. The
handout will incloude all of the information above.
In addition, it will contain a guide to the contents
of the gforge site for the project.
For all Tuesday meeting of the class, someone
must present one of the syllabus topics that were
not covered in the Fall. Some of the topics will
have been assigned before the break. Some of the
topics will be assigned or re-assigned during the
Spring semester. The class is jointly responsible
for creating a class seminar web page and series
of flyers listing all of the Fall semsester talks
and as many of the Spring semester talks as are known.
The flyers are to be posted on the doors of KSC020,
KSC121 ande KSC022 no later than Monday, 29
January 2007 and kept current thereafter.
Assignment #15, assigned Tuesday, 30 January 2007, due Tuesday
6 February 2007.
You will have been handed a third project to evaluate.
Prepare your evaluation as a 15-slide, 15 minute presentation
and as documentaion uploaded to gforge on blondie.
You will have been introduced to the fourth project
involving doing structural homologies in cif2pdb. Jointly
as a class, prepare a full half-hour 30 minute
project presentation giving a user spec and timeline
for completion in another 2 weeks.
Assignment #16, assigned Tuesday, 6 February 2007, due Tuesday
13 February 2007.
Prepare an update to your gforge site for the third
project reflecting the evaluation and plans to address
the issues raised and complete the project.
Start a sourceforge site for each of your projects.
As a class prepare a status report on the fourth
project for Tuesday as a full one hour presentation
(60 slides) addressing the problem and the means for solution.
Everyone in the class must contribute to the
presentation and be prepared for detailed technical
questions. This presentation will be taped.
Assignment #17, assigned Tuesday, 13 February 2007, due Tuesday
20 February 2007.
Finish a working, documented program to convert a small
molecule CIF file into an mmCIF file with residues identified.
As a class you will do a full one hour presentation (60 slides)
presenting your solution and demonstrating the program in
operation. You may sacrifice performance to get a working
program, but you must produce a working program.
Assignment #18, assigned Tuesday, 20 February 2007, due
Tuesday 27 February 2007.
At the time this assignment is being written, it is
not clear if the fourth project will or will not have been
sucessfully completed. If the fourth project was
completed, then it will be time to move on to the
fifth project, which will be integration of the
fourth project into rasmol or jmol or pymol in the form of an
automatic matching and alignment of a subset of atoms from
one molecule into a subset of atoms from another
molecule.
If the fourth project was not completed, you
do not have a way to complete the course in time for
grades to be filed at the end of the semester, and the
only possible grades you can get are an I or an F.
In that case you need to come up with a plan to
resolve this problem. These are the major choices
Give up on the course, withdraw and take the full
year of POCS again next year. Note that this
would drop you below full time status.
Give up on the course, but stay in it, accept
an I that will turn into an F in September 2007, and
take the full year of POCS again next year. That
preserves full time status, but creates problems
with your GPA.
Change what you are doing and how you approach this
course, fix the problems with the fourth project quickly,
then work solidly and steadily on the rest of the course,
finishing the work early in summer 2007. You would
get an I in May which could be converted to a better
grade when you finished the rest of the work for the
course. That would mean you would take this week
to get the fourth project fixed and start on the fifth
project a week late, or take 2 weeks to get the
fourth project fixed and start on the fifth project
2 weeks late, etc. The longer you let it slide the
more likely you are not to be able to finish the
course at all.
Your assignment for next Tuesday is to either
get a running start on the fifth project or
to make solid progress in fixing the fourth
project and to be prepared to present the
status of your personal effort. Each person
will give a 10 slide, 10 minute talk.
You must give an organized talk with
a beginning (tell 'em what you are
going to tell 'em), a middle (tell 'em)
and an end (tell 'em what you told 'em).
Assignment #19, assigned Tuesday, 29 February 2007, due
Tuesday 6 March 2007.
You will have done a formal handoff of project 4 to the
instructor. You will start on project 5 (see below).
If project 4 fails its handoff, then you will recycle
project 4 until it works, suspending work on project 5.
If project 4 passes handoff, you will continue on
project 5. However, in either case, you will have been
working on project 5 for this week. You must be
prepared to discuss your progress.
Project 5 is to integrate the
fourth project into rasmol or jmol or pymol in the form of an
automatic matching and alignment of a subset of atoms from
one molecule into a subset of atoms from another
molecule. The class will have been divided into
teams by choice of graphics package. There will be
at least 2 teams, and preferably 3. The first step
is to prepare a set of user externals for this
matching and alignment feature. You must have
a detailed user manuals for these features
ready to present and discuss for 6 March. At the
end of that discussion, each team will be working
against a common, agreed user specification, so
it would be a good idea to share information
among teams before completion of the assignment.
The specification is to consist of proposed
command sequences with words or pictures
showing what would change on the screen or
in internal data structures in response
to those proposed command sequences.
Assignment #20, assigned Tuesday, 6 March 2007, due
Tuesday 13 March 2007.
You will have had a response from the instructor
on the fourth project. Before you continue on the fifth
project, you must cleanup and finish the fourth project, so
you can use it in the fifth project. Much of what has
gone wrong with the fourth project is a failure
to document and test against that documentation.
Each of you, working independently is to produce
a detailed document within the code itself as comments
for each piece of code you have worked on in the following form:
All comments are to use the /* */ multiline comment
format, not the // single line comment format.
For each data structure and each variable, you are to
provide a comment giving the purpose of that data structure
or variable and any particular expected values.
For each function you are to give
The purpose of the function
For each formal parameter, the purpose of that
parameter and any particular expected values or return
values
The returns that will result from execution of this
function
The resulting comments should be at least as voluminous
as the code itself, and preferably longer.
You are to post an interim draft of your individually
commented code on blondie no later than the start of
class on Thursday, 8 March, so we can review your
progress in class and make any adjustments needed
in time for you to finish by Tuesday, 13 March 2007.
Once the individual efforts have been posted on
Thursday, you are free to read what other students
have done and to combine and incorporate their
efforts into yours and to use it to correct any
misunderstandings you may have had about how to
call their functions or use their data structures,
but each of you must actively engage in doing
massive and detailed documentation as comments
in the code.
Assignment #21, assigned Tuesday, 13 March 2007, due
Tuesday 20 March 2007.
This assignment will help you improve your attention to detail.
You will have to finish project 4 while starting on project 5.
Each group is to prepare a 1/2 hour, 30 slide presentation
of the user external for project 5. You are to prepare the
presentation no later than 12 noon on Monday, upload it to
your web page on arcib or mcs, and as soon as it is uploaded
send an email to the instructor with the subject mswmump.
Each student is to individually send a message with the
subject mswmump. The instructor will sort the email messages
that have the subject line mswmump by time. For quizzes that
arrive before 12 noon on Monday, the first to
arrive will get a boost of 600 points in the total quiz grades.
The second to arrive a boost of 500 points in the total
quiz grades, etc. Ties to within 1 hour will all receive
the highest boost to which any of them are entitled.
Transfer project 4 to sourceforge. Be sure to
use the GPL and to follow the rules of the GPL. This applies
whether it is working or not. All students must be
listed as developers and must provide email addresses
at which they can be contacted by users.
Assignment #22, assigned Tuesday, 20 March 2007, due
Tuesday 27 March 2007.
This assignment will help you improve your attention to detail.
In the previous assignment, everyone was either incomplete or late
or did not even do the project. You have not been paying
attention to finishing project 4 and are not putting in the
time required for project 5.
You will have to finish both projects no later than
mid April, so you will have time to do the last project.
In view of the incomplete effort last time, the next assignment
is doubled. Each group is to prepare a
1 hour, 60 slide presentation of the user externals and
system design for project 5. You are to prepare the
presentation no later than 12 noon on Monday, upload it to
your web page on arcib or mcs, and as soon as it is uploaded
send an email to the instructor with the subject mswmump.
The URL of the presentation must be the text of the email,
signed with your name written backwards.
If you send the email before the completed 60-slide presentation
is posted, you will fail the course immediately.
If you do not all complete this assignment on time, the next assignment
will be doubled again. Each student is to individually send a message with the
subject mesteng. The instructor will sort the email messages
that have the subject line mesteng by time. For messages
that arrive before 12 noon on Monday, the first to
arrive will get a boost of 1200 points in the total quiz grades.
The second to arrive a boost of 1000 points in the total
quiz grades, etc. Ties to within 1 hour will all receive
the highest boost to which any of them are entitled. For
POCSR, what is due instead of the project 5 presentation is
a complete annotated bibliography for the paper posted
on Blondie by noon on Monday. The bibliography must
combine a .bib file of references with a .ltx file
of one short paragraph explaining the relevance of the
cite to the paper. The .bib, the .ltx and a generated .pdf
must be posted on blondie by noon on Monday. The same
email message rules apply.
Transfer projects 4 and 5 to sourceforge. Be sure to
use the GPL and to follow the rules of the GPL. This applies
whether it is working or not. All students must be
listed as developers and must provide email addresses
at which they can be contacted by users.
There is no class on Tuesday, 3 April 2007.
Assignment #23, assigned Tuesday, 27 March 2007, due
Tuesday 10 April 2007.
This assignment will help you improve your attention to detail.
In the previous assignment, we had a very reasonable effort by
most people, but nobidy get everything letter perfect. Those
who made the deadline will get the promised credit, but there
is still work to do on catching every detail, so we will
continue with the same approach.
You will have to finish both projects no later than
mid April, so you will have time to do the last project.
In view of the incomplete effort last time, the next assignment
is doubled. Each group is to prepare a
2 hour, 120 slide presentation of the user externals and
system design and implemention for project 5. You are to prepare the
presentation no later than 12 noon on Monday, 9 April 2007, upload it to
your web page on arcib or mcs, and as soon as it is uploaded
send an email to the instructor with the subject nswmvmp.
The URL of the presentation must be the text of the email,
signed with your last name followed by your first name.
If you send the email before the completed 120-slide presentation
is posted, you will fail the course immediately.
If you do not all complete this assignment on time, the next assignment
will be doubled again. Each student is to individually send a message with the
subject mestemg. The instructor will sort the email messages
that have the subject line mestemg by time. For messages
that arrive before 12 noon on Monday, the first to
arrive will get a boost of 2400 points in the total quiz grades.
The second to arrive a boost of 2000 points in the total
quiz grades, etc. Ties to within 1 hour will all receive
the highest boost to which any of them are entitled. For
POCSR, what is due instead of the project 5 presentation is
a solid full draft paper with the complete annotated bibliography for the paper posted
on Blondie by noon on Monday. The paper must be prepared as a .ltx file
and the snnotated bibliography must
combine a .bib file of references with a .ltx file
of one short paragraph explaining the relevance of the
cite to the paper. The .bib, the two .ltx and two generated .pdf
must be posted on blondie by noon on Monday. The same
email message rules apply. Read this paragraph very, very carefully.
Not eveything says what you think it says.
Finish both projects 4 and 5.
Update projects 4 and 5 on both blondie and sourceforge.
Assignment #24, assigned Tuesday, 10 April 2007, due
Tuesday 17 April 2007.
This assignment will help you improve your attention to detail.
In the previous assignment, the POCS class all failed to meet the deadline.
The POCS class (not the POCSR class) now owes a 4 hour 240 slide
presentation covering the projects 4 and 5 as a consolidated whole
covering all the work by all students in one solid, presentable
document printed 6 slides per page (40 pieces of paper) on paper
to be handed to the instructor at the start of class on Tuesday, 17 April
2007. The POCS class students are all jointly respoonsible for
what is submitted. Failure to submit this document on time will
mean another doubling of the assignment. Remember that all assignments
must be completed to finish the course.
Finish projects 4 and 5 and be ready to present both.
Update projects 4 and 5 on both blondie and sourceforge.
Submit your user externals and timeline for project 6.
Assignment #25, assigned Tuesday, 17 April 2007, due
Tuesday 24 April 2007.
25% of your grade for this course is your notebook. Some
of you have not taken this requirement seriously, or think
you have been keeping adequate notes on line or on your laptop.
Now we will find out. For 25% of your grade, you are to turn
in your notebooks for grading on 24 April. For many of you
this gives you one week to create many weeks of notes.
If you manage to do that recreation on time, with detailed
notes on your activities and progress on each of the
projects (1-5) in which you have been involved since last
September, you may get the full 25% for your notebook.
You might get less if it is not well done.
If you don't do it on time, the 25% will be reduced by
5% for each week that it is late. For example, if you
turn it in 5 or more weeks late, the highest grade you can
get for this course is 75% (C) even if you do everything
else perfectly. Even then, you will still need to complete
your notebook to complete the course. You may help
one another in reconstructing
your notebooks, but you don't have to, and each person
is responsible for turning in a complete hardbound, hand-written
notebook with no pages removed.
Project reports are 40% of your grade. Be warned that
your next assignment will include a requirement for
written project reports on all projects. If you need more time
to get these reports right, you may take it, but you will
have an incomplete until they are all submitted with acceptable
content. You will also have an incomplete until you show you are able
to do sound, well organized oral reports of your projects
(see below).
If the POCS class did provide an acceptable 240 slide
presentation on 17 April, you may skip to the next bullet.
If not, the POCS class will need to expand the presentation
to 480 slides of solid content.
If you are in POCS be prepared to do a 20 minute presentation on
your project 6.
If you are in POCSR be prepared to do a 20 minute presentation on
your research in a form aimed at well-prepared audience of experts on
the subject. Spend no more than 3 foils introducing the subject
and notation. The next 16 slides should be on what you are doing
that is new and the last slide should be credits and references.
Assignment #26, assigned Tuesday, 24 April 2007, due
Tuesday 1 May 2007.
This is the final assignment for the year.
You will have an incomplete until you complete all prior projects
and assignments.
On Thursday, 26 April, I will be away at a meeting. Frances
Bernstein will get you started on converting certain ancient Fortran
programs to modern fortran (preferably g77, but you may use gfortran)
equivalents. She will help you understand what the old fortran does.
You will then have to create a modern equivalent. Try to keep to
the minimal necessary changes, both to conserve time and minimize the
risk to disrupting operation of the program. You are to
do your work as a project on Blondie. We have agreement from
the major funding agencies to then put the converted versions
out to the community as open source software. The people
involved in each conversion will have their name on what they
produce. This assignment is one of the required assignments
to complete the POCS course. It is not required for POCSR,
but Isaac may consult on the math issues involved, if he chooses
to do so. You may help one another, but of you will be
given personal responsibility for the conversion of 1-2
specific programs. If necessary, you may consult the code of other,
similar open source programs compatible with the GPL, but
you must be very careful not to even glance at other,
similar closed source programs or even open source programs
with a license that is not GPL compatible, but the idea is
to convert these programs, not to substitute some other programs
for these programs. You must keep track of and cite all sources that you
use.
You will start giving your final project presentations starting on Tuesday,
1 May 2007 and continue through the end of the semester (or beyond
it the results are not satisfactory). You are to prepare the following
materials and bring them to class on 1 May. The instructor will then
use these materials to assign the project topics and speaking order.
Two copies of a fully professional written report on each project with
which you have been involved. Each report is to include the detailed
user externals, an outline of the system design, and a detailed report
of the status of the project. You will not be allowed to present anything
until you have reports of this nature for each and every one of the
projects with which you have been involved. You will be allowed to
present if you have all these reports and the reports for at least
3 of the projects indicates that the project is reasonably complete,
documented and operational. If fewer than 6 projects are completed,
you will get an incomplete until they are all complete or until
the instructor chooses to relieve you of responsibility for some
of them. A project is not complete unless it is pulicly available
both on Blondie and on Sourceforge under the GPL or LGPL. However,
you will be allowed to present a project that is complete on
Blondie and for which there is a reasonable prospect of the
project being available on Sourceforge in the very near future
For each project that is complete and operational, you must
bring the slides for a 45 minute talk presenting that project
for a technically competent general audience. This talk should
function as a clear, low-key sales pitch, explaining what
the project does and how it does it and why the audience should
be interested in using it.
If you do not have these materials ready, you will have to
give a well-organized coherent half-hour presentation without use of
visual aidsother than chalk oon the blackboard on how you intend to clear the
resulting incomplete.