Announcements
- Our final exam Q&A review session will be in SCI 181 at 6:00 PM on Thursday, December 11.
- Final project information is now online.
- This course is supported by an AWS in Education Grand award.
Class Info
Class: MWF 10:30 AM – 11:20 AM, Science Center 181
Professor: Kevin Webb
Piazza: Q&A Forum
Gradesource: Grade listing
Office: Sci 255
Office hours: Monday, 11:30 AM – 12:30 PM (immediately after class) and Thursday, Noon – 1:30 PM
Prerequisite: Completion of CS 31 or its equivalent.
The course is composed of the following:
-
Readings: The readings serve as a first exposure to new topics from a
primary literature source.
-
Class meetings: The classroom material will cover the difficult concepts
and facilitate student discussions.
-
Labs and projects: There are several lab programming assignments that
will explore various aspects of cloud systems. Students will also work on a
final project to tie the course concepts together.
-
Exams: There is a midterm exam and a final exam covering the material in
the class meetings and the labs.
Required Textbook:
This course does not have a required textbook that you need to purchase.
Typically, we will be reading from primary literature sources (academic
papers). Occasionally, we'll read from other sources, such as this
collection, which will serve as our textbook.
Goals for the course:
By the end of the course, we hope that you will have developed the
skills to:
- Read and critically evaluate computer science research papers. (Tips for effectively reading research papers.)
- Describe the trends in computing that facilitate cloud computing and data
center networks.
- Analyze the trade-offs associated with developing and deploying large
systems and networks.
- Design and debug programs that utilize multiple forms of parallel
processing.
- Characterize the behavior of popular cloud-based software like MapReduce,
NoSQL, memcached, and others.
- Implement software systems that take advantage of cloud platforms like Amazon's Web Services.
Schedule
This is a tentative schedule; it may change as we go.
include("calgen/auto.php"); ?>
Lab Policy
This course features regular lab assignments that account for the largest
component of your course grade. Lab attendance is required by all
students, unless you have already completed and submitted the lab
assignment for the week. Additionally, the cs labs are open 24 hours a day,
7 days a week for you to use for lab assignments. While you must attend the
lab session for which you are registered, you may optionally attend
additional lab sessions, provided space is available. In case of space
constraints, students registered for the lab will have seating priority.
Lab assignments will typically be assigned during the lab sections on
Friday will generally be due by midnight on Thursday, one or two weeks
later. You are strongly encouraged to start early!
Even if you do not fully complete an assignment, you should submit what
you have done to receive partial credit.
Weekly Lab Sessions
|
Section 1 |
Fridays 1:15—2:45 |
Science Center 256 |
Section 2 |
Fridays 3:00—4:30 |
Science Center 256 |
Accessing the CS labs after hours
You can use your ID to gain access to the computer labs at nights and on the
weekends. Just wave your ID over the
microprox reader
next to the lab doors. When the green light goes on, just push on the door
handle to get in (the door knob will not turn). If the green light doesn't go
on, then we need to enter your microprox number into the system. If you have
issues with the door locks, send an email to local-staff@cs.swarthmore.edu.
If the building is locked, you can use your ID to enter the door between
Martin and Cornell library. For this class, your ID will give you access to
the labs in rooms 238, 240, and 256.
Grading
Grades will be weighted as follows:
40% | Lab assignments (Includes final project) |
30% | Final Exam |
20% | Midterm Exam |
10% | Class Participation |
How to Succeed in CS 91
-
Read the material before you come to class.
The better you understand the material before coming into class, the easier it
will be to ask questions during class, rather than later when help may not be
available. Make a note of any aspects of a paper that are interesting, confusing, or otherwise worthy of further discussion in class.
- Attend class and participate in discussions.
In class, we'll
cover new topics and dig into the more challenging details of the material.
Class discussions are a critical part of the learning process, as these
exercises give you immediate experience with the material we are covering.
-
Ask questions if you don't understand.
This means both during class
and while doing lab assignments. This class continually builds on previous
material, so if you don't understand something one week, it will continue to be
a problem the next week, and the week after that, and so on. If you need help,
ask your classmates (make sure you have read the "Academic Integrity" section
below first), post on Piazza, or come talk with me during my office hours.
-
Start the lab assignments early.
I realize this one is not always easy to do, but if you can get in the
habit of doing this, you will be much better off. If you get
stuck early (i.e., not two hours before it is due), there will be time
to look for help. In addition, if you start early enough, you can
take a break, go do something else, and come back later. I find I
always have at least a few new ideas when I come back to a problem
after a break. If you wait until the last minute, you can't do this.
-
Practice, practice, practice.
The only effective way to
learn the material and pass the quizzes and exams is to consistently
do the labs. Finish all of the assigned programs (and do some extras,
for fun!). Even if you don't get them done on time, they will still
help you learn the material.
-
Seek help early and often.
Because course material builds
on previous material, it is essential to your success in this class
that you keep up with the course material. If you are having difficulty
with a programming assignment, if you didn't follow something covered
in class, if you feel you need some extra help understanding or
practicing some of the course material, or if you just want to discuss
something from a class, an assignment, or the text, please come to
my office hours.
-
Attend Labs.
Lab attendance is required,
and the labs constitute the largest portion of your grade. You should be
there!
Academic Integrity
Academic honesty is required in all your work.
Under no circumstances may you hand in work done with (or by) someone
else under your own name. Your code should never be shared with anyone;
you may not examine or use code belonging to someone else, nor may you
let anyone else look at or make a copy of your code. This includes, but
is not limited to, obtaining solutions from students who previously took
the course or code that can be found online. You may not share
solutions after the due date of the assignment.
Discussing ideas and approaches to problems with others on a general
level is fine (in fact, we encourage you to discuss general strategies
with each other), but you should never read anyone else's code or
let anyone else read your code. All code you submit must be your own
with the following permissible exceptions: code distributed in class,
code found in the course text book, and code worked on with an assigned
partner. In these cases, you should always include detailed comments
that indicates on which parts of the assignment you received help, and
what your sources were.
Failure to abide by these
rules constitutes academic dishonesty and will lead to a hearing of the
College Judiciary Committee. According to the Faculty Handbook:
"Because plagiarism is considered to be so serious a transgression, it is
the opinion of the faculty that for the first offense, failure in the
course and, as appropriate, suspension for a semester or deprivation of
the degree in that year is suitable; for a second offense, the penalty
should normally be expulsion."
Please contact me if you have any questions about what is
permissible in this course.
Academic Accommodations
If you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 113) or email lhempli1 to arrange an appointment to discuss your needs. As appropriate, she will issue students with documented disabilities a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. For details about the accommodations process, visit the
Student Disability Service website.
To receive an accommodation for a course activity, you must have an Accomodation
Authorization letter from Leslie Hempling and you need to meet with me to work
out the details of your accommodation at least one week prior to the activity.
You are also welcome to contact me privately to discuss your academic needs. However,
all disability-related accommodations must be arranged through Leslie Hempling in
the Office Of Student Disability Services.
External Links
Links that are related to the course may be posted here. If you have
suggestions for links, let me know.