Resources
The following are some of the resources available to students of this course. If you feel at any point that you need additional assistance, please let us know!
Instructor
The instructor for this course is Zachary Palmer. My office hours are as follows:
Monday | 12:00 - 1:00 PM |
Thursday | 2:00 - 3:30 PM |
Friday | 3:00 - 4:30 PM |
You can also contact me via e-mail (zachary --dot-- palmer --at-- swarthmore --dot-- edu
) to make an appointment or just ask a question. You’re even welcome to drop by anytime my door is open; I’ll help if I’m around and available. My office is Science Center 270.
Slack
Our course has a Slack organization which will be used for course announcements, lab, office hours, and so forth. Please make sure to read the course Slack Guide to learn how Slack will be used this semester. You will be subscribed to the Slack organization before the start of the semester. If you do not have access, please feel free to contact your instructor.
Reference Materials
There is no textbook for this course. You may, however, find the following reference materials helpful:
- OCaml
- A setup guide for this course which uses a virtual machine. This VM will provide a similar experience to the CS network computers but will likely perform better for remote instruction. Using the course VM is strongly recommended. If you cannot use the course VM to complete your coursework, please contact the instructor to arrange alternatives.
- An OCaml transition guide to help you become accustomed to the language.
- The Real World OCaml book, a free online textbook which aims to teach OCaml to existing programmers. (You can purchase a hard copy version of the book as well.)
- The OCaml Documentation from
ocaml.org
, which includes installation instructions (if you need them) and some handy reference sheets. - The Batteries Included API Documentation. Batteries Included is a third-party OCaml library which we will use to replace the built-in OCaml standard library, which has a rather poor reputation.
- Intel x86 Assembly
- A Wikibook on x86 assembly.
- An x86 Assembly instruction reference.
- A summary of x86 calling conventions via Wikipedia.
- Compilers
- A tutorial on compiler construction by Abdulaziz Ghuloum, which inspired the structure of this course.
- Modern Compiler Implementation in ML, a textbook that we will not follow but which describes compiler construction in a functional language. (Note: OCaml is not the same language as ML!)
- Matt Might’s blog, which contains a wealth of information on compilation (and on other topics that students of Computer Science may find interesting).
Computer Lab
You can use your student ID card to gain access to the computer labs during the nights and on weekends. Just wave your ID over the card reader next to the lab doors. When the green light turns on, just push the door to get in (the knob will not turn). If you have problems getting in, visit Bridget in the department office or send her an e-mail (local-staff --at-- cs.swarthmore.edu
) to have your number added to the system. If the building is locked, you can use your ID to enter the door between Martin and Cornell library. For this class, you will have access to Science Center 238, 240, and 256 as well as Clothier 016.
Academic Accommodations
If you believe you need accommodations for a disability or a chronic medical condition, please contact Student Disability Services via email at studentdisabilityservices@swarthmore.edu
to arrange an appointment to discuss your needs. As appropriate, the office will issue students with documented disabilities or medical conditions a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact Student Disability Services as soon as possible.
For details about the accommodations process, visit the Student Disability Services website. You are also welcome to contact your instructor privately to discuss your academic needs. However, all disability-related accommodations must be arranged, in advance, through Student Disability Services.