| Syllabus | Contact Info |

Advanced Software Engineering I
- CSC 3981N - 0

Copyright © 2002, 2005 -- 2008, 2012 Herbert J. Bernstein and other parties. All rights reserved.

This web page is http://www.bernstein-plus-sons.com/.dowling/CSC3981F12/CSC3981_Assignments.html


Projects

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.