Primary Instructor
kjleach@umich.edu
Office Hours:
MW 4 - 5pm Eastern time
Zoom: https://umich.zoom.us/j/91248476635
Windows 10, Linux
Summer 2020
A holistic course of modern web systems and technologies, covering front end and back end. Build an Instagram clone in the first half of the semester, and a Google clone in the second.
The course will consist of live lectures and discussion/lab sessions. We will be using Zoom. All lectures and discussions/labs will be recorded and posted to Piazza.
The recordings are managed in a thread on Piazza. The lecture slides will be posted on the schedule below and on the public Google drive.
There are several resources you should be aware of this semester:
Primary Instructor
kjleach@umich.edu
Office Hours:
MW 4 - 5pm Eastern time
Zoom: https://umich.zoom.us/j/91248476635
Windows 10, Linux
Graduate Student Instructor
yuweibao@umich.edu
Office Hours:
MRF 9am - 12pm
MW 7pm - 10pm
(all Eastern time)
Zoom: https://umich.zoom.us/j/91248476635
Instructional Assistant
awei@umich.edu
Office Hours
MTW 10am - 12pm
WF 10pm - 12am
(all Eastern Time)
Zoom: https://umich.zoom.us/j/91248476635
This table will be updated regularly with links to slide decks.
Date | Content | Deadline |
---|---|---|
Wed Jul 1 | Introduction (Slides) | Class Begins |
Thu Jul 2 | Web Basics (Slides) | |
Mon Jul 6 | Dynamic Pages (Slides) | |
Tue Jul 7 | Sessions (Slides) | |
Wed Jul 8 | Encryption (Slides) | |
Thu Jul 9 | Web Security (Slides) | |
Fri Jul 10 | Project 1 Due | |
Mon Jul 13 | REST APIs (Slides) | |
Tue Jul 14 | Javascript 1 (Slides) | |
Wed Jul 15 | Javascript 2 (Slides) | |
Thu Jul 16 | Asynchronous Programming, React, Closures (Slides) | |
Fri Jul 17 | Project 2 Due | |
Mon Jul 20 | Networking (Slides) | |
Tue Jul 21 | Google File System (Slides) | |
Wed Jul 22 | Map Reduce (Slides) | |
Thu Jul 23 | Exam Review | |
Fri Jul 24 | Project 3 Due | |
Sat Jul 25 | Midterm Exam Released | |
Mon Jul 27 | Blockchain
(Slides)
Guest lecture by Tadge Dryja |
Midterm Due Noon Eastern! |
Tue Jul 28 | Information Retrieval 1 (Slides) | |
Wed Jul 29 | Information Retrieval 2 (Slides) | |
Thu Jul 30 | Information Retrieval 3 (Slides) | |
Fri Jul 31 | ||
Mon Aug 3 | Systems, Processes, Threads, and Sockets (Slides) | |
Tue Aug 4 | Scaling Static and Dynamic Content (Slides) | |
Wed Aug 5 | Machine Learning (Slides) | |
Thu Aug 6 | Recommender Systems (Slides) | |
Fri Aug 7 | Project 4 Due | |
Mon Aug 10 | Ads and Auctions (Slides) | |
Tue Aug 11 | Ethics (Bias moved to 8/12) (Slides) | |
Wed Aug 12 | Bias, TOR, and Dark Web (Slides) | |
Thu Aug 13 | Final Exam Review | |
Fri Aug 14 | Project 5 Due | |
Sat Aug 15 | Final Exam Released | |
Mon Aug 17 | Career Planning, Interviews | Final Exam Due Noon Eastern! |
Tue Aug 18 | Class Ends Project 5 Due (no late submissions allowed) |
|
Fri Aug 21 |
w3Schools HTML Intro
w3schools CSS Intro
Official Python Tutorial
Install web dev tools on your operating system
git
and GitLab
Web dev features in popular web browsers
python3 -m venv
pdb
and pdb++
pytest
Command line automation
w3Schools SQL Intro
Projects: P2
, P3
, P5
SQLite Tutorial
Projects: P2
, P3
, P5
Dynamic pages
Projects: P2
, P3
, P5
Projects: P2
, P3
, P5
Projects: P3
, P5
curl
, HTTPie
Projects: P3
, P5
Toolchain, demo
Projects: P3
, P5
Headless Chrome
Projects: P3
, P5
Projects: P4
Course Summary: This course is a contemporary exploration of modern web-based information systems. It willintegrate concepts from multiple computer science topics used in the design, development, anddeployment of web-based applications, services, and knowledge systems. While broad inscope, it will also cover several key concepts in depth, including: web networking protocols, webdatabases and applications, web services, web search, web-relevant security issues,web infrastructure, and web-relevant data mining. Students will learn how to incorporate theseconcepts into an engineering process that includes design, analysis, development and testing,using technologies such as HTTP, XML, JavaScript, AJAX, and others.
Students will form teams to implement assignments on Linux-based web servers usingopen-source components. These assignments will culminate in students implementing their ownlarge-scale web search engine, roughly comparable to Google or Bing. At the end ofthis course, students will understand the science behind web-based information systems andthe engineering principles for building them.
This course is about the design and development of information systems in wide area networks.Its primary goal is to take a holistic view of modern web systems and their constituenttechnologies. By the end of this course, successful students will be able to:
Students are required to have taken EECS 281.
There is no required textbook for this course. Optional sources include:
Piazza should be your primary resource for communicating with course staff. You are allowed to ask general questions, however, you must not post your own entire solutions to projects (doing so is a violation of the Honor Code). Please make private posts if you are unsure whether your question contains too much sensitive code.
You can also use the course Slack to communicate with each other and with course staff. However, this is not a guaranteed method of communication (e.g., Kevin may not respond immediately to Slack posts or Direct Messages).
If you have a private issue to discuss, email Kevin Leach (your primary instructor) at kjleach@umich.edu. Also Cc Emily and Andrew. Please put EECS 485 in the subject line of any email-based correspondence.
This course contains 5 programming assignments. The first is individual, and the remainder are in optional groups of 2 to 3. You can form a different group for each project. Course staff will randomly assign a group if you like. Groups are recommended, but not required.
All team members will normally earn the same grade on their joint work. At the end of each group assignment, we will ask each group member to describe and evaluate the contributions ofother group members. Based on this feedback, we may adjust the grades for students whosubstantially under-participate in projects to reflect their actual level of participation. In case of disputes regarding participation, an instructor may examine commit logs and/or interview group members on the project’s design and implementation.
For those retaking the course: if you submitted a project in a previous term, you may not be in agroup for that same project this term.
There are two exams this semester (see the Calendar). These cover all lecture, discussion, and project materials.
Exams will be delivered remotely. You will download a package containing an Exam PDF and a text file in which to supply answers. You will upload your answer file to a special URL (to be determined). You will have two hours to complete your exam after you download it. You are responsible for downloading, completing, and uploading your own exam.
Exams are open notes and internet, but you cannot discuss any part, question, or concept on the exam with anyone else. If you have a question, you must make a private Piazza post, a slack DM to course staff, or an email to course staff. Any communications during the exam window aside from those with course staff are considered an Honor Code violation.
From time to time, we will administer quizzes via GradeScope to ensure that you are staying on top of the material. These quizzes are trying to make sure you do not binge watch lecture recordings at the last minute. Quizzes will be released after lecture, and will be due before lecture the next day (due at 1:30PM eastern time the following day). There are no extensions or make ups for quizzes, and absolutely no late quizzes accepted. There are four types of quizzes:
The late policy is established only for Projects. We will not accept late quizzes. If you have an extenuating circumstance (bereavement, illness, etc.), then you must provide documentation. Extensions for projects are given at the discretion of course staff. Similarly, we may grant extensions on Exams based on unforeseen emergencies.
If you do not have a documented extenuating circumstance, then late submissions for Projects will be penalized by h% for h hours submitted late. For example, if you submit a Project 48 hours after the deadline on the course calendar, then we will remove 48% from your final score for that specific project. It is your responsibility to know the project deadlines and how late you are submitting.
Your grade is computed as follows
Assignment | Percentage of Grade |
---|---|
Programming Projects | 10% each (50% for all 5) |
Exam 1 | 20% |
Final Exam | 20% |
Quizzes | 5% |
Professionalism | 5% |
To pass the course, you must receive a passing average Project score and a passing average Exam score. By default, the treshold for "passing" is 70%. However, if exam averages are lower than 80%, the passing threshold for the exams will be lowered to one standard deviation below the average exam score.
As a remote and compressed course, you are expected to comport yourself professionally. By default, you will be given your Professionalism points at the start (5% of your grade). There are three ways to lose your five Professionalism points.
At the instructor's discretion, if you receive a 0 on your Professionalism score, we reserve the right to give you a failing grade.