shanep-class 1.0.27 → 1.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 818f61b0b2855fa2949290fe0fff9f91528c2c1294326c5ddc36ed86093fa053
4
- data.tar.gz: a6ae474ee7f0233b6fc00a81d56a05d5af3256a62811a47f658a9bffb81222fa
3
+ metadata.gz: 388a4e981a3bad530d7775af55a2423fd4265f05b2f2beeedca4d10f1dcca868
4
+ data.tar.gz: 53e0b041a5589a3259a4af02e1ce28e8882c9256a809c2e78e5a8d6d480e1e7a
5
5
  SHA512:
6
- metadata.gz: bfcc957d5d6fbac73ff2dc354f56653d91cdfa3e3baeade196b5e4792b6967e753a7f3ae92cd0694de6deeb0fde9b7c2a0a305280cc664bd3d3b8dcd76a64177
7
- data.tar.gz: b289cc7aace072eac169d54ff7bd33e493c37df401d3e97987a19131fb5a259d85d090e43c8b7bd4aa85cbb8d2345e5350a482f39a9bd3679c9479fd0714e196
6
+ metadata.gz: 0b36911efe9a27fc8c229b313caff3157b74e8f29c1929d96d0a86b9eca2db67c1ab15c8c41b04081dda2569e63049f9c5308a197e20e5d0a40c2d34310fe2e7
7
+ data.tar.gz: 3c5d07ebeb864d3a978fa132e20433ca94c2ec00faa3535126c1dd4f476cbad9fe021fb2d9e5d37f9875bc5c0bf8cccdae0c3262c219e490f5509b4e09b507c4
@@ -0,0 +1,164 @@
1
+ {% capture headingsWorkspace %}
2
+ {% comment %}
3
+ Copyright (c) 2018 Vladimir "allejo" Jimenez
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21
+ OTHER DEALINGS IN THE SOFTWARE.
22
+ {% endcomment %}
23
+ {% comment %}
24
+ Version 1.0.11
25
+ https://github.com/allejo/jekyll-anchor-headings
26
+ "Be the pull request you wish to see in the world." ~Ben Balter
27
+ Usage:
28
+ {% include anchor_headings.html html=content anchorBody="#" %}
29
+ Parameters:
30
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
31
+ Optional Parameters:
32
+ * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
33
+ * headerAttrs (string) : '' - Any custom HTML attributes that will be added to the heading tag; you may NOT use `id`;
34
+ the `%heading%` and `%html_id%` placeholders are available
35
+ * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`;
36
+ the `%heading%` and `%html_id%` placeholders are available
37
+ * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
38
+ * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
39
+ * anchorTitle (string) : '' - The `title` attribute that will be used for anchors
40
+ * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
41
+ * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
42
+ * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
43
+ * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
44
+ * generateId (true) : false - Set to true if a header without id should generate an id to use.
45
+ Output:
46
+ The original HTML with the addition of anchors inside of all of the h1-h6 headings.
47
+ {% endcomment %}
48
+
49
+ {% assign minHeader = include.h_min | default: 1 %}
50
+ {% assign maxHeader = include.h_max | default: 6 %}
51
+ {% assign beforeHeading = include.beforeHeading %}
52
+ {% assign headerAttrs = include.headerAttrs %}
53
+ {% assign nodes = include.html | split: '<h' %}
54
+
55
+ {% capture edited_headings %}{% endcapture %}
56
+
57
+ {% for _node in nodes %}
58
+ {% capture node %}{{ _node | strip }}{% endcapture %}
59
+
60
+ {% if node == "" %}
61
+ {% continue %}
62
+ {% endif %}
63
+
64
+ {% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
65
+ {% assign headerLevel = nextChar | times: 1 %}
66
+
67
+ <!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's see if we need to fix it -->
68
+ {% if headerLevel == 0 %}
69
+ <!-- Split up the node based on closing angle brackets and get the first one. -->
70
+ {% assign firstChunk = node | split: '>' | first %}
71
+
72
+ <!-- If the first chunk does NOT contain a '<', that means we've broken another HTML tag that starts with 'h' -->
73
+ {% unless firstChunk contains '<' %}
74
+ {% capture node %}<h{{ node }}{% endcapture %}
75
+ {% endunless %}
76
+
77
+ {% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
78
+ {% continue %}
79
+ {% endif %}
80
+
81
+ {% capture _closingTag %}</h{{ headerLevel }}>{% endcapture %}
82
+ {% assign _workspace = node | split: _closingTag %}
83
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
84
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
85
+ {% assign escaped_header = header | strip_html | strip %}
86
+
87
+ {% assign _classWorkspace = _workspace[0] | split: 'class="' %}
88
+ {% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
89
+ {% assign _html_class = _classWorkspace[0] %}
90
+
91
+ {% if _html_class contains "no_anchor" %}
92
+ {% assign skip_anchor = true %}
93
+ {% else %}
94
+ {% assign skip_anchor = false %}
95
+ {% endif %}
96
+
97
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
98
+ {% if _idWorkspace[1] %}
99
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
100
+ {% assign html_id = _idWorkspace[0] %}
101
+ {% elsif include.generateId %}
102
+ <!-- If the header did not have an id we create one. -->
103
+ {% assign html_id = escaped_header | slugify %}
104
+ {% if html_id == "" %}
105
+ {% assign html_id = false %}
106
+ {% endif %}
107
+ {% capture headerAttrs %}{{ headerAttrs }} id="%html_id%"{% endcapture %}
108
+ {% endif %}
109
+
110
+ <!-- Build the anchor to inject for our heading -->
111
+ {% capture anchor %}{% endcapture %}
112
+
113
+ {% if skip_anchor == false and html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
114
+ {% if headerAttrs %}
115
+ {% capture _hAttrToStrip %}{{ _hAttrToStrip | split: '>' | first }} {{ headerAttrs | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}>{% endcapture %}
116
+ {% endif %}
117
+
118
+ {% capture anchor %}href="#{{ html_id }}"{% endcapture %}
119
+
120
+ {% if include.anchorClass %}
121
+ {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
122
+ {% endif %}
123
+
124
+ {% if include.anchorTitle %}
125
+ {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', escaped_header }}"{% endcapture %}
126
+ {% endif %}
127
+
128
+ {% if include.anchorAttrs %}
129
+ {% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}{% endcapture %}
130
+ {% endif %}
131
+
132
+ {% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', escaped_header | default: '' }}</a>{% endcapture %}
133
+
134
+ <!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
135
+ {% if beforeHeading %}
136
+ {% capture anchor %}{{ anchor }} {% endcapture %}
137
+ {% else %}
138
+ {% capture anchor %} {{ anchor }}{% endcapture %}
139
+ {% endif %}
140
+ {% endif %}
141
+
142
+ {% capture new_heading %}
143
+ <h{{ _hAttrToStrip }}
144
+ {{ include.bodyPrefix }}
145
+ {% if beforeHeading %}
146
+ {{ anchor }}{{ header }}
147
+ {% else %}
148
+ {{ header }}{{ anchor }}
149
+ {% endif %}
150
+ {{ include.bodySuffix }}
151
+ </h{{ headerLevel }}>
152
+ {% endcapture %}
153
+
154
+ <!--
155
+ If we have content after the `</hX>` tag, then we'll want to append that here so we don't lost any content.
156
+ -->
157
+ {% assign chunkCount = _workspace | size %}
158
+ {% if chunkCount > 1 %}
159
+ {% capture new_heading %}{{ new_heading }}{{ _workspace | last }}{% endcapture %}
160
+ {% endif %}
161
+
162
+ {% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
163
+ {% endfor %}
164
+ {% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
data/_layouts/course.html CHANGED
@@ -54,7 +54,7 @@ layout: default
54
54
  </iframe>
55
55
  </div>
56
56
  {% endif %}
57
- {{content}}
57
+ {% include anchor_headings.html html=content anchorBody="#" %}
58
58
  </article>
59
59
  {% include footer.html %}
60
60
  </div>
@@ -0,0 +1,387 @@
1
+ ---
2
+ layout: course
3
+ ---
4
+
5
+ {% assign tableFile = site.data.semester-info %}
6
+
7
+ <img src={{"/assets/images/home_page.png"}} alt="Course Logo">
8
+
9
+ <h2 id="welcome">Welcome!</h2>
10
+
11
+ {% include youtube.html param= tableFile.welcome-video %}
12
+
13
+ <p>
14
+ {{tableFile.welcome-message}}
15
+ </p>
16
+
17
+ {% assign one_day = 1 | times: 24 | times: 60 | times: 60 %}
18
+ {% assign two_days = 2 | times: 24 | times: 60 | times: 60 %}
19
+ {% assign three_days = 3 | times: 24 | times: 60 | times: 60 %}
20
+ {% assign four_days = 4 | times: 24 | times: 60 | times: 60 %}
21
+
22
+
23
+ {% if tableFile.start-day == "monday" %}
24
+ {% assign curr_date = tableFile.start-date | date: "%s" | minus: four_days%}
25
+ {% elsif tableFile.start-day == "tuesday" %}
26
+ {% assign curr_date = tableFile.start-date | date: "%s" | minus: three_days%}
27
+ {% elsif tableFile.start-day == "wednesday" %}
28
+ {% assign curr_date = tableFile.start-date | date: "%s" | minus: two_days%}
29
+ {% elsif tableFile.start-day == "thursday" %}
30
+ {% assign curr_date = tableFile.start-date | date: "%s" | minus: one_day %}
31
+ {% endif%}
32
+
33
+ <div>
34
+ <h2 id="homework">Weekly Homework</h2>
35
+ <p>
36
+ The table below shows everything that is due this semester! Barring any cataclysmic events such as a
37
+ <a href="https://en.wikipedia.org/wiki/COVID-19">global pandemic,</a> nothing will be added,
38
+ removed, or changed in the schedule below.
39
+ </p>
40
+ <table style="margin:auto;height: 100%; width: 100%;">
41
+ <thead>
42
+ <tr>
43
+ <th class="text-center">Week</th>
44
+ <th>Due Date</th>
45
+ <th>Homework</th>
46
+ <th>Points</th>
47
+ </tr>
48
+ </thead>
49
+
50
+ <tbody>
51
+ {% assign curr_week = 1 %}
52
+ {% assign curr_module = "none" %}
53
+
54
+ {% assign loop_counter = 1 %}
55
+ {% assign pgs = site.lessons | sort: 'slug' %}
56
+ {% assign total_points = 0%}
57
+ {% for page in pgs %}
58
+ {% if page.path contains "lesson" %}
59
+ {% assign loop_counter = loop_counter | plus: 1 %}
60
+ {% if curr_module != page.tag %}
61
+ <!--Module header-->
62
+ <tr>
63
+ <td colspan="4" class="text-center table-darkish">{{page.tag | capitalize }}</td>
64
+ </tr>
65
+ {% assign curr_module = page.tag %}
66
+ {% endif%}
67
+ {% if page.layout == "reading-zybooks" %}
68
+ {% assign page_title = site.data.semester-info.reading[page.slug] %}
69
+ {% else%}
70
+ {% assign page_title = page.title %}
71
+ {% endif %}
72
+
73
+
74
+
75
+ {% if curr_week == tableFile.break %}
76
+ <!--Add in the break week, we need to grab the next lesson before inserting new week-->
77
+ <tr>
78
+ {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
79
+ <td>{{curr_date | date: "%m/%d - %a"}}</td>
80
+ <td><a href="{{site.url}}{{page.url}}">{{page_title}}</a> <span class="small-text">{{page.slug}}</span>{%if page.layout == "lab"%} <a class="no-dec" href="{{site.data.semester-info.labs[page.slug]}}">🧪</a> {%elsif page.layout == "project" %} 📡 {% endif%} {%if page.video %}<a class="no-dec" href=https://www.youtube.com/watch?v={{page.video}}>📺 </a>{% endif %}</td>
81
+ <td>{{page.points}}</td>
82
+ {% assign total_points = total_points | plus: page.points %}
83
+ </tr>
84
+ <tr>
85
+ <td rowspan= 2 class="table-lightish text-center border">
86
+ {% assign curr_date = curr_date | date: "%s" | plus: three_days %}
87
+ {{curr_week}}
88
+ </td>
89
+ {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
90
+ <td>{{curr_date | date: "%m/%d - %a"}}</td>
91
+ <td>Break</td>
92
+ </tr>
93
+ <tr>
94
+ {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
95
+ <td>{{curr_date | date: "%m/%d - %a"}}</td>
96
+ <td>Break</td>
97
+ </tr>
98
+ {% assign curr_week = curr_week | plus: 1 %}
99
+ {%else%}
100
+
101
+ <tr>
102
+ {% comment %}
103
+ Need to keep track of our own loop counter to filter out docs don't use forloop.index
104
+ {% endcomment %}
105
+ {% assign tmp = loop_counter | modulo: 2 %}
106
+ {% if tmp == 0 %}
107
+ <td rowspan= 2 class="table-lightish text-center border">
108
+ {% assign curr_date = curr_date | date: "%s" | plus: three_days %}
109
+ {{curr_week}}
110
+ {% assign curr_week = curr_week | plus: 1 %}
111
+ </td>
112
+ {% endif %}
113
+ {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
114
+ <td>{{curr_date | date: "%m/%d - %a"}}</td>
115
+ <td><a href="{{site.url}}{{page.url}}">{{page_title}}</a> <span class="small-text">{{page.slug}}</span>{%if page.layout == "lab"%} <a class="no-dec" href="{{site.data.semester-info.labs[page.slug]}}">🧪</a> {%elsif page.layout == "project" %} 📡 {% endif%} {%if page.video %}<a class="no-dec" href=https://www.youtube.com/watch?v={{page.video}}>📺 </a>{% endif %}</td>
116
+ <td>{{page.points}}</td>
117
+ {% assign total_points = total_points | plus: page.points %}
118
+ </tr>
119
+ {%endif%}
120
+ {% endif %}
121
+ {% endfor%}
122
+ </tbody>
123
+ <tfoot>
124
+ <tr>
125
+ <td colspan="3" class="table-lightish">Total Points:</td>
126
+ <td class="table-lightish">{{total_points}}</td>
127
+ </tr>
128
+ </tfoot>
129
+ </table>
130
+
131
+ <h2 id="catalog-description">Catalog description</h2>
132
+
133
+ {{tableFile.catalog}}
134
+
135
+ <h2 id="final-grades">Grading Policy</h2>
136
+
137
+ <p>
138
+ {% assign example_grade = total_points | times: 76 | divided_by: 100 %}
139
+
140
+ Final grades will be assigned with the formula [Earned Points]/[Total Points].
141
+ </p>
142
+ <p>
143
+ For example if you earn {{example_grade}} points out of {{total_points}} points offered your
144
+ grade would be a {{example_grade | times: 100 | divided_by: total_points }}%. So your final
145
+ letter grade will be a C according to the chart below. <strong>Grades will not be
146
+ rounded</strong>, if you are on a grade boundary please see the <a
147
+ href="#extra-credit-opportunities">extra credit</a> section below for opportunities to improve
148
+ your grade.
149
+ </p>
150
+
151
+
152
+
153
+ <table>
154
+ <thead>
155
+ <tr>
156
+ <th>Percentage</th>
157
+ <th>Letter</th>
158
+ </tr>
159
+ </thead>
160
+ <tbody>
161
+ <tr>
162
+ <td>94% &lt; 100%</td>
163
+ <td>A</td>
164
+ </tr>
165
+ <tr>
166
+ <td>90% &lt; 94%</td>
167
+ <td>A-</td>
168
+ </tr>
169
+ <tr>
170
+ <td>87% &lt; 90%</td>
171
+ <td>B+</td>
172
+ </tr>
173
+ <tr>
174
+ <td>84% &lt; 87%</td>
175
+ <td>B</td>
176
+ </tr>
177
+ <tr>
178
+ <td>80% &lt; 84%</td>
179
+ <td>B-</td>
180
+ </tr>
181
+ <tr>
182
+ <td>77% &lt; 80%</td>
183
+ <td>C+</td>
184
+ </tr>
185
+ <tr>
186
+ <td>74% &lt; 77%</td>
187
+ <td>C</td>
188
+ </tr>
189
+ <tr>
190
+ <td>70% &lt; 74%</td>
191
+ <td>C-</td>
192
+ </tr>
193
+ <tr>
194
+ <td>67% &lt; 70%</td>
195
+ <td>D+</td>
196
+ </tr>
197
+ <tr>
198
+ <td>64% &lt; 67%</td>
199
+ <td>D</td>
200
+ </tr>
201
+ <tr>
202
+ <td>60% &lt; 64%</td>
203
+ <td>D-</td>
204
+ </tr>
205
+ <tr>
206
+ <td>0 &lt; 60%</td>
207
+ <td>F</td>
208
+ </tr>
209
+ </tbody>
210
+ </table>
211
+
212
+ <h3 id="can-i-still-pass">Can I still pass?</h3>
213
+
214
+ <p>
215
+ The passing grade for courses in the Computer Science Department is 70%. So we can calculate the
216
+ absolute minimum number of points that you need to earn in this course as {{total_points |
217
+ times: 70 | divided_by: 100 | plus: 1}}. To know if you still can pass the course all you need
218
+ to do is take your current grade and then add in any points that you could still earn before the
219
+ end of the semester. If that number is below {{total_points | times: 70 | divided_by: 100 |
220
+ plus: 1}} then it is not mathematically possible for you to pass the class.
221
+ </p>
222
+
223
+ <h3 id="incomplete">Incomplete</h3>
224
+
225
+ <p>
226
+ Instructors can enter a grade of I—for incomplete—if both of the following conditions are present:
227
+ </p>
228
+ <ul>
229
+ <li>
230
+ You have completed either 80% of the course or 80% of the coursework.
231
+ </li>
232
+ <li>
233
+ Extenuating circumstances make it impossible for you to complete the course before the end of the semester.
234
+ </li>
235
+ </ul>
236
+
237
+ <p>
238
+ Be aware that the University considers an extenuating circumstance to be along the lines of "I
239
+ was in the hospital for the last 2 weeks in a coma". More information can be found on the
240
+ <a href="https://www.boisestate.edu/registrar/degree-requirements/grades/">registrar's</a> page.
241
+ </p>
242
+
243
+
244
+
245
+
246
+
247
+ <h2 id="institutional-policies">Institutional Policies</h2>
248
+
249
+ <ul>
250
+ <li>
251
+ Please review the <a
252
+ href="https://www.boisestate.edu/registrar/general-information-and-policies/academic-integrity/">
253
+ academic-integrity</a> policy set by the university. Violations of this policy will result in the student
254
+ receiving a failing grade (F) for the course.</li>
255
+ <li>
256
+ It is expected that all students <a
257
+ href="https://www.boisestate.edu/policy/student-affairs/code-of-conduct/">read</a>
258
+ and follow the University policy 2020. Any violation of University policy 2020 can result in the
259
+ student being removed from the class discussion and study groups. The students participation score
260
+ will be set to 0 and no alternative assignment will be given. Egregious behavior will be reported
261
+ to the <a href="https://www.boisestate.edu/deanofstudents/student-conduct-report-form/">dean of students</a>
262
+ for additional sanctions which can include receiving a failing grade (F) in the course.
263
+ </li>
264
+ <li>If you need help with accessibility you can visit the <a href="https://eac.boisestate.edu/">educational access
265
+ center</a></li>
266
+ </ul>
267
+
268
+
269
+
270
+ <h2 id="academic-honesty">Academic Honesty Policy</h2>
271
+
272
+ <p>
273
+ Programming assignments require the implementation of working programs using the language
274
+ constructs and techniques introduced in class. Programs must execute and compile on the operating
275
+ system and compiler specified. Students are expected to work on their own unless explicitly
276
+ instructed otherwise. Students who allow their work to be copied will be written up along with
277
+ the student who copied. Cheating is grounds for immediate failure of the course. This includes
278
+ trying to find answers to problems, programs, exams or providing (directly or indirectly)
279
+ your completed assignments to other students. Uploading solutions to sites such as
280
+ <a href="https://chegg.com">cheeg.com</a> is also considered an academic honesty violation and
281
+ will be reported to the dean of students.
282
+ </p>
283
+
284
+ <p>
285
+ Boise State promotes Academic Excellence as a core Shared Value upholding the virtue of honesty in
286
+ the pursuit of knowledge. Behaving with integrity and honesty is a hallmark of a Boise State
287
+ University graduate. The conferring of a degree represents the University’s indication that the
288
+ recipient has engaged in academic work that is representative of her/his own efforts and that was
289
+ completed with integrity and honesty.
290
+ </p>
291
+ <p>
292
+ Upholding academic integrity in all assignments provides students with the opportunity to engage
293
+ with the material being investigated and assert their evidence based findings. This behavior
294
+ demonstrates the commitment to learning and preparation necessary for a successful future. All
295
+ work you submit must represent your own ideas and effort or be cited including any material you
296
+ wrote for another course; when work does not, it is academic dishonesty. <strong>Academic
297
+ dishonesty in any form may result in failure in the course or dismissal from the Program and/or
298
+ the University.</strong>
299
+ </p>
300
+
301
+
302
+ <h2 id="late-work-policy">Late Work Policy</h2>
303
+
304
+ <p>
305
+ All assignments can be submitted up to <strong>3 days late without penalty</strong>, after 3 days
306
+ past the due date absolutely no work will be accepted under any circumstances. No work will be
307
+ accepted after the <strong>last day of course instruction</strong>, the semester has to end at
308
+ some point so plan accordingly. Work submitted 1 second late is treated the same as work
309
+ submitted 1 day late. You can find the last day of course instruction at
310
+ the <a href="https://www.boisestate.edu/registrar/boise-state-academic-calendars/">registrar</a>.
311
+ Plenty of extra credit is offered to offset any missed assignment(s).
312
+ </p>
313
+
314
+ <h2 id="email-policy">Email Policy</h2>
315
+
316
+ <p>
317
+ BroncoMail is the official communication channel through which all university business is
318
+ conducted. It is expected that you access and read university communications two or three
319
+ times per week. For more information see the University Policy on Student Email
320
+ Communications <a
321
+ href="https://www.boisestate.edu/policy/student-affairs/policy-title-student-e-mail-communications/">(Policy
322
+ 2280).</a> <strong>Your instructor will not respond to any emails sent from personal
323
+ accounts such as gmail or yahoo.</strong>
324
+ </p>
325
+
326
+ <p>
327
+ Your instructor will make every effort to return emails within 48hrs Monday thru Friday between
328
+ the hours of 9:00am and 5:00pm (MST). Emails sent on Saturday, Sunday, or outside of the defined
329
+ hours will be returned within 48hrs on the following business day. Emails should be reserved for
330
+ questions that are not appropriate for a public forum such as grades or other personal issues. If
331
+ you don't receive a response from your instructor after 48hrs please check to make sure you are
332
+ sending the email from BroncoMail and send a followup email.
333
+ </p>
334
+
335
+ <h2 id="attendance-policy">Attendance Policy</h2>
336
+
337
+ <p>
338
+ There is no grade associated with attending class. However, if the behavior of a student impacts
339
+ other students ability to learn there could be a impact to your final grade. It is the students
340
+ responsibly to make up any work missed during class within the prescribed late work policy
341
+ window.
342
+ </p>
343
+
344
+ <p>
345
+ <strong>Don't come into class sick!</strong> There is no reason to come to class sick under any
346
+ circumstances. Most of the material is available online either in video or text format so you
347
+ can easily catch up on anything that you may have missed in class!
348
+ </p>
349
+
350
+
351
+ <h2 id="computer-lab">Computer Lab </h2>
352
+
353
+ <p>
354
+ <a href="https://cs481.boisestate.edu/ccp-tour/index.html">The Kount Computer Tutoring Center (CCP
355
+ 241)</a>: This lab is accessible 24/7 by proxy card access to all students enrolled in CS courses.
356
+ Machines in the Kount Computer Tutoring Center have all the software you will need this semester.
357
+ You can use the lab remotely via ssh (onyx.boisestate.edu) and use command line tools such as VIM.
358
+ </p>
359
+
360
+ <p>
361
+ If you want to work on your personal machine the following setup is recommended:
362
+ </p>
363
+ <ul>
364
+ <li>OS - Linux </li>
365
+ <li>Hardware - Minimum of 4GB of Ram (8GB preferred) and an i5 or equivalent processor</li>
366
+ </ul>
367
+
368
+ <h2 id="extra-credit-opportunities">Extra Credit Opportunities</h2>
369
+
370
+ <p>
371
+ Standing extra credit is always offered to allow students to bump their grade up if they are on a
372
+ grading boundary so please take advantage of any extra credit offered. Any extra credit given over
373
+ the semester can not exceed 2.5% of the total points offered. For example the maximum number of
374
+ extra credit points that you can earn if the total points offered is 1000 would be 25.
375
+ </p>
376
+
377
+
378
+ <h3 id="standing-extra-credit">Standing extra credit</h3>
379
+
380
+ <p>
381
+ Typos and Bugs - If you find any typos or bugs in the course materials email me what you found.
382
+ You can claim this extra credit as many times as you wish (up to the maximum number of points).
383
+ </p>
384
+
385
+ </div>
386
+
387
+
data/index.html CHANGED
@@ -1,322 +1,4 @@
1
1
  ---
2
- layout: course
2
+ layout: syllabus
3
3
  tag: home
4
- ---
5
-
6
- {% assign tableFile = site.data.semester-info %}
7
-
8
- <img src={{"/assets/images/home_page.png"}} alt="Course Logo">
9
-
10
- <h2 id="welcome">Welcome!</h2>
11
-
12
- {% include youtube.html param= tableFile.welcome-video %}
13
-
14
- <p>
15
- {{tableFile.welcome-message}}
16
- </p>
17
-
18
- {% assign one_day = 1 | times: 24 | times: 60 | times: 60 %}
19
- {% assign two_days = 2 | times: 24 | times: 60 | times: 60 %}
20
- {% assign three_days = 3 | times: 24 | times: 60 | times: 60 %}
21
- {% assign four_days = 4 | times: 24 | times: 60 | times: 60 %}
22
-
23
-
24
- {% if tableFile.start-day == "monday" %}
25
- {% assign curr_date = tableFile.start-date | date: "%s" | minus: four_days%}
26
- {% elsif tableFile.start-day == "tuesday" %}
27
- {% assign curr_date = tableFile.start-date | date: "%s" | minus: three_days%}
28
- {% elsif tableFile.start-day == "wednesday" %}
29
- {% assign curr_date = tableFile.start-date | date: "%s" | minus: two_days%}
30
- {% elsif tableFile.start-day == "thursday" %}
31
- {% assign curr_date = tableFile.start-date | date: "%s" | minus: one_day %}
32
- {% endif%}
33
-
34
- <div>
35
- <h2 id="homework">Weekly Homework</h2>
36
- <table style="margin:auto;height: 100%; width: 100%;">
37
- <thead>
38
- <tr>
39
- <th class="text-center">Week</th>
40
- <th>Due Date</th>
41
- <th>Homework</th>
42
- <th>Points</th>
43
- </tr>
44
- </thead>
45
-
46
- <tbody>
47
- {% assign curr_week = 1 %}
48
- {% assign curr_module = "none" %}
49
-
50
- {% assign loop_counter = 1 %}
51
- {% assign pgs = site.lessons | sort: 'slug' %}
52
- {% assign total_points = 0%}
53
- {% for page in pgs %}
54
- {% if page.path contains "lesson" %}
55
- {% assign loop_counter = loop_counter | plus: 1 %}
56
- {% if curr_module != page.tag %}
57
- <!--Module header-->
58
- <tr>
59
- <td colspan="4" class="text-center table-darkish">{{page.tag | capitalize }}</td>
60
- </tr>
61
- {% assign curr_module = page.tag %}
62
- {% endif%}
63
- {% if page.layout == "reading-zybooks" %}
64
- {% assign page_title = site.data.semester-info.reading[page.slug] %}
65
- {% else%}
66
- {% assign page_title = page.title %}
67
- {% endif %}
68
-
69
-
70
-
71
- {% if curr_week == tableFile.break %}
72
- <!--Add in the break week, we need to grab the next lesson before inserting new week-->
73
- <tr>
74
- {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
75
- <td>{{curr_date | date: "%m/%d - %a"}}</td>
76
- <td><a href="{{site.url}}{{page.url}}">{{page_title}}</a> <span class="small-text">{{page.slug}}</span>{%if page.layout == "lab"%} <a class="no-dec" href="{{site.data.semester-info.labs[page.slug]}}">🧪</a> {%elsif page.layout == "project" %} 📡 {% endif%} {%if page.video %}<a class="no-dec" href=https://www.youtube.com/watch?v={{page.video}}>📺 </a>{% endif %}</td>
77
- <td>{{page.points}}</td>
78
- {% assign total_points = total_points | plus: page.points %}
79
- </tr>
80
- <tr>
81
- <td rowspan= 2 class="table-lightish text-center border">
82
- {% assign curr_date = curr_date | date: "%s" | plus: three_days %}
83
- {{curr_week}}
84
- </td>
85
- {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
86
- <td>{{curr_date | date: "%m/%d - %a"}}</td>
87
- <td>Break</td>
88
- </tr>
89
- <tr>
90
- {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
91
- <td>{{curr_date | date: "%m/%d - %a"}}</td>
92
- <td>Break</td>
93
- </tr>
94
- {% assign curr_week = curr_week | plus: 1 %}
95
- {%else%}
96
-
97
- <tr>
98
- {% comment %}
99
- Need to keep track of our own loop counter to filter out docs don't use forloop.index
100
- {% endcomment %}
101
- {% assign tmp = loop_counter | modulo: 2 %}
102
- {% if tmp == 0 %}
103
- <td rowspan= 2 class="table-lightish text-center border">
104
- {% assign curr_date = curr_date | date: "%s" | plus: three_days %}
105
- {{curr_week}}
106
- {% assign curr_week = curr_week | plus: 1 %}
107
- </td>
108
- {% endif %}
109
- {% assign curr_date = curr_date | date: "%s" | plus: two_days %}
110
- <td>{{curr_date | date: "%m/%d - %a"}}</td>
111
- <td><a href="{{site.url}}{{page.url}}">{{page_title}}</a> <span class="small-text">{{page.slug}}</span>{%if page.layout == "lab"%} <a class="no-dec" href="{{site.data.semester-info.labs[page.slug]}}">🧪</a> {%elsif page.layout == "project" %} 📡 {% endif%} {%if page.video %}<a class="no-dec" href=https://www.youtube.com/watch?v={{page.video}}>📺 </a>{% endif %}</td>
112
- <td>{{page.points}}</td>
113
- {% assign total_points = total_points | plus: page.points %}
114
- </tr>
115
- {%endif%}
116
- {% endif %}
117
- {% endfor%}
118
- </tbody>
119
- <tfoot>
120
- <tr>
121
- <td colspan="3" class="table-lightish">Total Points:</td>
122
- <td class="table-lightish">{{total_points}}</td>
123
- </tr>
124
- </tfoot>
125
- </table>
126
-
127
- <h2 id="catalog-description">Catalog description</h2>
128
-
129
- {{tableFile.catalog}}
130
-
131
- <h2 id="final-grades">Grading Policy</h2>
132
-
133
- <p>
134
- Final grades will be assigned with the formula [Earned Points]/[Total Points]. For example if you
135
- earn 850 points out of a total of 1000 points offered your grade would be a B or %85.
136
- <strong>Grades will not be rounded</strong>, so if your final score is a 79.9% your grade will be
137
- a C+ according to the chart below. If you are on a grade boundary please see the <a
138
- href="#extra-credit-opportunities">extra credit</a> section below for opportunities to improve your grade.
139
- </p>
140
-
141
- <table>
142
- <thead>
143
- <tr>
144
- <th>Percentage</th>
145
- <th>Letter</th>
146
- </tr>
147
- </thead>
148
- <tbody>
149
- <tr>
150
- <td>94% &lt; 100%</td>
151
- <td>A</td>
152
- </tr>
153
- <tr>
154
- <td>90% &lt; 94%</td>
155
- <td>A-</td>
156
- </tr>
157
- <tr>
158
- <td>87% &lt; 90%</td>
159
- <td>B+</td>
160
- </tr>
161
- <tr>
162
- <td>84% &lt; 87%</td>
163
- <td>B</td>
164
- </tr>
165
- <tr>
166
- <td>80% &lt; 84%</td>
167
- <td>B-</td>
168
- </tr>
169
- <tr>
170
- <td>77% &lt; 80%</td>
171
- <td>C+</td>
172
- </tr>
173
- <tr>
174
- <td>74% &lt; 77%</td>
175
- <td>C</td>
176
- </tr>
177
- <tr>
178
- <td>70% &lt; 74%</td>
179
- <td>C-</td>
180
- </tr>
181
- <tr>
182
- <td>67% &lt; 70%</td>
183
- <td>D+</td>
184
- </tr>
185
- <tr>
186
- <td>64% &lt; 67%</td>
187
- <td>D</td>
188
- </tr>
189
- <tr>
190
- <td>60% &lt; 64%</td>
191
- <td>D-</td>
192
- </tr>
193
- <tr>
194
- <td>0 &lt; 60%</td>
195
- <td>F</td>
196
- </tr>
197
- </tbody>
198
- </table>
199
-
200
- <h2 id="institutional-policies">Institutional Policies</h2>
201
-
202
- <ul>
203
- <li>
204
- Please review the <a
205
- href="https://www.boisestate.edu/registrar/general-information-and-policies/academic-integrity/">
206
- academic-integrity</a> policy set by the university. Violations of this policy will result in the student
207
- receiving a failing grade (F) for the course.</li>
208
- <li>
209
- It is expected that all students <a
210
- href="https://www.boisestate.edu/policy/student-affairs/code-of-conduct/">read</a>
211
- and follow the University policy 2020. Any violation of University policy 2020 can result in the
212
- student being removed from the class discussion and study groups. The students participation score
213
- will be set to 0 and no alternative assignment will be given. Egregious behavior will be reported
214
- to the <a href="https://www.boisestate.edu/deanofstudents/student-conduct-report-form/">dean of students</a>
215
- for additional sanctions which can include receiving a failing grade (F) in the course.
216
- </li>
217
- <li>If you need help with accessibility you can visit the <a href="https://eac.boisestate.edu/">educational access
218
- center</a></li>
219
- </ul>
220
-
221
- <h2 id="computer-lab">Computer Lab </h2>
222
-
223
- <p>
224
- <a href="https://cs481.boisestate.edu/ccp-tour/index.html">The Kount Computer Tutoring Center (CCP
225
- 241)</a>: This lab is accessible 24/7 by proxy card access to all students enrolled in CS courses.
226
- Machines in the Kount Computer Tutoring Center have all the software you will need this semester.
227
- You can use the lab remotely via ssh (onyx.boisestate.edu) and use command line tools such as VIM.
228
- </p>
229
-
230
- <p>
231
- If you want to work on your personal machine the following setup is recommended:
232
- </p>
233
- <ul>
234
- <li>OS - Linux </li>
235
- <li>Hardware - Minimum of 4GB of Ram (8GB preferred) and an i5 or equivalent processor</li>
236
- </ul>
237
-
238
- <h2 id="academic-honesty">Academic Honesty</h2>
239
-
240
- <p>
241
- Programming assignments require the implementation of working programs using the language
242
- constructs and techniques introduced in class. Programs must execute and compile on the operating
243
- system and compiler specified. Students are expected to work on their own unless explicitly
244
- instructed otherwise. Students who allow their work to be copied will be written up along with
245
- the student who copied. Cheating is grounds for immediate failure of the course. This includes
246
- trying to find answers to problems, programs, and exams from the Internet or other sources and
247
- uploading your completed assignments to Internet sites that are publicly accessible.
248
- </p>
249
-
250
- <p>
251
- Boise State promotes Academic Excellence as a core Shared Value upholding the virtue of honesty in
252
- the pursuit of knowledge. Behaving with integrity and honesty is a hallmark of a Boise State
253
- University graduate. The conferring of a degree represents the University’s indication that the
254
- recipient has engaged in academic work that is representative of her/his own efforts and that was
255
- completed with integrity and honesty.
256
- </p>
257
- <p>
258
- Upholding academic integrity in all assignments provides students with the opportunity to engage
259
- with the material being investigated and assert their evidence based findings. This behavior
260
- demonstrates the commitment to learning and preparation necessary for a successful future. All
261
- work you submit must represent your own ideas and effort or be cited including any material you
262
- wrote for another course; when work does not, it is academic dishonesty. <strong>Academic
263
- dishonesty in any form may result in failure in the course or dismissal from the Program and/or
264
- the University.</strong>
265
- </p>
266
-
267
-
268
- <h2 id="late-work-policy">Late Work Policy</h2>
269
-
270
- <p>
271
- All assignments can be submitted up to <strong>3 days late without penalty</strong>, after 3 days
272
- past the due date absolutely no work will be accepted under any circumstances. No work will be
273
- accepted after the <strong>last day of course instruction</strong>, the semester has to end at
274
- some point so plan accordingly. Work submitted 1 second late is treated the same as work
275
- submitted 1 day late. You can find the last day of course instruction at
276
- the <a href="https://www.boisestate.edu/registrar/boise-state-academic-calendars/">registrar</a>.
277
- </p>
278
-
279
- <p>
280
- Plenty of extra credit is offered to offset any missed assignment(s).
281
- </p>
282
-
283
- <h2 id="email-policy">Email Policy</h2>
284
-
285
- <p>
286
- BroncoMail is the official communication channel through which all university business is
287
- conducted. It is expected that you access and read university communications two or three
288
- times per week. For more information see the University Policy on Student Email
289
- Communications <a
290
- href="https://www.boisestate.edu/policy/student-affairs/policy-title-student-e-mail-communications/">(Policy
291
- 2280).</a> <strong>Your instructor will not respond to any emails sent from personal
292
- accounts such as gmail or yahoo.</strong>
293
- </p>
294
-
295
- <p>
296
- Your instructor will make every effort to return emails within 48hrs Monday thru Friday between
297
- the hours of 9:00am and 5:00pm (MST). Emails sent on Saturday, Sunday, or outside of the defined
298
- hours will be returned within 48hrs on the following business day. Emails should be reserved for
299
- questions that are not appropriate for a public forum such as grades or other personal issues. If
300
- you don't receive a response from your instructor after 48hrs please check to make sure you are
301
- sending the email from BroncoMail and send a followup email.
302
- </p>
303
-
304
- <h2 id="extra-credit-opportunities">Extra Credit Opportunities</h2>
305
-
306
- Standing extra credit is always offered to allow students to bump their grade up if they are on a
307
- grading boundary so please take advantage of any extra credit offered. Any extra credit given over
308
- the semester can not exceed 2.5% of the total points offered. For example the maximum number of
309
- extra credit points that you can earn if the total points offered is 1000 would be 25.
310
-
311
- <h3 id="standing-extra-credit">Standing extra credit</h3>
312
- <ul>
313
- <li>
314
- Typos and Bugs - If you find any typos or bugs in the course materials email me what you found.
315
- You can claim this extra credit as many times as you wish (up to the maximum number of points).
316
- </li>
317
- </ul>
318
-
319
-
320
- </div>
321
-
322
-
4
+ ---
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shanep-class
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.27
4
+ version: 1.0.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - shane panter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-05 00:00:00.000000000 Z
11
+ date: 2022-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -92,6 +92,7 @@ files:
92
92
  - README.md
93
93
  - _config.yml
94
94
  - _includes/alert.html
95
+ - _includes/anchor_headings.html
95
96
  - _includes/asciinema.html
96
97
  - _includes/footer.html
97
98
  - _includes/head.html
@@ -104,6 +105,7 @@ files:
104
105
  - _layouts/lab.html
105
106
  - _layouts/project.html
106
107
  - _layouts/reading-zybooks.html
108
+ - _layouts/syllabus.html
107
109
  - _sass/asciinema-player.scss
108
110
  - _sass/highlight.scss
109
111
  - _sass/main.scss