title | headerImg |
---|---|
Final Project |
pier.jpg |
You will do the project in a in a group of 4 over the second half of the quarter and will evaluate it with a demo during the final exam time block.
The project will comprise 30% of your overall grade.
You are expected to spend at least 30 hours (each) in the project.
The goal of the project is to give you some hands on experience with building a realistic application using the principles learned in CSE 230.
- Friday 11/12 Proposal Submit here
- Friday 11/25 Updates
- 12/10 Demonstration
The overall goal is for you to write an application from scratch, so we will provide very basic starter code, just containing the bare library dependencies. You are free to use any existing open source libraries to build your application.
For the project you will implement any line application
using the brick
library.
You can think of any application you wish. If you think your idea is unrealistic, discuss it with the course staff. Of course, it should not be any of the projects already listed or implemented by others, doing so or any of plagiarism will result in a score of zero.
Here are some ideas for you to get started
- A clone of the
fish
shell with history-based autocomplete - An arcade game like
breakout
orspace invaders
- A networked two player game e.g., chess, checkers, scrabble etc.
- A networked chat/irc/slack client
- A vim/editor clone, extended with support for shared editing
- A puzzle solver, e.g., sudoku.
Feel free to think of other applications!
The project will be evaluated based on the following criteria:
- collaboration: the project will be a public repo on github and all members should contribute equally.
- library usage: the project should use existing libraries of the hackage ecosystem.
- reproduction: the project should be easily installed via cabal or stack.
- unit testing: the project should pass unit tests that are implemented either manually or using quickcheck.
- presentation: make sure to clearly present your goals and your implementation.
-
Create a
github
repository for your project with aREADME.md
that describes your proposed application and its goals in 300 words. -
Fill up a google form (to be shared) linking your project and team members.
Update your README
with
- What is the architecture of your application (the key components)?
- What challenges (if any) did you have so far and how did you solve them?
- Do you expect to meet your goals until the deadline?
- If not, how will you modify your goals?
You will give a 10 min demonstration of your project during an open "poster session" to be conducted during the finals slot Friday 12/10 from 11:30am -- 2:30pm.