CS 202 - Computer Architecture

Fall 2014


Professor Christopher Andrews
Office 635 McCardell Bicentennial Hall
Email candrews@middlebury.edu
Course Website http://www.cs.middlebury.edu/~candrews/classes/cs202 or go/cs202/
Lectures MWF 10:10-11:00, MBH 219
Discussion forum https://piazza.com/middlebury/spring2016/cs202/home
Textbooks

Office Hours
MW 2:45-4:00 TTh 10:30-11:30 or by appointment

Tutor See http://www.cs.middlebury.edu/~chorn/tutors/, MBH 632

About the class

This course will provide you with an overview of the architecture and organization of computing hardware. We will approach this from the perspective of a programmer, looking at how architectural choices affect the way that our programs work. Topics that we will cover include:

Grading

Assignments 75%
Midterm exam 10%
Final exam 15%

Assignments

Assignments will typically be given weekly. I will expect work to be handed in on the day when they are due. However, I realize that life intrudes and I want to encourage you to do the work, even if it is late. So, I will accept late work, but it will be docked by 5% of the total possible points for each day that it is late. Since there are some points when you just can’t complete an assignment on time, you each will have three “get out of jail” cards. Each one is worth one full day off an assignment (these are not valid on exams or labs). You can use them however you like with no questions, BUT no work will be accepted after two days without a conversation with me first.

Attendance

You are expected to attend class. I move fast and I don’t regurgitate the book(s). I’ll post examples I produce in class and any other media I use, but do not expect to be able to simulate the class by reading the materials I post online.

That all said, I am not your dad. So, bear these things in mind:

Getting Help

We are going to be using Piazza for our class discussions outside of class. Rather than emailing questions to me, I encourage you to post the questions on Piazza. This will allow other students to answer questions and to benefit from the answers you receive. This system will only work if you use it, so please do so. One caveat: many of the programs we will write will actually be quite short (don’t let this fool you into thinking they will be easy to write) - please do not post entire programs/function/classes on Piazza except in private message to me.

Honor code and collaboration

Good artists copy, great artists steal.
- Pablo Picasso (or T.S. Elliot or Steve Jobs… its been stolen a few times)

Short version Help each other, but do not share solutions.

Long version In computer science, we build on the work of developers before us. Most of us learned to code by copying code and finding ways to tweak it to do what we want. Almost no computer programs are built without building on the work of others, either in the form of algorithms, libraries, or even just short snippets of code.

On the other hand, there are questions of intellectual property and academic integrity. These are considerably murkier waters than you may face, for example, writing a history paper, or doing a problem set in math. With code, you can “accomplish” spectacular things by copying the right chunks of code without ever knowing how it works.

For the most part, navigating these waters is on your head. I encourage you to help classmates to debug misbehaving code. I encourage you to post questions (and answers!) on Piazza. But you need to do so in a way that respects other people’s work and in a way that contributes to your intellectual development rather than hindering it (or trying to mask your lack of it). This is not a race to get a good grade. The grade is at best a carrot to “trick” you into doing the work required to become better educated. As such, don’t just go looking for code that you can turn in to satisfy an assignment. You can probably find some, but it won’t help you much, and I’ll probably be able to tell (you will also get on my bad side very quickly, because grading work that wasn’t done by the person who turned it in is a waste of everyone’s time).

So, as for actual policies? Do not work collaboratively unless indicated by the assignment. You can help one another, but do not work together. I do not want to see identical assignments that differ only in the name at the top. If someone does show you code (as an explanation or asking for debugging help), do not copy it. Retain ideas, and go away and write your own version later. Attribute any ideas, etc, that you pick up (this goes for classmates, books, online resources, etc). Be explicit. Tell me where you got the idea, approach, technique, etc. Explain what your contribution was. Make sure that your contribution demonstrates that you understand what was not your work alone. Finally, if you have any doubts, just ask me first.

Accommodations for disabilities

Students who need test or classroom accommodations due to a disability must be registered in advance with Student Accessibility Services. Please contact Jodi Litchfield (litchfie@middlebury.edu or 802.443.5936) for more information. Students who may need disability-related accommodations are encouraged to make an appointment with me as soon as possible. All discussions will remain confidential.