blob: bf5cc90504151a48dfbd50eaf5e5fbe8738a1042 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
{% extends "events/base_sidebar.html" %}
{% block breadcrumb %}
<li><a href="{% url "events:index" %}">Events</a></li>
<li><a href="{% url "events:page" path="code-jams" %}">Code Jams</a></li>
<li class="is-active"><a href="#">How does judging work?</a></li>
{% endblock %}
{% block title %}How does judging work?{% endblock %}
{% block event_content %}
<p>
Here at Python Discord, judging the code jam is a process that continues throughout the entire event.
This document seeks to detail exactly what the judges will consider when attempting to determine the winner of the code jam.
</p>
<p>
Because programming is full of subtleties and judging is not an exact science, this document will inevitably fall short of
being an exact guide for how to win, but it should at least give you an idea of what you should be mindful of as a participant.
</p>
<h2 class="title is-4">Project Overall</h2>
<p>
We'll be looking at the following 4 following categories when initially judging each project to select the top 10.
These items will also play a factor when judging the top 10 during the in-depth code review.
</p>
<ul>
<li>
<p><strong>Creativity</strong></p>
<ul>
<li>Does your project do something unique?</li>
<li>Does your project have an interesting twist on an existing concept?</li>
</ul>
</li>
<li>
<p><strong>Scope</strong></p>
<ul>
<li>Does the project have a lot of features?</li>
<li>Are the features ambitious?</li>
<li>Are the features focused around the core concept of the project?</li>
</ul>
</li>
<li>
<p><strong>Execution</strong></p>
<ul>
<li>Given what is implemented, is it implemented well?</li>
<li>Do the implemented features work well? Are they bug-free?</li>
<li>Are the features thorough and robust?</li>
</ul>
</li>
<li>
<p><strong>Usage of required Tech</strong></p>
<ul>
<li>Does the project use required technology?</li>
<li>Is the technology used in the core part of the project?</li>
</ul>
</li>
<li>
<p><strong>Incorporating the Theme</strong></p>
<ul>
<li>Does the project incorporate the given theme?</li>
<li>Is the connection to the theme clear?</li>
</ul>
</li>
</ul>
<h2 class="title is-4">Code Quality</h2>
<p>
We'll be looking at the overall code quality and the code style of projects.
Some of the things we'll be looking at during judging:
<ul>
<li>
Do variables have good names that makes it clear what they represent?
</li>
<li>
Does the file layout for the project make sense? Is it easy to navigate?
</li>
<li>
Does the code follow a modern and accepted style guide, such as <a href="https://www.python.org/dev/peps/pep-0008/">PEP8</a>?
</li>
<li>
Are docstrings used? If there are comments, are they appropriately used?
</li>
</ul>
</p>
<h2>Commit Quality</h2>
<p>
We'll also be looking at the commits of a project. Here are some specifics we'll be looking at:
<ul>
<li>
Do the commit messages explain what the commit is doing?
</li>
<li>
Does the commit message body explain why the change is being implemented where appropriate?
</li>
<li>
Are the commits appropriately sized (i.e. <a href="https://www.aleksandrhovhannisyan.com/blog/atomic-git-commits/">atomic commits</a>)?
</li>
</ul>
</p>
<h2>Documentation</h2>
<p>
Documentation is critical for any project to tell other developers and end users how to actually use your project.
Make sure your documentation can answer the following questions and cover the following topics.
<ul>
<li>
What does the project do? What features does the project have?
</li>
<li>
How do you install and run the project?
</li>
<li>
Are there multiple ways to install and run the project?
</li>
<li>
Are there external dependencies a user should be aware of to run the project?
</li>
<li>
What are the main ways someone can interact with the project? Are there commands to be aware of?
</li>
</ul>
</p>
<h2>Teamwork</h2>
<p>
Teamwork is a major aspect of this code jam. We will be looking to see if people on the team contributed and work was split up appropriately.
</p>
<p>
If a teammate is unable to contribute during the code jam or becomes unresponsive, we will have a form for teams to fill out to let the Events Team
know. We still expect to see the remaining team members work together collaboratively for the remainder of the project.
</p>
{% endblock %}
{% block sidebar %}
{% include "events/sidebar/code-jams/useful-information.html" %}
{% endblock %}
|