-
Notifications
You must be signed in to change notification settings - Fork 0
/
syllabus.html
271 lines (220 loc) · 16.4 KB
/
syllabus.html
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Collapsible sidebar using Bootstrap 4</title>
<!-- Bootstrap CSS CDN -->
<script src='https://kit.fontawesome.com/a076d05399.js'></script>
<!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous"> -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- Our Custom CSS -->
<link rel="stylesheet" href="../css/home.css">
<!-- Scrollbar Custom CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.min.css">
<!-- Font Awesome JS -->
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/solid.js" integrity="sha384-tzzSw1/Vo+0N5UhStP3bvwWPq+uvzCMfrN1fEFe+xBmv1C/AtVX5K0uZtmcHitFZ" crossorigin="anonymous"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/fontawesome.js" integrity="sha384-6OIrr52G08NpOFSZdxxz1xdNSndlD4vdcf/q2myIUVO0VsqaGHJsB0RaBE01VTOY" crossorigin="anonymous"></script>
</head>
<body>
<!-- home, syllabus, assignments, grades, discussion forum, office hours, resources -->
<div class="wrapper">
<!-- Sidebar -->
<nav id="sidebar">
<div id="dismiss">
<i class="fas fa-arrow-left"></i>
</div>
<div class="sidebar-header">
<h3>Bootstrap Sidebar</h3>
</div>
<ul class="list-unstyled components">
<!-- <p>Dummy Heading</p> -->
<!-- <li class="active">
<a href="#homeSubmenu" data-toggle="collapse" aria-expanded="false">
<i class="glyphicon glyphicon-home"></i>
Home
</a>
<ul class="collapse list-unstyled" id="homeSubmenu">
<li><a href="#">Home 1</a></li>
<li><a href="#">Home 2</a></li>
<li><a href="#">Home 3</a></li>
</ul>
</li> -->
<li>
<a href="../html/home.html"><i class="glyphicon glyphicon-home"></i>
Home</a>
<!-- <a href="#"><i class="fas fa-book-open"></i>
Syllabus</a> -->
<!-- <a href="#pageSubmenu" data-toggle="collapse" aria-expanded="false">Pages</a>
<ul class="collapse list-unstyled" id="pageSubmenu">
<li><a href="#">Page 1</a></li>
<li><a href="#">Page 2</a></li>
<li><a href="#">Page 3</a></li>
</ul> -->
</li>
<li><a href="../html/assignments.html"><i class="glyphicon glyphicon-tasks"></i>
Assignments</a></li>
<li><a href="../html/Grades.html"><i class='glyphicon glyphicon-book'></i>
Grades</a></li>
<li><a href="../html/discussion_forum.html"><i class='far fa-comments'></i>
Discussion Forum</a></li>
<li><a href="../html/office_hours.html"><i class="fas fa-chalkboard-teacher"></i>
Office Hours</a></li>
<li><a href="../html/resources.html"><i class="glyphicon glyphicon-folder-open"></i>
Resources</a></li>
</ul>
<!-- <ul class="list-unstyled CTAs">
<li>
<a href="https://bootstrapious.com/tutorial/files/sidebar.zip" class="download">Download source</a>
</li>
<li>
<a href="https://bootstrapious.com/p/bootstrap-sidebar" class="article">Back to article</a>
</li>
</ul> -->
</nav>
<!-- Page Content -->
<div id="content">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<button type="button" id="sidebarCollapse" class="btn btn-info">
<i class="fas fa-align-left"></i>
<span>Go</span>
</button>
<!-- <button class="btn btn-dark d-inline-block d-lg-none ml-auto" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<i class="fas fa-align-justify"></i>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="nav navbar-nav ml-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Page</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Page</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Page</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Page</a>
</li>
</ul>
</div> -->
</div>
</nav>
<h1>Syllabus</h1>
<h3>Syllabus and Course Information</h3>
<br>
<h4>Course Description</h4>
<p>Fundamentals of computer architecture: digital logic design, working up from the logic gate level to understand the function of a simple computer; machine-level programming to understand implementation of high-level languages; performance models of modern computer architectures to enable performance optimization of software; hardware primitives for parallelism and security.
</p>
<h4>Course Objectives</h4>
<p>CS 233 has several goals:
Grasp basic principles of combinational and sequential logic design.
Have a high-level understanding of how to design a general-purpose computer, starting with simple logic gates.
To provide you with a mental model of how high-level language programs get executed on computer hardware
To introduce you to the organization and performance analysis of modern computers,
Expose you to the hardware-level mechanisms for exposing parallelism.</p>
<h4>Class Meetings</h4>
<p>Officially, we have 50-minute lectures, three times a week and discussion/lab section once per week. Because of COVID-19, we will not be keeping strictly to the official registrar schedule. We will use two lectures time slots per week to support students during assigned group work. We will use one lecture time slot a week for open office hours, auxiliary group work time, or review sessions. We will not use our discussion/lab section time in any strict manner, though you are welcome to use that time to facilitate finding times to meet with your team members.
You will be assigned to a team of 2-4 students (mostly teams of 3). Twice a week, your team will complete a collaborative, team-based exercise that will dig deeper into the core concepts in the pre-flights. If everyone on your team has completed and understood the pre-flights, we expect that these collaborative exercises will take about 1 hour and should take less than 2 hours. Everyone in your team will share the same score. You are encouraged to work together, checking and challenging each other’s understanding as these collaborative exercises will be graded such that you will need to answer each question correctly only once but you will lose points for incorrect submissions. At the end of each collaborative exercise, one team member (on a rotating basis) will be required to submit a write up, documenting code and design decisions. You will provide peer reviews of your teammates.
</p>
<h4>Grading</h4>
<b>Preflights (5%)</b>
<p>We will have web-based preflights before each class meeting that will be worth roughly 5% of your overall grade. These pre-flights will provide you with links to introductory videos and will be available in PrairieLearn. These preflights are intended to prepare you to contribute to your in-class group work. Most questions in the preflight will need to be answered correctly multiple times to receive full credit. Aside from the first few class meetings, preflights must be finished prior to class meetings to receive credit.</p>
<b>Group Work (5%)</b>
<p>You will be assigned to a team of 2-4 students to work on longer, collaborative assessments in PrairieLearn during class meetings. Each team will receive one instance of the assignment and all team members will share the same grade on that instance of the assignment. These assessments will help you dive deeper into the course content and prepare you for the lab assignments. Most questions in these collaborative assessments will need to be answered only once and many will allow only one submission for full credit. It is therefore in your best interest to make sure that all team members agree on the answer and that you check each other’s work before making submissions. Aside from the first few class meetings, group work must be completed with 36 hours of class meetings, though it is expected that these assignments will be able to be completed during class time.
</p>
<ul>
<li>Teams will be assigned</li>
<li>Learning how to work with people who are not your friends is a valuable skill once you are in industry. In our experience, students rate assigned teams as being better for evenly sharing the workload and for learning (i.e., fewer free loaders).</li>
<li>Availability (especially time zone of residency) will be one of the criteria we will use for assigning teams.</li>
<li>We will primarily support teams through Zoom, but you are welcome to use any platform</li>
</ul>
<b>Extra Credit: (2 or more %)</b>
<p>We will have an Extra Credit homework assignment in PrairieLearn associated with most class meetings. These assignments must generally be completed within one week of the associated class. All together, the extra credit homework assignments are worth up to 2% extra credit toward your final grade.
Practice quizzes that mirror the actual quizzes will be available for extra credit (all together, up to 1% toward your final grade).
Some labs will have small extra credit components. Details will be present in those lab handouts.
On very rare occasions there are other opportunities for extra credit.</p>
<b>Labs (25%)</b>
<p>There will be 13 labs throughout the semester each weighted equally. See Lab Submission Policy below.</p>
You can pick your own team for labs
Quizzes (55%)
We will have 11 quizzes.
Quiz 0: Spatial Ability (0.5% Extra Credit)
Quiz 1: Boolean Functions and Number Representations (5%)
Quiz 2: Verilog and Modular Design (5%)
Quiz 3: Datapaths and Control (5%)
Quiz 4: MIPS datapath and assembly (5%)
Quiz 5: MIPS datapath modification (5%)
Quiz 6: MIPS assembly w/ functions (5%)
Quiz 7: MIPS assembly w/ recursion (5%)
Quiz 8: Pipelining/Performance (5%)
Quiz 9: Cache Organization (5%)
Quiz 10: Cache hits/misses (5%)
Quiz 11: Cache Conscious Code (5%)
Final (10%)
We’ll have a comprehensive final to cover the material that follows Quiz11 and a sampling of the material from the rest of the semester.
<h4>Lab Submission Policy</h4>
Submission: Code will be submitted through Github and occassionally PrairieLearn. Like any workplace would, we expect you to correctly check in your code. We will grade whatever was checked in most recently at the deadline. We won’t be lenient if you forget to check in your code or check in the wrong version. You can verify which version of your code is checked in using the web interface for Github.
Partners: For most labs, you can work individually or with 1 partner. The exceptions are labs declared as individual, and the SPIMbot tournament lab, where you must work in groups of two or three. You will specify your partners using the partners.txt file, by including the netids of all collaborators (your netid + any partners), one per line.
<br>
<br>
<b>
Late Submission:</b> <p>One lab’s second part (other than the SPIMbot tournament) can be submitted up to 48 hours late without penalty. Otherwise, a 10% penalty every 12 hours (or part thereof) will be assessed, up to a maximum of 48 hours. See our Submission Policy page for more details.
</p>
<br>
<br>
<b>Style:</b> <p>Good style is important whenever writing code; We reserve the right to assign a 0 to any assignment that demonstrates total disregard for standard good style conventions.
</p>
<br>
<h4>Regrades</h4>
<p>Regrade requests for quizzes must be submitted within 48 hours of your quiz. Regrade requests must be submitted either as issues during your quiz or as a private piazza post after your quiz.
<br>
For labs, regrade requests must be submitted within 48 hours of the grade being released. The grade release announcements will have directions for asking grade-related questions and requested regrades.
</p>
<h4>Grades</h4>
<p>All grades will be available via the Compass grade book. Please verify the accuracy of your grades often during the semester! Typos are unfortunately very possible in a class with many students.
<br>
Letter grades will be assigned based on your overall numeric score. Also, the top and bottom 1% in each range will receive plus and minus grades (i.e., 99% and above get an A+, [91%-99%) get an A, [90%,91%) get an A-, [89%,90%) get a B+). We reserve the right to lower these thresholds but we will never raise them.
</p>
<ul>
<li>90% - 100% A</li>
<li>80% - 89% B</li>
<li>70% - 79% C</li>
</ul>
<b>Cheating</b>
<p>Academic integrity is an important issue in general. The University expects you all to be familiar with Rule 33 in the Code of Policies and Regulations Applying to All Students. If we are able to pick out two nearly identical assignments out of 400, then cheating has likely occurred. All parties involved will receive a 0 on that assignment or quiz and their final course grade reduced by one letter grade (e.g., A->B, B->C, etc.). A second offense will result in a failing grade for the class.
<br>
Do NOT post your code into public code sharing tools such as Github. While you may not be cheating, you are enabling other students to cheat which is against the student code.
<p/>
</div>
</div>
<div class="overlay"></div>
<!-- jQuery CDN - Slim version (=without AJAX) -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<!-- Popper.JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
<!-- Bootstrap JS -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
<!-- jQuery Custom Scroller CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.concat.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#sidebar").mCustomScrollbar({
theme: "minimal"
});
$('#dismiss, .overlay').on('click', function () {
$('#sidebar').removeClass('active');
$('.overlay').removeClass('active');
});
$('#sidebarCollapse').on('click', function () {
$('#sidebar').addClass('active');
$('.overlay').addClass('active');
$('.collapse.in').toggleClass('in');
$('a[aria-expanded=true]').attr('aria-expanded', 'false');
});
});
</script>
</body>
</html>