Skip to content

Latest commit

 

History

History
132 lines (113 loc) · 5.98 KB

proj1.md

File metadata and controls

132 lines (113 loc) · 5.98 KB



 home :: syllabus :: timetable :: groups :: moodle :: chat :: © 2020


Project 1

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

Goal2: (much harder) start something another groups will say "yes, for Project3, we know how to evaluate if that does something better than something else".

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):

What to do? Well pick something:

  • Cool:
    • Cause you have to impress;
  • Ambitious:
    • Cause you are here to make mistakes
  • Not too ambitious:
    • So you cannot make significant progress in 5 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 "best project" in task3, 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.
  • For that kind of assessment, doing something AI related is useful (but don't feel obliged to go there is you have other ideas).
    • For notes on categories of AI-for-SE applications, see here.

Grading

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

Note: complete this table and add to the root of your project in a file called PROJ1-selfAssessment.md.

Total score:

  • write down "4" into every right-hand-side cell
  • Look for evidence that any "4" should be something else
  • sum the right-hand-column, divide by number of rows

What Notes score 0..4
(0=no, 2=ok, 4=wow!)
Misc Group members attended tutorial 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
code conforms to some packaging standard
code has can be downloaded from some standard package manager
workload is spread over the whole team (one team member is often Xtimes more productive than the others... but nevertheless, here is a track record that everyone is contributing a lot)
Number of commits
Number of commits: by different people
Issues reports: there are many
issues are being closed
License: exists
DOI badge: exists
Docs: doco generated , format not ugly
Docs: what: point descriptions of each class/function (in isolation)
Docs: how: for common use cases X,Y,Z mini-tutorials showing worked examples on how to do X,Y,Z
Docs: why: docs tell a story, motivate the whole thing, deliver a punchline that makes you want to rush out and use the thing
Docs: 3 minute video, posted to YouTube. That convinces people why they want to work on your code.
(hard) code conforms to some known patterns
Tools Matter Use of version control tools
Extensive use of version control tools
Repo has an up-to-date requirements.txt file
Repo does not have "ignore" files.
Use of style checkers
Extensive Use of style checkers
Use of code formatters.
Extensive Use of code formatters.
Use of syntax checkers.
Extensive use of syntax checkers.
Use of code coverage
Extensive use of code coverage
other automated analysis tools
Extensive use of other automated analysis tools
test cases exist
test cases are routinely executed
consensus-oriented model the files CONTRIBUTING.md and CODEOFCONDUCT.md has have multiple edits by multiple people
the files CONTRIBUTING.md lists coding standards and lots of tips on how to extend the system without screwing things up
multiple people contribute to discussions
issues are discussed before they are closed
Chat channel: exists
Chat channel: is active
test cases:.a large proportion of the issues related to handling failing cases.
zero internal boundaries evidence that the whole team is using the same tools: everyone can get to all tools and files
evidence that the whole team is using the same tools (e.g. config files in the repo, updated by lots of different people)
evidence that the whole team is using the same tools (e.g. tutor can ask anyone to share screen, they demonstrate the system running on their computer)
evidence that the members of the team are working across multiple places in the code base
low-regressions rule (hard to judge) features released are not subsequently removed
short release cycles (hard to see in short projects) project members are committing often enough so that everyone can get your work