Live data from Hacker News

CMU Computer Systems: Self-Grading Lab Assignments (2018)

csapp.cs.cmu.edu

31–40 of 48 posts

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#32
post #23

I remember when my University copied a couple of these, I decided to go the full mile on the one where you exploit buffer overflow. I got myself a remote connection via execve, and was going to mess around, but soon realized I could also see and edit others' scores which could get me in significant trouble, so I had to make one log-scrubbing attack then stop. I'm surprised they never fixed the hole by containerizing…

I ran an in-class test/competition once where students submitted C code to a web server running on my laptop. My laptop compiled and ran their code - then checked it against a test suite and graded it all live. One student asked about security - and we got into a great discussion about permissions and what havoc he could and couldn’t pull off with the restricted user account. I encouraged him to figure out how to wri…

Ah, how simple it would have been to run in a virtual machine.

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#33

These look fun; in particular the "Attack Lab". Dockerfiles might be helpful and easy to keep updated. Alpine Linux or just busybox are probably sufficient? The instructor set could extend FROM the assignment image and run a few tests with e.g. testinfra (pytest) You can also test code written in C with gtest. I haven't read through all of the materials: are there suggested (automated) fuzzing tools? Does OSS-Fuzz so…

What on earth would 200% test coverage mean?

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#34
CS:APP is hands down THE book that every person interested in the low-level stuff in computer systems should own. But heads up, anyone who is considering to buy the book - please get the North American Edition, NOT the global edition.

I made the mistake of getting the Global edition, because of its considerably less cost, and because I couldn't afford the North American one - it was only after that I checked out the book site, where the authors mention that the global edition is chock full of errors [0].

I don't blame the authors, nor even the people who were responsible for 'the generation of a different set of practice and homework problems'. I can get printing the book in B&W, reducing paper quality, and publishing as a paperback to cut costs, but it's baffling why the publishers compromise on the actual quality of the content itself.

Amazon is full of similar 'PSAs' about not buying the global edition [1].

[0] http://csapp.cs.cmu.edu/3e/errata.html

[1] https://www.amazon.com/Computer-Systems-Programmers-Perspect...

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#36
post #23

I remember when my University copied a couple of these, I decided to go the full mile on the one where you exploit buffer overflow. I got myself a remote connection via execve, and was going to mess around, but soon realized I could also see and edit others' scores which could get me in significant trouble, so I had to make one log-scrubbing attack then stop. I'm surprised they never fixed the hole by containerizing…

I ran an in-class test/competition once where students submitted C code to a web server running on my laptop. My laptop compiled and ran their code - then checked it against a test suite and graded it all live. One student asked about security - and we got into a great discussion about permissions and what havoc he could and couldn’t pull off with the restricted user account. I encouraged him to figure out how to wri…

I forkbombed our server once by accident. I normally code a snippet at a time, see if it works, then go a little bit farther. Unfortunately you don't really want to have a loop with a fork in it with no exit condition. Really failed to think that one through.

(in my defense you probably should have ulimits set on a server where students are going to be logging in and working...)

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#37

Is there a way for non-CMU students to take complete these assignments and get scored? I worked through this book a few years back but would love the chance to do actual projects.

I worked through the book and did the actual projects, if I remember well, most of the grading logic can be run locally on your machine and is included in the projects.

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#38
post #8

Former student and TA here. There is so much great stuff in this class and its assignments! Couple of highlights: - Data lab formally verifies all of the submissions and gives you an exact failing test case if the submission isn't correct. - Malloc lab is run competitively. You don't need to compete to do well, but you do if you want to do great. And the competition drives students to great feats. I know people who r…

> Turnaround time for exams was sub-one-day. What's the current status on accurately grading mistakes? From the exams I remember (Fall 2015), the exams autograded perfect answers well, but gave similar marks to nearly correct, but still wrong answers as complete gibberish. I felt that unless I had the answers exactly correct, it was hard to demonstrate my knowledge of the topic.

When I was studying software engineering, "nearly correct" answers would get you the same grade as "complete gibberish" on purpose. Partially correct programs would have no more value than completely incorrect ones.

In retrospect, I think it was crucially important for students to learn the price of their mistakes. Most of my previous classmates are reputable engineers now.

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#39
post #36
post #23

Earlier quoted context omitted.

I ran an in-class test/competition once where students submitted C code to a web server running on my laptop. My laptop compiled and ran their code - then checked it against a test suite and graded it all live. One student asked about security - and we got into a great discussion about permissions and what havoc he could and couldn’t pull off with the restricted user account. I encouraged him to figure out how to wri…

I forkbombed our server once by accident. I normally code a snippet at a time, see if it works, then go a little bit farther. Unfortunately you don't really want to have a loop with a fork in it with no exit condition. Really failed to think that one through. (in my defense you probably should have ulimits set on a server where students are going to be logging in and working...)

The web interface to our local cloud at university became downright unusable for a week before we found that the problem was that a server on the cloud used for teaching was getting ddos'ed.

Apparently some student set up a mmorpg server and then made some enemies...

Re: CMU Computer Systems: Self-Grading Lab Assignments (2018)

#40

These look fun; in particular the "Attack Lab". Dockerfiles might be helpful and easy to keep updated. Alpine Linux or just busybox are probably sufficient? The instructor set could extend FROM the assignment image and run a few tests with e.g. testinfra (pytest) You can also test code written in C with gtest. I haven't read through all of the materials: are there suggested (automated) fuzzing tools? Does OSS-Fuzz so…

What on earth would 200% test coverage mean?

Coverage for all the code that was written, and all the code that has yet to be typed, of course.

All thanks to quantum computing :)

Post reply on HN