Repo for CS 378 Virtualization course at the University of Texas at Austin CS Dept
Welcome to CS 378 Virtualization for undergrads. This is a course designed to expose undergraduate students to the latest in virtualization technologies such as virtual machines, containers, serverless, etc. The course also has a significant project component to be completed over the course of the semester. Do not take this course if you are not comfortable reading, editing, and writing code.
This course will introduce students to a range of exciting topics including:
Aside from teaching you the concepts behind virtualization, this course is meant to get you familiar with the commonly used tools and software. You should get used to using virtual machines, and containers. You will gain more experience with Git, and with real-world code bases.
Piazza Link: piazza.com/utexas/fall2019/cs378virtualization
Canvas Link: https://utexas.instructure.com/courses/1254479
Class Timing and Location: TuTh 3:30 pm - 5:00pm in GDC 1.304
Instructor: Vijay Chidambaram
Email: vijayc@utexas.edu
Office hours: 1:30-2:30 PM CST Monday and Wednesday, GDC 6.436
TA: Rohan Kadekodi
Email: rak@cs.utexas.edu
Office hours: 5-6 PM CST Tuesday and Thursday (right after class), GDC 6.440
TA/Proctor: Juthi Paul
Email: juthi_paul@utexas.edu
Office hours: 3:30-4:30 PM CST Wednesday in GDC Basement, Desk 5
20% Midterm-1
20% Midterm-2
30% Project: implementing your own hypervisor
30% Project: contributing to an open-source repository related to virtualization
You can earn upto 1% extra credit if your patches get accepted to any open-source repository related to virtualization.
0.5%: Any patch at all, no restrictions, could be a one line fix to a simple bug.
0.5%: This needs to be a more substantial patch, requiring technical thought and care.
Note that these extra-credit activities will also serve you well in hunting for jobs or internships: getting a patch accepted in a project is impressive.
There will be two midterms. There will not be a final exam.
Midterm 1: Oct 10th (in-class, practice
questions)
Midterm 2: Nov 26th (tentatively)
Exams will be based on application of material learnt in class, and will not require remembering details such as which register is used for which function. You will be allowed one A4 sheet of paper on which you can bring notes for the exam.
Laptops, tablets, and ereaders are banned from exams. You should not need them in an exam, and they are far too flexible as communication devices to make enforcement of non-communication policies enforceable. Any use of a communication device for any reason in the exam room will earn an automatic zero on the exam.
There will be two big projects in the course. Students will work in groups of two or three for both projects.
The first project will involve building parts of your own hypervisor. You will need to know the basics of operating systems, C, and assembly to complete this project. README for project one: https://github.com/vijay03/cs378-f19/blob/master/project-1.md
The second project is open-ended, and will involve adding a new feature to any open-source project related to virtualization and containers. Students will propose what they want to do, get the proposal approved, and then present on what they did at the end of the semester. You are encouraged to add a useful feature to an open-source project (and potentially get it merged with the code base).
More details about the projects will be added shortly.
Oct 10 Midterm 1
Oct 22 Project 1 due
Nov 26 Midterm 2
Dec 3-5 In-class presentations about open-source contributions
Dec 12 Report due about open-source contributions
Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, http://www.utexas.edu/diversity/ddce/ssd/.
Religious Holy Days: A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.
This course is inspired by (and uses material from) courses taught by Don Porter, Alison Norman, Remzi Arpaci-Dusseau, Simon Peter, and Chris Rossbach.
Copyright Notice: These course materials, including, but not limited to, lecture notes, homeworks, and projects are copyright protected. You must ask me permission to use these materials.
I do not grant to you the right to publish these materials for profit in any form. Any unauthorized copying of the class materials is a violation of federal law and may result in disciplinary actions being taken against the student or other legal action against an outside entity. Additionally, the sharing of class materials without the specific, express approval of the instructor may be a violation of the University's Student Honor Code and an act of academic dishonesty, which could result in further disciplinary action. This includes, among other things, uploading class materials to websites for the purpose of sharing those materials with other current or future students.