Skip to content

Commit

Permalink
add 2014 semester
Browse files Browse the repository at this point in the history
  • Loading branch information
alexeyza committed Jun 23, 2016
1 parent 929b1ec commit 98b2eff
Show file tree
Hide file tree
Showing 20 changed files with 1,219 additions and 2 deletions.
45 changes: 43 additions & 2 deletions past semesters/fall 2014/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,44 @@
## Past semesters
![Alt text](images/logo.png)

[Startup Programming - Fall 2014](fall-2014/README.md)
##### [Department of Computer Science - University of Victoria](http://www.csc.uvic.ca/)
##### CSC 485B + SENG 480B, 2014/2015, Semester A
<br>

This course aims to give students the tools and skills to rapidly develop and transform innovative ideas (of their own choosing) into working projects utilizing advanced mobile, social, cloud, and web technologies. In particular, students will experience the style of development activity that is common in a new startup company. The project based course will be augmented by a series of lectures to accelerate learning with new web technologies, product design, agile development practices, user interface design, and project management. During the term, students will work in teams of 4 students. Each team will be closely mentored by several staff members (including the instructors and one or more members from industry). Students will gain valuable technical skills and experience working in small teams, while facing real-world challenges that include a tight schedule, hard deadlines, and self directed learning.

Projects will include designing and developing a live web system. Each team will also maintain a web page with project documentation and design documents.

See [course requirements](requirements.md) and [student testimonials](testimonials.md).

**Classes will be on Fridays 2:30-4:30 at ECS 130:**
(*Tentative schedule, slides are in the [**resources section**](resources)*)

