Unformatted text preview:

CS244a Winter 2008 Professor McKeown Handout #1 CS244A: An Introduction to Computer Networks Course Logistics and Grading Instructor: Professor Nick McKeown Office: Gates 340 Email: [email protected] Office Hours: Wednesday 4-5pm (This might change – always check my home page first) Class Web Page: http://www.stanford.edu/class/cs244a Class Newsgroup: su.class.cs244a Notes on email and questions: Please use the newsgroup to ask questions to the TAs. Each day, one or more TAs will be on duty to answer posted questions. They are offering you a guarantee: they will respond to all questions on the newsgroup within 24 hours during the week, and within 48 hours at weekends. On the weekend prior to an assignment being handed in they will try to respond within 24 hours. By using the newsgroup, everyone gets the benefit of reading the replies, and it helps to reduce the number of repeat questions. For questions that are not suitable for the newsgroup (e.g. questions about grades), you can email your TA directly. There is no guarantee of when you will receive a reply. We really want you to use the newsgroup :-) Please don’t ever send email to the class mailing list, or the TA mailing list — there are so many students in the class that we’d be flooded with emails! Teaching Assistants: TAs and their office hours are posted on the class web page. Exams: There will be one in-class midterm and a final exam. Please visit the web page for location details for the final exam. Final Grade: Midterm 15%, Final 25%, Programming Assignments 45% (10% for PA#1, 10% for PA#2, 15% for PA#3 and 10% for PA#4), Problem Sets (15%). Notes and Handouts: I use a combination of handouts and the overhead camera. When I use the overhead camera, I recommend you take notes. When I use handouts, I will make them available to you. All handouts are posted on the class web page (powerpoint and pdf), and hard copies will be available in class. Prerequisites: CS140 is a strict prerequisite for CS244A, and will be enforced without exception. If you have not taken CS140 at Stanford, you need my permission to take CS244a. Send an email to [email protected]. Include a description and/or a URL to the class you took at your undergraduate university. If you do not have permission to take the class, you may be dropped automatically. You need a strong background in C programming and familiarity with the Unixoperating system. Take a look at Homework #1 (listed on the Timetable page) to get an idea of the type and quantity of work the first homework will require. Taking two classes in the same time-slot: Occasionally I get asked to provide a makeup exam in a different time-slot for students taking two or more classes at the same time. Please note that the class is too large to accommodate different conflicts, and so I don’t provide makeup exams. If you are taking two classes at the same time, you need to check in advance that the other class provides makeup exams. Required Textbooks: 1. Kurose and Ross “Computer Networking: A Top-Down Approach”, 4rd Edition, 2007. 2. W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff, "UNIX Network Programming, Volume I: The Sockets Networking API", 3rd edition, 2003. Programming Assignments: There will be three UNIX network programming assignments. Assignment 1: "Web Proxy" Should take you less than 15 hours. Assignment 2. "Your own router". Assignment 3. "Your own TCP". Toughest assignment! Assignment 4. "Your own complete stack". Here is a summary of the requirements for all submitted programming assignments: (a.) All programs must be written in ANSI “C”. To make the grading uniform, we can’t except assignments in C++, Java, perl, etc. (b.) All programs must compile and run correctly using gcc on the Linux machines in Gates B08 (e.g. ssh myth.stanford.edu). You are strongly encouraged to use gdb to debug your programs. (c.) We want you to write good clean code, with no bad memory references. To this end, we strongly encourage you to use valgrind to help you debug and write good code. It’s an excellent tool that will save you lots of time. I strongly encourage you to use it throughout your code development. Details are provided in the first assignment, including the ASCII interface for students logging in externally. To encourage you to use it, we require that you run valgrind before submitting your assignment, and that it indicates no errors in your program. (d.) Additional requirements will be specified in each assignment. For more details about the programming guidelines, refer to the web page: http://www.stanford.edu/class/cs244a/project_guidelines.html You can also find some Coding Guidelines that will explain what we are looking for, including some good and bad examples: http://www.stanford.edu/class/cs244a/CS244aCodingGuidelines.html Grading of Assignments: Programming assignments are graded on a 10 point scale. 7 points are for basic functionality: If your program passes all the tests in the public grading script (see below), you will receive 7 points. The grading script will tell you how many points, out of the 7, you can expect to receive. 2 points are for additional functionality, not tested by the public grading script. We will run a private grading script – which runs a superset of the tests run by the public script – to determine whether you receive 0, 1 or 2 additional points. Finally, 1 point is for the style and design of your code. For this point, we look to see if your code is well designed, (proper choice of algorithms, clean program structure, etc) and whether it is properly commented and variables have mnemonic names.We go to great lengths to ensure that the grading is fair and consistent: (a.) First of all, each assignment has a carefully defined set of grading guidelines that are agreed upon by all the TAs. The grading guidelines will be available on-line to help you understand how your assignment will be graded. (b.) We use grading scripts to test some aspects of your solution. We let you run the public grading script too. This helps you test your code, and understand our expectations. More details about this in Assignment #1. (c.) The public grading script tests some, but not all, of the grading criteria, and so we will run some additional private tests as well. (d.) Finally, your TA reads through your code to understand the cause of some of the bugs (if any), to determine how well your code is structured, to see


View Full Document

Stanford CS 244a - Study Notes

Download Study Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Study Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Study Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?