Midterm 1
Midterm 1
Grade: 77/80
- Seat: A8
- Room: Towne 100
As a friendly reminder, the first midterm will be this coming Wednesday, 2/18, at 10:15am (in our regular class slot), in Towne 100 (our regular classroom). I will post your seat assignments in a follow-up to this post shortly.
Please be there at least 15 minutes before the exam begins! We need everyone in their seats and ready by 10:15am. If you are late, we will not be able to give you extra time.
When you enter the room, please find your seat. The first character of your seat name tells you which row your seat is in, and the number specifies a particular seat in that row. I will post a link to the seatmap along with the seat assignments; you may want to bring a copy of this with you.
The rules for the exam are as follows:
- The exam is open-book, open-notes; you may use the slides, your textbook, and any notes you personally took in class.
- You may use your laptop or tablet to view these materials, but you must disable all network interfaces during the exam. (If you do not know how to do this reliably, don't bring the device!) All other electronic devices - cell phones, electronic dictionaries, smartwatches etc. - must be switched off during the exam and must be put away. You may also bring a simple calculator, or you may use the calculator on your laptop or tablet; some of the questions might involve some (very simple) calculations.
- Here are some examples of items that you are not allowed to bring: your buddy's notes from class, your own "cheat sheet" you typed while reviewing the material at home, Wikipedia entries, documents downloaded from the web, or any kind of communication device. (This is not a comprehensive list!)
- If we see any attempt to communicate or use unauthorized materials, the student in question will receive a zero on the exam and will be referred to the Office of Student Conduct. To prevent misunderstandings, please avoid anything that, to your proctor(s), might look like a cheating attempt. For instance, you may want to close any unnecessary apps or browser tabs. If you are not sure how to reliably disable all network interfaces on your device, or if you are not able or willing to put it into a 'clean' state for the exam, do not bring the device.
- If you choose to bring a laptop or tablet, please make sure that it is fully charged, and that its battery will last for the duration of the exam. We won't be able to seat (or reseat) you near a power outlet if you run out of power during the exam.
- Please remember to bring a pen! You may NOT use a pencil, or anything else that can easily be erased.
what kind of questions can we expect for the midterm? can a sample midterm be provided?
Since you'll have access to the slides and your own notes from class, the only questions I can really ask you are ones that will test your understanding of the material. For instance, I might ask you which routes you think a given BGP AS would export to another, or where in a given program there could be a race condition and how to fix it, or where in a given system design you'd expect to be the bottleneck and how you might go about removing it, etc. Does this help? We'll also do a few practice questions in class, on Monday next week.
Anything that has been taught in the lectures up till Feb. 18th will be fair game for the midterm. You do not need to finish HW3 before the exam but it would be a good idea to look through the assignment and familiarize yourself with the key concepts that have been taught in lecture that go in parallel with the assignment (ex. how the concept of sessions work in practice, compare them with how they are introduced in lecture 5 on dynamic content). The idea of the homeworks is to help build practical intuition for how to use the content taught in the classroom, that go beyond just doing well on a test and eventually build towards a scalable system that can be deployed in the real world.
Will be asked to write code or pseudocode on the midterm? And will there be any debugging problems where syntax and libraries matter? Thanks!
As you can probably imagine, I won't be able to make you write massive Java programs on a paper-based exam. However, I won't rule out that you might have to write some code or pseudocode on the midterm. It would most likely be something relatively small.
Likewise, I won't rule out that there might be a "debugging problem" in some shape or form, where syntax or libraries (?) might matter in some way. Once again, as you can probably imagine, I won't say "here is this 10,000-LoC program that has a bug; please find it! I hope you've memorized your library documentation well!". But I could easily imagine that there might be a small program that has a bug (perhaps some sort of concurrency bug, since we've talked about that in class?) and that I might ask you to find it and/or fix it.
I am not 100% sure what you mean by "library" here. Clearly I won't expect you to have memorized the entire STL documentation or the Java API docs. (As you can probably guess based on the fact that this is an open-book exam, I am not a big believer in memorizing random things.) But I also won't make a statement of the form "libraries won't matter in any shape or form", because then later we might find that, say, there is a "print" statement somewhere in a piece of code I give you, someone gets that question wrong, and then asks for the points back because "print" is technically a library method and I said that there won't be any libraries.
Since you'll have access to the slides and your own notes from class, the only questions I can really ask you are ones that will test your understanding of the material. For instance, I might ask you which routes you think a given BGP AS would export to another, or where in a given program there could be a race condition and how to fix it, or where in a given system design you'd expect to be the bottleneck and how you might go about removing it, etc. Does this help? We'll also do a few practice questions in class, on Monday next week.
