Courses/CS 491ab

From CSWiki

Jump to: navigation, search

Spring 2009

Winter 2009

Winter 2008

Winter 2007

Winter-Spring 2006

CS 491b Fall 2005

CS 491a Summer 2005


Contents

[edit] What is a CS 491ab project

A CS 491ab project not like a task assigned on a job: here is the specification for some code that needs to be written; go write it. Although a CS 491ab project is neither a PhD dissertation nor a Master's project, it is not an assigned task either. There should always be a spirit of investigation as part of the project. The fundamental question should always be: why is this work being. What is interesting or useful about it? Without that motivating spirit, writing code that meets someone else's specification is just another assigned task. There are plenty of programmers in the world, programmers who do not have a college degree, who can do that. That's not the culmination of an undergraduate education. A CS 491ab project is intended to demonstrate the ability to direct oneself on a project of one's own interest.

On the other hand it isn't required that projects be developed out of nothing but one's own imagination. In many cases, CS 491ab projects involve working with people who need some computer work done. In that case, an important part of the project is to figure out what the real need is. The next part is to write code that satisfies that need.

But whether a project is done strictly as a result of personal interest or as a result of helping someone who needs help, figuring out why the code is being written is always a part of the project. It is never the case that someone just writes code that satisfies a specification that was given as an exercise—unless there is some interesting reason to do that exercise, which there may be.

[edit] Interdisciplinary projects

The Interdisciplinary projects page lists projects associated with other ECST and CSULA departments, schools, and colleges.

[edit] Community Service Organizations

You may be interested in doing a project to help a community service organization. The Center for Student Life's EPIC program (epic@cslanet.calstatela.edu (323) 343-3380) maintains a list of Community Service Organizations.

[edit] Downloaded code and other resources

I encourage you to use whatever resources you can find on the web (or elsewhere). The widespread availability of sophisticated software (including open source and otherwise free-to-use software) is one of the significant benefits of the web. We should all get in the habit of looking for and using whatever is available. There is no point in redoing work that others have already done—unless you want to redo it as an exercise or do it in another way or in some other language or using other techniques.

But there is an important responsibility when using found resources. You must credit the source. Do not try to pass off a resource that you have found as if it is work that you created. That is intellectually dishonest—the worst sort of academic sin. It is essential that you distinguish your work from downloaded work. Your grade in this course will be based on your work. Part of your work may include searching for and finding useful available resources. Another part may include integrating those resources into your project. But it is important to distinguish the work that you actually did from the resources that you found and that you included in your project.

[edit] Project and User pages

Please create both a user page and a project page for yourself.

  • The user page will be created when you log into the system.
  • Please include an email address on your user page.
  • Your project page will be a subpage of the course page for a particular time the course is offere. See the web page for the current term for details.

[edit] Weekly updates

Please update your project page weekly.

During 491a, describe three things.

  1. What you did that week
  2. How your project is taking shape. It's ok to talk about explorations that didn't pan out. That's to be expected, especially during 491a. Simply describe the things you looked at and what your reaction to them was.
  3. Your plans for the coming week, i.e., what you expect to look at and what you expect to be thinking about during the coming week.

During 491b, describe the progress that you made on your project that week. By the time 491b begins, you should have a schedule for completing the project. Each week discuss whether you have done what your schedule calls for and any revisions you must make to the schedule. It's ok to find that you have to revise your schedule. Even so, it's better to have a schedule that is constantly being revised than not to have a schedule.

[edit] Final product

At the end of the two term sequence, please be prepared with the following.

  • A half hour presentation (probably PowerPoint slides along with a live demo) of your project.
  • Documentation of the architecture and design of your project.
    • If you are doing your project in Java, this would consist of JavaDoc documentation along with some higher-level architecture description.
    • If you are using some other language, please prepare a comparable description.
    • UML diagrams may be included but are not required.

Here are project documents produced by previous CS491b classes.

For information about projects from last Summer and Fall 2005, see CS 491b Fall 2005