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.
You will have to do at least three major projects for this
course, culminating in your portfolio project. The first two project
will be posted to your course web page. The first project
will be assigned to you. The second
project will be defined in consultation with the instructor in
the second half of this semester. The third project will be
entirely the responsibility of the students from concept
to implementation and will be your portfolio project.
All materials produced for projects in this course
must be made available on the web under open source
licenses, preferably the GPL. You will need a
good revision control system. You should use
Google code for the first 2 projects. You should use
Sourceforge for revision control for the portfolio
project.
Assignments
Return to this page often to find new assignments and clarifications
to old assignments. Except when explicitly told to do an assigment
by yourself, all assignments are to be done in cooperation with
your classmates and any other people you find helpful, but you are
responsible for understanding everything you present, and you are
to openly and fully credit all sources for anything you present
or submit.
All assignments are to be submitted as text-only email or posted on
the web and submitted by email containing the URL of the
assignment to:
with absolutely no attachments. Assignments will
in general not be accepted late.
No assignments will be accepted on paper. No assignments will be
accepted on diskettes or thumbdrives.
You may use a Google Sites or Google Blogger to post assignments on the web as a means
of submission. The grade for the assignment will be sent back to the email address from
which the assignment email was sent. In the case of group assignments in which multiple
students are involved, one student should be the sender of the email and the other
students should be listed both in the email "CC:" list and in the body of the
message.
Assignment #1. Assigned Tuesday, 4 September 2012, due Tuesday, 11 September 2012.
If you have not already done so, sign up for Google Sites and
create your personal portfolio web page. If you are taking more than one CS course, you
must use
the same personal portfolio web page for all CS courses.
In addition to the web page you will use for your portfolio, create an additional
web page
to use to be able to post course assignments so you can send those URLs to the instuctor
instead of using email attachments.
If you have not already done so, sign up for
Google Blogger and create a blog to use as a public
notebook
for this course. Be sure to record your experiences in doing this entire assignment
in your blog.
Get you text books, and start your notebook.
Establish a sourceforge.net account for yourself.
Work out what you will need for a software development environment for this
course and be prepared to make a coherent, well-founded, detailed presentation
of what you propose to use. Be prepared to justify your choices. Post your
thoughts in your course blog. Email a summary of what you plan to the instructor.
Your first project will require you to do web site development.
Whether you intend to work under windows or not, familiarize yourself
with Dot Net Nuke,
HTML5,
Cascading Style Sheets
and other tools for making modern web pages. Prepare a proposal
for a how to develop a web site consistent with the general
style of the Dowling College web site to be used by the Department
of Mathematics and Computer Science that you will implement on
Google sites that will allow for easy updating of content of use
to both current and prospective students to help those students understand
the process of getting a degree in one of the majors related to that
department. Define the stakeholders
for this project in your proposal. After review by the instructor,
you will need to take your proposal to them and develop a detailed
requirements document.
Prepare a detailed 20 minute presentation of your current best understading
of the steps in process of designing an information processing-related
system. Post that presentation on your web site. Record notes about the process
of preparing that presentation in your blog.
Prepare a resume for yourself as if you were applying for a job in the
IT department of some large company. Post that resume on your porfolio site.
Assignment #2. Assigned Tuesday, 11 September 2012, due Thursday, 27 September 2012.
In working on this assignment, please be aware that the instructor will
not be availble on campus 17 - 26 September 2012, and there will be no
Skype office hours in that period. Please submit questions by email.
After approval of your web site proposal by the instructor, contact the
appropriate stakeholders and do a detailed user requirements document. Once
you have it, start on the system design document. Track all your work in
your blog. Start a Google code site for the project. Note that it is
fine to dummy up web pages to create your documents.
Read Chapters 5-8 of Sommerville through page 233 and make notes.
Read Chapters 8-14 of Brooks through page 160 and make notes.
Read Chapters 5-8 of Gustafson through page 126 and make notes.
Prepare a detailed system design document for your second project and submit it
to your stakeholders for review.
Prepare a report on the status of your first project and a plan to truly finish it
without slowing progress on your second project. Your plan must have detailed task-by-task
time lines for full completion of the first project and preliminary task-by-task
time lines for likely completion of the second project. Both timelines must be dated and
posted on your course website and updated weekly from this point on. All revisions
to either timeline must be clearly marked and clearly quantitatively indicate slippages.
Read Chapters 18-23 of Sommerville through page 650 and make notes. Pay particular
attention to Chapters 22 and 23. You need them for what you are doing right now.
Prepare a final system design document for your second project and submit it
to your stakeholders for review.
Let's put some pressure on. Prepare a preliminary user requirements document for
your third project -- the one you have to specify.
Prepare a report on the status of your first and second projects and a plan to truly finish both
while getting ready for your third project. Your plan must have detailed task-by-task
time lines for full completion of the first project and preliminary task-by-taks
time lines for likely completion of the second project. All timelines must be dated and
posted on your course website and updated weekly from this point on. All revisions
to either timeline must be clearly marked and clearly quantitatively indicate slippages.
Prepare a clean user requirements document for your third project, assemble
a team of stakeholders and submit the requirements document to those stakeholders for review.
You are now juggling three projects simultaneously. Reorganize your course web
site to allow any interested party (including yourself) to understand and track the status
of each of the three projects separately and collectively. Ths site should have timelines
that show task dependencies, lags and leads.
Read Chapters 24-26 of Sommerville finishing the book and making notes.
Take Quiz 7 by 1 November 2012 Hurricane postponed to Tuesday 13 November 2012
Assignment #8. Assigned Thursday, 1 November 2012, due Thursday, 8 November 2012 Hurricane postponed to Tuesday 20 November 2012
Prepare a final system design document for your third project
and start implementing against it. Be sure to coordinate your web reporting
to this design document.