CS 301: Assembly Language Programming
Fall 2020 - Dr. Lawlor
Course Zoom https://alaska.zoom.us/j/9074747678 (see Zoom in a Lawlor class)
Announcements
- Final exam and semester grades are on NetRun's grading area. This was a good semester, and I had fun teaching you. Thank you for taking my class!
- This class's final exam is Monday, December 7. I'm only going to use the noon-1:30pm part of the 3 hour (!) timeslot, because the final will be like the midterm: Google Forms, open book, open notes. Coverage will mostly be on the performance-oriented stuff we've done since the midterm: SIMD, threads, CUDA, ARM, cache, mmap, etc.
- The link to the exam is here (log in with your alaska.edu account to see it). You'll have until 1:30pm to finish the exam from then.
- It's OK to use anything online or our in-class study guide (open book!)
- I will be available on Zoom during the exam if you have questions, but you don't need to call in if you don't.
- Project final code is due by the end of Monday, December 7 on Blackboard (log in first). The final code should be fully debugged, polished, tuned, commented, and include at least a short README explaining what it is, and what its results mean. You'll be graded on a combination of ambition, correctness, completeness, and comments/style. Style and clean code count!
- Please turn in your slides too, also on blackboard (slide quality was excellent this year!)
- A link to your github or other repo is perfectly fine, just make sure the right code is on there, and it has a README.
- Project presentations are right after Thanksgiving break--sign up for a presentation timeslot in this spreadsheet. These will be about 5 minutes long (depending on how many people sign up that day) and delivered over Zoom. Your presentation should clearly describe WHO you are, WHAT you did, HOW you did it, and WHY you chose to do it that way. Lessons learned about what you would do differently are valuable; scrolling through the code is not usually useful.
- Comments on your proof of concept code and draft slides are now available on NetRun's grading area. Thank you for your work on these, that was fun!
- HW10: mmap, syscalls, and memory allocation is on NetRun, and due anytime Wednesday, November 25.
- Project draft slides are due Monday, November 16 on Blackboard (log in first). Prepare a few slides describing your problem, how you're approaching it, and what you've accomplished on it.
- HW9: ARM assembly is on NetRun, and due anytime Wednesday, November 11. See the ARM assembly cheat sheet or lecture notes for details.
- HW8: threads and basic CUDA is on NetRun, and due anytime Wednesday, November 4.
- Project proof of concept code is due Wednesday, October 28 on Blackboard (log in first). This is working code, mostly a sanity check of your build process and basic approach. It should work and do at least some of what you want for the final version, but not necessarily do everything you want to do, or be fully polished or tuned.
- HW7: floating point and SIMD is on NetRun, and due anytime Wednesday, October 21.
- Midterm percent grades are now on NetRun's grading area. Overall, it seems like you're getting this stuff, nice job! (I have detailed comments on the problems / points missed, but I can't release them until the last few students take the exam.)
- Project background presentations are super short (2 minutes) and will be in class on Monday, October 12.
- HW6: review for the midterm exam is on NetRun, and due anytime Monday, October 12.
- The midterm exam will be Wednesday, October 14, but if you'd like to see the sort of questions I use, this is an older midterm exam. I'll do a Google Form, open book, held synchronously during the 1 hour of class time that day.
- Early grade reports are on NetRun's grading area. Most of the grading points are still on the way, so this is definitely not your final grade! I'm also automatically pulling Zoom poll in-class quiz data, so let me know if you're not getting points when you think you should.
- Project topics are due before Friday, October 2. Call into my office hours (2-3:30pm every weekday, except Tuesday this week) and be ready to have a brief chat to pin down your project scope.
- HW5B: buffer overflow is on NetRun, and due anytime Friday, October 2.
- HW5A: super simple function pointer syntax is on NetRun, and due anytime Friday, September 25.
- HW4: a real full-strength homework on doing things with memory allocation and access. Due Monday, September 21.
- HW3B: simple pointer arithmetic, strings, and arrays are on NetRun, and due anytime Monday, September 14 (this is another short easy one, half an hour tops!)
- HW3A: super simple pointer access introduction is on NetRun, and due anytime Friday, September 11 (it's a super easy short homework, just to get you practice with pointers!)
- HW2: function calls and push/pop is now available on NetRun, and due anytime Wednesday, September 9.
- HW1: assembly is now fully available on NetRun, and due anytime Wednesday, September 2.
- HW0: C++ Review is on NetRun, and due anytime Friday, August 28.
- Use your @alaska.edu email to set up your NetRun account, then log into NetRun here. If you don't see a CS 301 section like below as soon as you log into NetRun, email me and I can fix it immediately:
- CS 301: Homepage (Fall 2020)
- HW0 review of C++. Due anytime Friday, August 28.
Reference info
- Let me know if you missed your presentation timeslot, we may have a few make-up presentations after the final exam.
- 11/23: Macro and general course wrap-up
- Take a deep breath. Assembly is famously hard. You can do this.
- Check my x86-64 cheat sheet
- Just hitting "TraceASM" in NetRun will show you the operations as they happen instruction by instruction.
- I have office hours on Zoom from 2-3:30pm every weekday, or email lawlor@alaska.edu anytime!