Skip to content

Commit

Permalink
release project details
Browse files Browse the repository at this point in the history
  • Loading branch information
firasm committed May 11, 2024
1 parent 9d03adb commit 97b196f
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 0 deletions.
5 changes: 5 additions & 0 deletions _toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ parts:
- file: notes/part01/lab01A
- file: notes/part01/lab01B

- caption: Course Project
chapters:
- file: notes/project/team_formation
- file: notes/project/progress01


- caption: Course Feedback
chapters:
Expand Down
Binary file added notes/project/images/canvas_groups.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added notes/project/images/first_person_in_group.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added notes/project/images/other_group_members.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions notes/project/progress01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Progress 1

## First steps

Brainstorm some ideas for the first lab.
In Lab 1A, we will finalize groups, and discuss project ideas.
By Lab 1B, you should have selected a project topic.

## Project Requirements:

Must be completed with your group by Workshop 2. (Will be graded in Design Review.)

- Must have a repo in github which all group members can access and send us the link(we’ll provide a form)
- In order to create a repo, you will need to decide on a project name
- Project Description: Write 3-5 sentences on your project topic. (try to address all points below)
- Who is it for?
- What will it do? (What "human activity" will it support?)
- What type of data will it store?
- What will users be able to do with this data?
- What is some additional functionality you can add/remove based on time constraints?
- Project task requirements:
- 3-5 minimal requirements (will definitely complete)
- 3-7 "standard" requirements (will most likely complete)
- 2-3 stretch requirements (plan to complete at least 1!)
- Pick 2 of your minimal requirements and break each of them down into ~2-5 smaller tasks!
- This will help you divide up work among your teammates
- Finally, draw 2-3 rough sketch prototypes of some key tasks of your app. Sketch these physically on paper and then scan and add to your repo. (If you’d like to use sketch/prototype software because that’s easier somehow, you can, but we’d advise against it as these prototypes should be low-fidelity (i.e. look bad)).

## Before you form your group

See the [details here](team_formation) before proceeding!

## Form your Group

1. When you're ready to form your group, you should all first self-select a Group on Canvas, let's say you are Group03:

<img src="images/canvas_groups.png" width="500px">

2. Then, you should come up with (an appropriate) team name (short, snappy, witty). Let's say the team name is `auroras_borealjs`.

3. Designate one person in the team that will be responsible for "create a team" on GitHub (you will get the link to do this in the next step) using the following format: `XY_team_name`, for us it will be: `03_auroras_borealjs`.

```{tip}
Please help us by making sure the repo names are set according to this format: `XY_team_name` so it is easier for our TAs to grade.
An example will be: `03_auroras_borealjs`.
```

4. The designated person in the previous step should [use the following GitHub Classroom link](https://classroom.github.com/a/MohHZSau) to create a team.

<img src="images/first_person_in_group.png" width="500px">

5. Once the first person has created the team, a repo will automatically be created, and the three other group members should join:

<img src="images/other_group_members.png" width="500px">

6. That's it! Once everyone joins, all team members should have admin access to that repo - this is now your repo for the rest of the term!

## How to submit

Put all of the writing (Project Description, Project Task requirements, task breakdown), as well as your prototypes into the README of your project repo.
You will be submitting your project repository on Canvas - note: your project repository **must** be under the course and term organization (i.e. it cannot be a personal repository).
ALSO, for each team member, go on slack and edit your profile. In the "What I do" space, put your team name and team number!
51 changes: 51 additions & 0 deletions notes/project/team_formation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
(team_formation)=
# Team Formation

Here are some things to consider before forming your group:

You will be doing this project in **teams of 4**, as all of the logistics are designed for that many students.
As you can imagine, there is a fair bit of anxiety associated with group projects but know that this particular group project has several features that should make it possible to deal with any unforeseen circumstances.
There is a little bit of additional work needed to form a team, so we can make sure that all team members are on the same page, and teamwork can happen harmoniously.
Below is some guidance for you, we expect you to read it all the way through.

### Considerations when looking for a team

It may be very tempting to do this, but try to avoid making a group with people you already know and have worked with in the past.
I know this will be really hard and counter-intuitive, but group dynamics are very tricky and in my experience people that don't know each other from before tend to approach the project and the code of conduct differently.

#### Consideration 1: Interest in the topic

As we've said, the **most important** thing you should look for in a team member, is an interest in the topic of whatever project you end up choosing.

#### Consideration 2: Diversity of knowledge, experience, and skills

Here is a self-assessment form that each members of your group should do.

| Traits | Beginner | Novice | Expert |
|---------------------------------------|----------|--------|--------|
| General familiarity with technology | | | |
| Programming Experience (any language) | | | |
| Presentations and communication | | | |
| Organization and Logistics | | | |
| Design/Aesthetic skills | | | |
| Attention to Detail | | | |

The ideal group would have a healthy mix of traits in each of the group members.
It's very unlikely that one person will be an "expert" in everything, and we want to make sure the group experience is such that everyone can learn and benefit in different ways.
We are not going to police your groups, but the groups that we "worry about" the most, are those where all members declare themselves as "experts".

#### Consideration 3: Availability

You should work with group members with whom you can easily find a weekly timeslot to meet, if possible and convenient, some meetings in person.
There is nothing more frustrating than group members who can't find a time to work on things simultaneously.
If you are a morning person, try to find others who want to work in the mornings.
If you stay up till 3 AM every night, it will likely not make a good match to work with team members who want to meet at 8 AM.

#### Consideration 4: Goals for the project

You should work with group members with shared goals on what your final objective is.
Your objective could be as simple as "do the bare minimum to pass the project", or "do as much as I can given my heavy course and work load" (make sure to define what "as much as I can" means), or "try everything, and aim to do the best I can", or "my goal is to make something I'm proud of that I can show my future employers".
Consider all those options above and make sure your team members are on the same page.

Good luck!

0 comments on commit 97b196f

Please sign in to comment.