CS 485-006, Spring 2016
University of Kentucky

Class Info

Instructor:
Neil Moore <neil@cs.uky.edu>
Office:
W 14:00–16:00 Hardymon 207
Phone:
(859) 218-0056
Lecture:
Monday/Wednesday/Friday 11:00–11:50, CB 212
.

Welcome to CS 485! For information about the course, please see the syllabus:

News

Final grades have been submitted to the Registrar. Grades for program 5 and the final exam, as well as overall final grades have been posted to CS Portal.

The curve for the final exam was +10 points (which is included in the CS Portal grades). You can contact me over the summer, or in the Fall semester, if you would like to pick up your exam paper.

The final exam is scheduled for Monday, 2 May at 10:30 AM in the usual classroom.

Review topics and practice questions have been posted. The exam will be cumulative, so you should also look over the midterm review. We will go over some of these questions in class on Friday (29 April).

Please fill out the online teacher course evaluations as soon as possible, no later than Friday 29 April. You should have received an email with a link to your TCEs a few weeks ago.

Wednesday's lecture covers semaphores and thread-safety. Please read the rest of chapter 12.

Program 4 and lab 3 grades have been posted to CS Portal.

Program 5 asks you to write both the client and server for a restricted remote shell. It is due Friday, 22 April, but submissions made by Tuesday, 26 April will not receive a late penalty.

Update 15 Apr: Added a short note about security problems in the protocol you are implementing. You should briefly discuss these problems in the "Limitations" section of your documentation.

Update 18 Apr: If you are using C++ for your project, you will need a modified version of csapp.h. See the Wikipedia article on name mangling for more details on why this is necessary: it relates back to some things we talked about when covering linkers in Chapter 7.

Research paper (graduate/honors students only)

Information on the research paper has been posted. Topics were due by Friday, 25 March. The final paper is due by Friday, 29 April.

The research paper is required for graduate students, and for students receiving Honors credit for CS 485G. It comprises 5% of the final grade for those students. Research papers by other students will not be graded (that is, this is not an extra-credit assignment).

Program 4 asked you to write a simple shell. It was due Monday, 11 April.

Late submissions: The penalty for the first day late has been reduced from to 5% (from the usual 10%). Late penalties for subsequent days are still 10%. That is:

  • Tuesday: -5 points
  • Wednesday: -15 points
  • Thursday: -25 points
  • Friday: -35 points
  • Monday 18 April: -45 points (last chance to submit)

    NOTE: There was an error in the expected output of test case 01. This has been corrected in the provided files, or follow the link for instructions on correcting it yourself.

  • Program 3 was due Friday, 25 March. Program 3 grades (including late submissions) have been posted to CS Portal.

    Midterm grades have been submitted to the Registrar, and are also posted at CS Portal.

    Lab 3 was on Friday (11 March). This lab covered library interpositioning, from the end of Lecture 10.

    Submissions are accepted until 23:59:59 Friday 11 March.

    Grades for the midterm exam are posted at CS Portal. Exam papers were handed back in class on Friday. If you were not present, you can pick them up from me in class or office hours.

    The listed score is your curved score; the raw score appears in your grading sheet.
    Curve details: Your curved score is (raw score)/75, rounded up to the nearest percentage point, with a maximum of 100.

    Program 2 was due Monday, 7 March.

    Grades for program 2 (including late submisssions) are posted to CS Portal.

    You may continue working on program 2, with a late penalty. If you have improved your score by more than 10 points on Tuesday night (8 March), you will receive the higher score, minus a 10 point late penalty. Similarly for Wednesday (20 points) and so on, until Monday 14 March (the absolute last day to submit, for a 50 point penalty).

    If you were granted an extension because of an excused absence, your late penalties will begin accumulating at the end of the extension.

    Midterm grades will reflect all submissions made up until Wednesday night (9 March).

    NOTE: There was an error with the posted grades (all explosions were being counted, not just those on the best bomb). This error has been corrected. Please let Dr Moore know if your grade does not match what appeared on the scoreboard as of Monday night.

    Lecture this week will cover virtual memory. Please read chapter 9.1–9.8 of the textbook.

    We will have a lab on Friday 11 March, covering dynamic linking and interpositioning (from the end of lecture 10).

    Midterm grades will be posted by Friday, 11 March. Midterm exam papers will be returned in class that day.

    The midterm exam is scheduled for next Friday (4 March). Review topics and practice questions have been posted. We will go over some of these questions in class next Wednesday (2 March).

    To prepare for Friday's and next week's classes (Friday, 26 February and on), please read over chapter 7 on linking.

    Office hours on Wednesday 24 February are cancelled. Come see the two faculty candidate talks, at 3:00 and 4:00 PM in the Davis Marksbury Building Theatre.

    The midterm exam is scheduled for next Friday (4 March). Review topics and practice questions will be posted by the end of this week (26 February).

    Program 1 grades and feedback have been posted to CS Portal.

    To prepare for this week's classes (Monday, 15 February and on), please read over sections 3.8 on arrays, and sections 3.10–3.12 (2nd edition; if you have the 3rd edition, just 3.10) on pointers, gdb, and buffer overflows. It wouldn't hurt to read 3.9 (structs) as well: it will help with stage 6 of the bomb!

    Program 1 was due Friday, 12 February. The late penalty is 10% on Monday, 20% on Tuesday, down to 50% on Friday, 19 February. Late submissions will not be accepted after that.

    Update Monday 2016-02-15: Submissions made before the beginning of class today (11 AM) will receive full credit.

    Running graphical programs through SSH from a Mac

    Thanks to a student for passing along the following information.

    If you are using a Mac to access your VM via ssh, you can use XQuartz to run the graphical parts of our labs while still using the terminal. This means that you can access Netlab using ssh in the terminal of your Mac, and the graphical parts of our labs will work just fine.

    XQuartz is an open-source project that implements Apple's X11 application used in OS X 10.5–10.7. You can download and install XQuartz from xquartz.org.

    After installing, add the -X option to ssh and you will be able to use the graphical commands on Netlab.

    Lab 2 (Friday, 12 February) has you use gdb and your knowledge of machine code to reverse-engineer a function. Be sure to bring your laptop!

    Because of weather, Lab 1 has been postponed until Friday, 29 January. Be sure to bring your laptop! It wouldn't hurt to look over the companion notes before the lab.
    To prepare for next week's classes (Monday, 25 January and on), please read over the first half of chapter 3, up to and including ยง3.5, "Arithmetic and Logical Operations".

    If you have the 2nd edition of the book, I recommend reading over "x86-64 Machine-Level Programming", by the textbook authors. It describes differences between 32-bit machine code (covered in the 2nd edition of the book) and 64-bit machine code (covered in class and in the 3rd edition).

    If you would like more experience with C and C++ (pointers and memory are especially important in this class), some links you may find helpful:

    And of course, the classic books: Last but not least, when it comes to C functions or command-line tools, don't forget the man command!

    The first day of lectures is Wednesday, 13 January. See you then!

    Neil Moore <neil@cs.uky.edu>
    Department of Computer Science, University of Kentucky