Courses/CS 491ab/Winter 2008
From CSWiki
CS 491a has two objectives.
- To get you started on your 491ab project
- To explore (generally open source) frameworks, libraries, tools, technologies, and components that are useful for programming in the large.
Contents |
[edit] Grading policy
[edit] 491ab generic information
[edit] Frameworks, libraries, technologies, tools, and components
When developing non-trivial software is it generally a good idea to make use of existing frameworks, libraries, tools, technologies, and components rather than to develop a similar capability from scratch. To help us get acquainted with what turns out to be a very wide range of available systems, we will explore some of them in this class. The plan is for everyone to report on one each week for the first few weeks.
Each week, please select from Platforms (or elsewhere) a framework, library, technology, tool, or component that you want to learn about and prepare a demonstration of its capabilities.
By "prepare a demonstration" I mean walk us through a real if simple example that uses the system. The example may be as simple as "Hello World," but it should be executable code that actually runs.
Each week report on what you have learned about the framework you are reporting on. You may report on the same framework from week to week. That would be a good idea once you select a framework to use for your project. Or you may report on a new framework each week. That is also a good idea. It will give you the chance to explore a number of frameworks and pick one that you like.
- If you are looking for a project you might find something of interest on The ServerSide.
[edit] Course and user pages
Please create both a course and a user page for yourself. Your user page will be created when you create an account on this wiki—but it is up to you to add content. Look here for a list of all user pages. The ones in red have no content.
Please create a course page as a subpage of this page. To do so, insert
- [[/your name/]]
in the schedule below—substituting your name for your name.
Don't become too attached to your initial time slot. As you all decide on your project areas, we will divide the class into two sessions, with people working on similar projects in the same sessions. You will not be asked to attend both morning and afternoon sessions.
Also, please be sure you are registered in the CSNS system.
[edit] Course pages
When you enter information onto your course pages, put the information for the current week under the heading for that week. For example, for the week in which the class meets on Jan 11, put your comments for that week under the heading for that week, not the previous week
[edit] Sessions
[edit] Attendance
It is required that you attend class, that you arrive in class by the start of the session in which you are scheduled, and that you stay for the full session. It's a sign of disrespect to me and to your fellow students not to do so.It is also a sign of disrespect not to listen to the presentations of your fellow students. Don't read your email or otherwise use your computer while someone else is presenting.
[edit] 10:00 - 12:00
- 10:00. Marcella Wong. Pentaho for Business Intelligence.
- 10:15. Aditya jamwal. Fedora/Struts.
- 10:30. Pang Wong. Fedora.
- 10:45. Yu Liu. OpenSocial.
- 11:00. Hong Ngo. SDL.
- 11:15. Spencer Perreault. Framework for Emulation of Game Systems
- 11:30. Sassja Ceballos. Simulation of Deformation and Fracture.
- 11:45. Quan Lau. 3D Virtual Reality of CSULA's campus.
[edit] 12:15 - 2:15
- 12:15. Evelina Lurye. Household Income Analyzer.
- 12:30. Madhavi Nidamarthy. MediaWiki Plugin:User-Accessible Database capability to MediaWiki
- 12:45. Hideyo Isaji. Automaton diagram editor tool using GEF and EMF.
- 1:00. Yuet-Chi Lee. Wiki search.
- 1:15. Linghai Ma. Android.
- 1:30. Jonathan Berney. Programming Assignment Module for Moodle
- 1:45. Oksana Maeva. Osculating Tacnode Curve and Mathematica (National Curve Bank)
- 2:00. Ian Roessle. Image analysis Plug-in for Google Earth using the Weka Machine Learning Toolkit (Project Earth Watch)
[edit] 2:30 - 4:30
- 2:30. Shiusen Yao. Resource sharing system for public service organizations.
- 2:45. Raza Abbas. Online Hotel Management System(JSP+JSSE+Servlets).
- 3:00. Peiling ChangChien. Packet sniffing and editing in Java.
- 3:15. Dong Liu. AJAX.
- 3:30. Kanokwan Chansamorn. Conference Listing Application
- 3:45. Robert Hovhanessian. ASP.net or AJAX.
- 4:00. Urvishkumar Mehta Comparision of CGI and other languages and Introduction to Ruby.
[edit] Videos
- Jan 4, 2008
- Jan 11, 2008
- Jan 18, 2008
- Jan 25, 2008
- Feb 1, 2008
- Feb 8, 2008
- Feb 15, 2008
- Feb 22, 2008
- Feb 29, 2008
- Mar 3, 2008
- Mar 10, 2008
[edit] Final report
In lieu of a final, I'd like you each to prepare a brief report due the day of the scheduled final (March 14). This should be a description of the project that the instructor for CS 491b can look at to get a sense of what you are planning to do. It need not be long—a few sentences for each section. The point is to convey the overall idea as simply and as intuitively as possible—not to be anything like a requirements document or specification.
Before you write it, I suggest that you take some time and try to describe to yourself what you think you will have when your project is completed at the end of the next term.
Here is a suggested template. You can copy it from the box below and paste it after the final entry on your page. (Don't click the edit button and copy the text I typed in to generate this. Just copy what appears on the page in the box below.) Then edit it.
==Brief project description==A brief description of your project in no more than three sentences. For example, if you are doing a conference tracking system, it might be something like this.
A web application that keeps track of conferences. Users may enter conferences and may request that conferences be displayed in various ways such as: call-for-paper dates, topic, sponsors, etc.
==Anticipated users==
Describe the anticipated users of your project. For example, if your project is an Image analysis Plug-in for Google Earth you might say something like this.
The users will be Google Earth users who want to apply Weka operations to satellite imagery.As this example illustrates, include as many relevant pointers as possible in your brief description.
==Main conceptual (i.e., user-level) objects==
Describe the primary categories of objects your project will manipulate. These are objects from the user's perspective, not necessarily from the developer's perspective. For example, if you are writing a game you may say something like this.
The primary characters in the game will be the hero, a menagerie of monsters, weapons of various sorts, etc.
==Primary conceptual (i.e., user-level) operations==
Describe the primary operations the system will make available to the user. For example, if your project is an extension to MediaWiki that allows page editors to embed sql queries on pages, you might say something like this.
The system will enable any wiki editor to embed an sql query on a page. The result of the query will be displayed when the page is displayed. The query author will also be able to describe the format in which the output will be displayed.
==Why I am interested in this project==
This should be a personal statement about why this project interests you. For example, if your project involves intercepting packets you might say something like this.
I've always wanted to intercept packets so that I could cheat on games.==Status==
This should describe the state of your project. For example, if your project is a web system, you might write something like this.
I've experimented with Ruby and Rails and have produced a very simple version of the project consisting of these tables and these operations. (Then go on to describe the tables and operations.)
As you can see, these sections are all quite small. I don't want this to be burdensome. But I do want it to be informative so that a reader can understand what you are planning to do.

