There are no restrictions on the 'type' of project you take on. Acceptable project types include:
Examples of this, to just name a few, include development of a buffer manager to support persisten storage for stream query operators, a distributed query allocator to support running a query on multiple machines, or new query operators not supported by the given system.
Examples of this, to just name a few, include support of a new time semantics in an existing system, incorporation of a new join implememtation algorithm, of a new stream mining algorithm.
Examples of this, to just name a few, include support of some on-line monitoring of stock trends, analysis and reporting of bad weather, environmental monitoring, and so on. The of a new join implememtation algorithm, of a new stream mining algorithm.
Note here that the focus of this survey must be different from the mini-tutorials that we will be writing as part of this class agenda, or if not, it must go significantly more into depth than what we tend to cover on a given subject in this course.
Potential directions for such mini-research could be found in most the current stream topics, given that the field is still fairly young and there are many low-hanging fruits. On possible way to attempt to start would be to take a technique from one paper/system and try to see how it could be applied to a different context/system-architecture. Another possible way to start would be to carefully think about the assumptions made in any of the papers that we will be reading, and then think about what it may take to break any of those. If it's trivial to drop an assumptions, then it is not a fruitful direction, but if it turns out not to be obvious how do overcome such a given assumption, then you may have found your topic of exploration. Third, future work descriptions at the end of papers are great sources for new ideas (though of course those authors themselves may be working on them as well). Lastly, thinking about different techniques in traditional database context, such as for example, transactions, recovery, multiple queries, and so on, and studying their application to this new stream context may lead to interesting observations
The project has three stages:
Each group will need to discuss with the instructor their ideas about the proposed project they are thinking about before the project intent submission. Ideally, each group should come with some clear ideas of what they may want to pursue, and possibly also what they do not not want to pursue. Finally, the written project intent would simply sketch out the overall type of project (see categories listed above) and expected direction. A single page in length defining the project may be sufficient, however, any length is acceptable. The instructor will provide you with a go, no-go, or other feedback.
Note: Please discuss your ideas on a project with me before finalizing and submitting your proposal. Your project intent will be approved, disapproved or some modifications of direction will be suggested, but you will not receive a grade for this stage zero.
Each group will turn in a typed proposal document (about 2 to 5 pages) defining the finalized project. After this, there is no turning back! At this time, you are encouraged to already have deeply thought about your proposed work, and also solved some initial part of it. Definitely, make sure to have dug in deep enough to understand the feasibility of your proposed direction, and/or to have looked at the necessary background knowledge and skills needed to pursue the project. This proposal should clearly explain the proposed work to be done, and also list the relevant environment (tools) you have set up or papers you have read in order to succeed to complete the project. Do provide an expected schedule for your planned completion, including a list of tasks to be undertaken week by week, and the deliverables for the end of the course.
Note: This will count for 10% of your final project score.
STAGE 2: Progress Report (Due: week 11)
This progress report should clearly state the current status of the project. This report must be typed and typically is between 5 to 20 pages long. By this time, I would expect you to be already half way towards completing your project. I would expect you to have conducted all necessary background work including establishing a bibliography and reading relevant manuals and literature, installing and testing all necessary software, resolving specific design issues, and refining the project plan or possibly re-directing the effort based on your background studies. Make sure to include literature you have reviewed for the project, all other tasks you have accomplished as well as your basic idea of how you are approaching the problem. You also need to construct a precise schedule and task list as what remains to complete the project.
Note: This report will carry 30% of your final project score.
The most important part here will be that you demonstrate that you have completed a sufficient amount of work towards completion of the project (you are expected at this stage to be about half way through your project). Also, there needs to be a clear plan of what will be accomplished by the end of the project. See more guidlines below.
The final project presentation and demonstration will be done in class by each team during the second to last class session. We'll determine the exact time allowed per project once we know how many different projects we have on-going. See below for what aspects should be stressed in this presentation.
This presentation must be supplemented with a final project report due at the same time. This report should be a well-written technical report describing your project (and put on the web). It is likely that this report will essentially be an extension of your progress report. Depending on the nature of your project, it will need to contain detailed designs, system architectues, key technologies used, experimental charts, sample runs, a detailed analysis of the results, a system design, a justification and evaluation of selected tools, etc. The report typically is between 10 to 20 pages.
Note: This part of the course project will count towards 60 % of the project score.
The grade of this assignment will be given using the following as guideline:
The final grade of the team project (which may not necessarily be the same for each member of the team) will consist of: