shanep-class 1.0.27 → 1.0.28

Sign up to get free protection for your applications and to get access to all the features.
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