- Meeting 1, 05/09/2014 - Introduction (Peggy), How to build a software product, Standing on the shoulders of giants, Demo of past projects (Alexey), Forming teams
- Meeting 2, 12/09/2014 - Web development overview, Cloud computing services (Alexey), UI/UX overview lecture (Peggy)
- Meeting 3, 19/09/2014 - Team work, GitHub, and API's (Ian), [Project proposal presentations](presenting your ideas.md)
- Meeting 4, 26/09/2014 - Failing fast in Startup Programming (Arie), Software engineering at [Magnet.me](https://magnet.me/) (Michael de Jong), Project proposal presentations cont.
- Meeting 5, 10/10/2014 - Team stand-up meeting, Software Management... for people who just want to get stuff done (Cliff), Guest talk (Aidin Tavakkol, CTO and Founder of [LimeSpot](https://limespot.com/))
- Meeting 6, 17/10/2014 - [Milestone 1 presentation](milestone 1 - proof of concept.md) - Proof Of Concept
- Meeting 7, 31/10/2014 - Guest talk (Tali Saar, Co-founder and CEO of [Palo Alto Rooster](http://paloalto.therooster.co/)), How 2 UVic students started an eBay ecommerce analytics company (Anthony Sukow, EVP & Co-founder [Terapeak](https://www.terapeak.ca/))
- Meeting 8, 07/11/2014 - [Milestone 2 presentation](milestone 2 - release candidate.md) - Release Candidate
- Meeting 9, 28/11/2014 - Final presentation ([Milestone 3](milestone 3 - public beta.md), Public live BETA)

**Mentoring Staff:**

- [Margaret-Anne Storey](http://webhome.cs.uvic.ca/~mstorey)
- [Alexey Zagalsky](http://alexeyza.com/)
- Cliff McCollum
- [Arie Van Deursen](http://www.st.ewi.tudelft.nl/~arie/)
- [Ian Bull](http://ianbull.com/)

**Teams and Projects:**
View current and past [teams and projects](teams and projects.md).

**Reception Hour:** By appointment. Friday 1:00-2:00pm at ECS 542a (please send an email to set a meeting)

**Contact email:** [[email protected]](mailto:[email protected])

# License
This work is licensed under the [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).

![Alt text](https://i.creativecommons.org/l/by-sa/4.0/88x31.png "Creative Commons Attribution-ShareAlike 4.0 International License")
24 changes: 24 additions & 0 deletions past semesters/fall 2014/announcements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Announcements

## Interesting events
Here a few events that may interest you:

- An upcoming [PitchIt competition](http://www.uvic.ca/ice/services/competitions/pitchit/index.php) on October 16th and February 5th.
- [Startup Slam](http://ow.ly/i/6Qdge/original) meeting on September 20th.


## So, What should I do before the next meeting (12/09/2014)?
1. Form a team.
- Each team should consist of 4 students.
2. Find a project idea.
- For a web / mobile application.
- Think of a use case - a typical use - a need that could be answered by you application.
- Maybe something you always wanted to write...
3. Send us email for approval.
- Email to: [[email protected]](mailto:[email protected])
4. Open a project web site.
- Start at: [https://github.com/repositories/new](https://github.com/repositories/new).
- This will serve as your project home page.
- License: choose the one that suits you best ([this](http://choosealicense.com/) might help), if you can't decide choose Apache V2.
5. Learn JavaScript.
- It will become very useful very soon. A nice place to start is [this course](http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/) (presentation+video), [this one](http://yuiblog.com/blog/2006/10/20/video-crockford-domtheory/), and [this](http://yuiblog.com/blog/2006/11/27/video-crockford-advjs/).
30 changes: 30 additions & 0 deletions past semesters/fall 2014/final submission.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Final Submission

Note that the final submission is not done in a face-to-face presentation but rather by deploying your final application and posting all supplemental material to the Web.

By the due date (05/12/2014) you should send us an email ([[email protected]](mailto:[email protected])) that includes a:

- link to download the final application installation file or to the App-Engine website
- link for all the source code involved in your final project (client, server, other)
- link to the final project documentation (description of main use cases, architectural overview, main APIs/features, installation and usage instructions, the user study, and any other relevant information). An example for the documentation can be seen [here](https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxjbG91ZHdlYjEwYXxneDo2Y2Q3MmZjNzk1ODdmNzA2).
- link to a video demonstrating the application (try to show all the various features of your application and explain them in the video).
- A personal reflection (written by each team member) on your contribution to the project, what you did, what you **learned** and the **challenges** you faced. Please email these personal reflections to us rather than post on GitHub.

After that date, the course staff will examine your projects, test them and evaluate them, without you being present, so it is very important that everything would be self explained.

Make sure to fix issues that we gave you feedback on during the last milestone, and in case you need further clarifications, please write us an email ([[email protected]](mailto:[email protected])).
Make sure that your GitHub repository is clear and informative. Make sure your application runs correctly on the target platforms (Firefox and Chrome/Chromium **or** Android **or** iOS).

Give special attention to usability issues, look & feel, and simplicity.

**Important note:** Full grading for the Final Submission (30 points) will be determined by the following criteria:

1. Interesting use case (is it useful? have you shown or convinced us that people already use or may use it?)
2. User experience (intuitive, self explanatory)
3. Functional complexity
4. Technical difficulty (uses various technologies and resources)
5. Finishing level (bugs, missing features)
6. Documentation (is it useful for users/developers)

Good luck,
Peggy, Cliff, Arie, Ian and Alexey
65 changes: 65 additions & 0 deletions past semesters/fall 2014/milestone 1 - proof of concept.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#Milestone 1 - Proof Of Concept Presentation

For the first milestone (due on 17/10/2014) you are required to provide a proof of concept of your project. By the due date you should have created a scenario that exercises the various parts of your application (e.g. client, server, DB, external resources, etc.) and demonstrates the primary use case and novel contribution of the whole project. You are expected to show an **End-to-End demo of your primary feature**. Following this presentation, we will provide some guidelines for the work ahead:

###1. Project Hosting

Host your project at [GitHub](https://github.com/repositories/new), this will serve as your project home page:

- All source code should be pushed to the repository you created.
- Documentation (usage instructions, screenshots, etc...) should be put in their appropriate place (README.md / Wiki tab / Project Home).
- Features, bugs, and the project road-map should be administered using the Issues tab in GitHub.
- License: choose the one that suits you best ([this](http://choosealicense.com/) might help), if you can't decide choose Apache V2.

###2. Feature List

Please provide a short list of your top priority features (sorted from the most important to the least). This list should be published as soon as possible in the project web site in the **Issues section** so all team members and the course staff would be on the same page with respect to your project progress.

For each feature, state: its name, description, architectural implications, due date (milestone 1 / milestone 2 / final submission / nice to have), current status, and estimated time needed for completion.

For example:
```
- Feature name: Where did you park your car?
- Description: A Google map in which one could locate where he/she parks the family car.
- Requires: Adding logic to the server, working with Google maps API, adding client side support.
- Due: Milestone 2 (BETA).
- Status: Server side ready, other parts are missing.
- Time Estimation: 12 hours.
```
<br>
Use the standard issue tracker (GitHub Issues), as that will assist you on deciding what to do next. Every decision (as well as your grade) should be derived from this list. Always work only on the next top priority feature not done. The features should be justified by the expected use cases of your product and by the innovation of the features. Stay focused - do not spend time on re-implementing existing functionality, use mocks and stubs as much as possible in order to focus on the main things.
We are interested only in the short list. You may also have another more detailed list for your own use.

It is important to try and estimate the complexity of the various feature as soon as possible so we'd be able to estimate what could be done till the end of the semester. In order to accomplish that you should add *time estimations* for all your features in the feature list and every time you work on a feature check how long it *actually* took. After doing so for several features you'll improve your ability to estimate a given task.

###3. Product Page

Please provide on your main product page (GitHub repository) a link to your live application (web-site / download URL). Although it may not be fully functioning until the BETA milestone, it is important to be able to know what the *real* status of the final product is at any given point. Take a look at [past projects](teams%20and%20projects.md#past-teams-and-projects) or other projects on GitHub, to see how a project page can be organized.

###4. Milestone 1 Presentation (Proof of Concept)

Prepare a 10 minute presentation:

- Start with a live demo that shows what you have accomplished so far (5 minutes).
- Focus on the application's main use-case(s) that highlight its novelty and contribution.
- If a live demo is impossible, show a demo video.
- Make sure you have a backup for the demo (either video or screenshots).
- Continue with a short presentation of:
- Your progress (2 minutes: how did you split the work? what was easy? what was difficult? why?)
- Your feature list (2 minutes: what is done? which features are expected? how long do you expect the work will take?)
- Your road map (1 minute: what to expect in the future milestones? how does it differ from the original estimation?)

**Also, please send us by email: the presentation, a summary document of the above (progress, feature list, road map), and a link to your GitHub repository.**

**Important note:** Full grading for the milestone (15 points) will be given for teams that successfully:

1. Focus on the primary use case and take into account our feedback (feedback summary will be sent to you via email).
2. Follow the project plan while adapting dynamically.
3. Continuously work throughout the semester.
4. Demonstrate an interesting, self contained, primary use case of your application.
5. Give a good presentation (simple, clear, focused, time-framed, sincere).

If you have any questions please do not wait for the milestone meeting, use email: [[email protected]](mailto:[email protected])

Good luck,
Peggy, Cliff, Arie, Ian and Alexey
31 changes: 31 additions & 0 deletions past semesters/fall 2014/milestone 2 - release candidate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#Milestone 2 - Release Candidate

For the second milestone (due on Monday, 07/11/2014) you are required to show progress based on the feedback you've received from the staff about Milestone 1.

Please provide a full demonstration (**6 minutes**) of using your product in various scenarios. The demonstration should encompass your top features, and **highlight** new features or changes made since Milestone 1.
You should also be prepared to talk about your development process, in case you are asked: what is your plan for the next Milestone? how long do you expect the work would take? how did you split the work? what was easy? what was difficult? why?

If you are using a power point presentation, use **no more than 3 slides**

Some general advice:

- Prepare an appealing demo!
- You have only a short time for the demonstration so start with new features or changes you've made since Milestone 1.
- If you are demonstrating social features of your application, or any other features that require prior preparations - please prepare them in advance! (e.g. creating social networks of several users).
- It is also advised to rehearse your presentation so it will flow nicely. For example: make sure you can demonstrate different users simultaneously using different browsers.

You are required to provide in your project page (on GitHub) a link to your live application (App-Engine website or a download link to an Android apk file). In addition provide instructions on how to use your application and how to install it (if installation is needed).

**Important note:** Full grading for Milestone 2 (25 points) will be given for teams that successfully:

1. Focus on the primary use case and take into account our feedback from milestone 1 or earlier.
2. Follow the project plan while adapting dynamically.
3. Continuously work throughout the semester.
4. Demonstrate an interesting, self contained, useful and live application.
5. Providing a link to the live application.
6. Give a good presentation (simple, clear, focused, time-framed, sincere)

If you have any questions or comments please do not wait for the milestone meeting, use email: [[email protected]](mailto:[email protected])

Good luck,
Peggy, Cliff, Arie, Ian and Alexey
46 changes: 46 additions & 0 deletions past semesters/fall 2014/milestone 3 - public beta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Milestone 3 - Final Presentation (Public Beta)

We are happy to invite you to present your third milestone at ECS 660, Friday 28/11/2014 (note the room change) at 2:30pm until 5pm. We will have a social event following the class (details are forthcoming).

In this meeting, you'll have the opportunity to present the beta version of your project and share your experience with each other (as well as additional guests).

We remind you that for this third milestone you are required to provide a fully functioning project, that will be evaluated by the course staff. You will get valuable feedback regarding the expected final project configuration and scope.

This is not BETA in the sense of "only a proof of concept" but rather in the sense of "you could still fix minor bugs or add minor missing features emerged at the last minute". **By the third milestone you should have completed your product** (except for some minor bugs which you may fix until the [Final Submission](final submission.md)). Please provide a full demonstration (**15 minutes**) of using your product in various scenarios on the *live* project. The demonstration should encompass your top features, and highlight your product complexity and challenges (architectural/algorithmic/technological/design/usability etc). You should also talk about your development process (for an additional **5 minutes**). Tell us: how did you split the work? what was easy? what was difficult? why? what did you learn during the course? what feedback did you receive from users about your app?

If you are using a power point presentation, use **no more than 10** slides altogether (including cover slide). Please send us the presentation (and any other document that you think would be useful for us to better evaluate your work) by email beforehand. As we may have additional guests that did not attend your previous presentations, **make sure your presentation is self contained**. You may also invite additional guests to the presentation.

Please include in your presentation:

- Product overview and motivation
- High level architecture, and the technologies used
- Project challenges, including your own experience and reflections

Some general advice:

- Prepare an appealing demo!
- You have only a short time for the demonstration so start with your key features and give an overview of what the app is about for guests who will be there for the first time.
- If you are demonstrating social features of your gadget, or any other features that require prior preparations - please prepare them in advance! (e.g. creating social networks of several users).
- It is also advised to rehearse your presentation so it will flow nicely. For example: make sure you can demonstrate different users simultaneously using different browsers.
- Try to test out your laptop in ECS 660 in advance of your presentation.

If by this stage you've already done a pilot with real users please provide a **very short** summary explaining how you've done the pilot and what feedback you've received from the users (please send us by email the pilot summary beforehand).

For mobile applications you are required to provide a link to a page which will include installation and usage instructions for your users. This page should have images/videos which show how to install and use your application. In addition it should have a requirements section (i.e. if your app needs android 4.0). This page needs to be simple and clear so that any user (including users which have never seen your app before) could install and use your application.

**Important note:** Full grading for the milestone (25 points) will be given for teams that successfully:

1. Focused on the primary use case and take into account our feedback from milestone 2 or earlier.
2. Followed the project plan while adapting dynamically.
3. Continuously worked throughout the semester.
4. Demonstrated an interesting, self contained, useful, and live application.
5. Provided a link to a live application and a link to installation/usage instructions page
6. Implemented a set of polished features
7. Gave a good presentation (simple, clear, focused, time-framed, sincere)

**Important note:** This is not the final submission of your project. Please see details on the [Final Submission](final submission.md) page.

If you have any questions or comments please do not wait for the milestone meeting, use email: [[email protected]](mailto:[email protected])

Good luck,
Peggy, Cliff, Arie, Ian and Alexey
Loading

0 comments on commit 98b2eff

Please sign in to comment.