Lectures and labs are held in BARB 00 on Thursdays 14:00-16:00 and in BARB 21 on Fridays 8:30-10:30.
Lecturer: Prof. Marco Canini (Réaumur A.049, x7-4832)
Teaching assistants: Nicolas Laurent (Réaumur A.057), Waleed Reda (Réaumur A.058)
There is no textbook for the course. The field is still too new and in continuous transformation. The topics that we will cover in this course are well documented in technical papers and articles on the Web. We will provide pointers to these.
If you wish to consult books on these topics, consider the following:
"Cloud Computing: Theory and Practice", First Edition, by Dan C. Marinescu (Morgan Kaufmann), 2013, ISBN 978-0124046276
"Hadoop: The Definitive Guide", Third Edition, by Tom White (O'Reilly), 2012, ISBN 978-1449311520
Additional readings
You might also read these short, free introductory materials to cloud computing. The more you read (and understand), the better off you will be (this is true in life too).
The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, Second edition
Luiz André Barroso, Jimmy Clidaras, Urs Hölzle.
Above the Clouds: A Berkeley View of Cloud Computing
Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia. UC Berkeley Technical Report UCB/EECS-2009-28, Feb., 2009.
The authoritative information regarding this course will always be on this website.
This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates and the course staff. Rather than emailing questions to the course staff (and risking your message getting lost in their inbox), you should post your questions on Piazza. Sign up right away at our class page. If you have a question that is of a private nature, and you want it to be seen only by the course staff, then mark it "private" at the time of posting. When posting messages, please be aware that all homeworks must be solved individually.
ING2347 carries 5 units of credit. Homework counts for 30% of the grade. Final exam carries 60% of the grade. Participation in class counts for 10% of the grade. There will be 2 or 3 homeworks organized during the semester; they are all mandatory.
Background in computer networks (e.g., LINGI1341 or ELEC2920) and basic knowledges in programming (e.g., LSINF1121) are expected. This course also assumes some background in operating systems (e.g., LSINF1252). INGI2MS and SINF2MS are both compliant with these prerequisites. It is not necessary to have taken the UCL versions of those courses. Students who do not know if their background allows them to attend the course (e.g., students from ELEC or MAP) should contact the teaching assistant or the lecturers. We do not require any direct hands-on exposure to cloud computing, but all students should be familiar with the Java programming language and have experience using the Linux operating system.
Weaknesses in network can be filled by reading the textbook "Computer Networking: Principles, Protocols and Practice" by Olivier Bonaventure or "Computer Networking: A Top-Down Approach Featuring the Internet" by James Kurose and Keith Ross. The most important topics that will be used in INGI2145 are: packet switching, IP routing, TCP congestion control, and OSI layered model.
Gaps in operating systems can be filled by reading the textbook "Operating Systems: Three Easy Pieces" by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. The most important topics that will be used in INGI2145 are: concurrency and threads.
Lectures
Lectures will take place either on Thursday or Friday (exceptionally). A schedule of topics is posted on the class web site. We will not provide lecture notes but handouts will be available on the class web site. Participation to class is taken into account for the grade. We will take a presence sheet but note that mere presence in class is not considered as participation. We expect the students to actively participate in discussions during the class. Participation may also be graded based on surprise in-class quizzes that will test your understanding of material covered in prior classes. Note your participation grade carries to the second examination session and cannot be recovered.
Lab sessions
Lab sessions will take place on Friday (check the schedule). Lab sessions will complement the lectures with more practical information and hands-on exercises. A sketch solution of the exercises will be presented during the session. Presence is not mandatory but strongly encouraged.
Assignments
Homework assignments are practical exercises that will be organized during the course. Assignments must be solved individually, at home or in the INGI's computer rooms, and count towards 30% of the grade. It will not be possible to repeat the assignments for the second examination session. Start to work on them early; do not procrastinate! It is likely they will take longer than you expect. Do not wait until the day before the assignment is due to start. These assignments should be started pretty much when they are handed out. Also, there will be no extensions to the assignment deadlines. An (automatic) lateness penalty applies for homework turned in late; this is typically 10% deducted on the assignment grade for each day late or fraction thereof. If an assignment is 1 minute late, it is one day late.
For these assignments we will be offering a standardized development system that is based on a virtual machine image. This image contains a small Linux installation, the Eclipse IDE, and all the tools you will need for the homework assignments. In addition, we plan to provide the opportunity to use a major cloud provider (Amazon AWS) for hands-on experience with solving some real-world problems at large scale.
You are encouraged to discuss your homework assignments with your classmates; however, any code you submit must be your own work. You may not share code with others or copy code from outside sources, except where the assignment specifically allows it. Collaboration can also take the form of discussion on Piazza, visible to the entire class. We encourage you to answer questions, and such active participation will be rewarded. Cheating, plagiarism, and any form of dishonesty will be handled with maximum severity, according to UCL regulations. If you are ever in doubt about whether an action on your part may constitute unacceptable collaboration, please ask the course staff before proceeding—doing so afterward is too late.