Skip to content

Latest commit

 

History

History
144 lines (108 loc) · 6.62 KB

proj1.md

File metadata and controls

144 lines (108 loc) · 6.62 KB

 home :: syllabus :: timetable :: groups :: moodle :: video :: © 2021


Project 1

Goal: start something that another groups will say "yes, for Project2, we want to finish that".

By the end of September, project1 will deliver:

  • something that executes some of your goals,
  • a roadmap telling others where to go from here
  • all the "bling" (described below) needed to convince another group that they should use your system.

Start by Picking a Project

(Hint: do it now!)

Pick something. Code it in any language using any tools you like. But

  • everyone on the team has to use the same tools
  • all the work has to be shared via Github (public repos, general GH-- not NCSU):

Pick something that was popular last year (look for the things that got most votes).

  • Heck, even get a kick start by starting with a project from last year.

What to do? Well pick something:

  • Cool:
    • Cause you have to impress;
  • Not ambitious:
    • So you can make significant progress in 4 weeks;
  • Not too small:
    • So you can impress people with the work;
  • Small enough:
    • So you can finish;
  • Where there is something already running:
    • So you get going fast;
  • Something the whole team can contribute to
    • Work in a language that everyone in the team can handle:
    • Work on a problem everyone can understand

If you want to be in the running for "projects that survivie into the next round" your system has to do something better then something else.

  • Which means your code has to address some problem in some current system
  • And do so in a manner that is quantifiable.

Examples of "good" repos

What do these badges mean?

picocli

GitHub Release Build Status codecov Follow @remkopopma Follow @picocli Follow picocli on StackShare

What do these badges mean?

  • code coverage percentage: coverage
  • stable release version: version
  • package manager release: gem
  • status of third-party dependencies: dependencies
  • static code analysis grade: codacy
  • SemVer version observance: semver
  • amount of Liberapay donations per week: receives
  • Python package downloads: downloads
  • Chrome Web Store extension rating: rating
  • Uptime Robot percentage: uptime

(If you want more badges, see shields.io).

What are the features of the following repos that make them "good"?

Grading

Your work will be assessed via how many of the Linux Kernel Best Practices (see pages 25,26) you can emulate.

image

  • Reflect on our project1 grading rubric
  • Write a 2 page pdf on the commnection between the items in that rubric and the Linux Kernel best practices. And that document to your repo as docs/proj1rubricComments.pdf. Write the that pdf using this template
    • Not "nearly" this template. This tempalte. Learn Latex. Hit: use overleaf.
  • Copy the rubric to a markdown file. Fill it in. Where needed, add links into your repo to justify your answers. And that document to your repo as docs/proj1rubric.md.

Good practices for Effecive Teaming

What Notes
Location Meet however it makes teams most comfortable (in-person, on-line, whatever the team agrees on).
Duration Usually, keep meetings short (exception: long range direction meetings)
End of meeting Always agree on next meeting time before this meeting ends.
Review everyone's to do list
Start of meeting review everyone's to do lists from last meeting
Misc Group members attended group sessions
Distrbuted dev model: decisions made by unanmyous vote
group meetings had a round robin speaking order
group meetings had a moderator that managed the round robin
group meeting moderator rotated among the group