CS 202 - Course Information


Professor Christopher Andrews
Office 642 McCardell Bicentennial Hall
Email candrews@middlebury.edu
Course Website go/cs202/
Lectures MBH 632 Section A: MWF 09:05-09:55, Section B: MWF 10:10-11:00
Discussion forum https://piazza.com/class/jlffet3ej861dp
Textbooks

  • R. Bryant and D. O'Hallaron, "Computer Systems: A Programmer's Perspective 3nd Edition"
  • D. Tarnoff, "Computer Organization and Design Fundamentals" pdf
  • [Recommended] B. Kernighan and D. Ritchie, "The C Programming Language, 2nd Edition"

Office Hours
MW 3:00p-4:30p
T 10:30a-12:00p
or by appointment

Tutoring See http://www.cs.middlebury.edu/~rgilbert/tutoring/cstutors.html, 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:

  • Basic C programming and tools
  • Numeric representation
  • Assembly level programming
  • Combinational and sequential circuits
  • Simple datapath design
  • Memory hierarchy
  • Performance and security issues

Grading

Assignments 60%
Quizzes 5%
Midterm exam15%
Final exam 20%

Assignments

Assignments will typically be given weekly, due Wednesdays. I will expect work to be handed in on the day when they are due by the start of class. 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 (a day will be strictly defined as a 24 hour period starting the minute after the moment an assignment is due).

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.

Quizzes

There will be approximately weekly quizzes that will be done in class. Quizzes cannot be made up. The lowest quiz will be dropped at the end of the semester.

Exams

Both the midterm and the final will be take-home exams.

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:

  • You are responsible for anything that I say in class
  • Make-up exams will be given by prior arrangement only (unless it is an emergency, I expect a request at least a week ahead of time)
  • Being absent is not an excuse for not turning work in on time
  • Quizzes cannot be made up

Reading

On many of the days, there are listed readings. You are expected to read these before class so that the lecture can serve to expand upon and explain what you have learned. Readings are also fair game for quiz questions. I occasionally will post readings that you should have already done when I think it will take me multiple days to cover the material. In those instances, the redundant listing is just there to help you associate lectures with book materials -- you are still expected to have done the full reading by the first time it is listed.

Getting Help

We are going to be using Piazza for our class discussions outside of class. Rather than emailing questions to me, please 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

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. In the computer science department, we recognize the value of forming study groups, helping each other debug code, and working together.

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.

Policies: Do not work collaboratively unless indicated by the assignment. You can help one another, and work together, but you cannot work jointly on the same assignment. 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, 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.

Last Updated: 9/10/2018, 11:39:36 AM