Skip to content

revanthkolli/cs4501-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cs4501 Spring 2016

Internet Scale Applications

This course will provide a survey of methods for building large-scale internet websites and mobile apps. The intent is to build upon prior classes by explaining how theory meets practice. Topics covered will include scaling, security, large team software engineering, etc. There will be a series of cumulative course projects resulting in students building a working marketplace website. Weekly readings from industry and academic sources will complement the weekly lecture.

Prerequisites

CS3240 Advanced Software Development or equivalent experience building non-trivial Python/Django web applications is required. Understanding issues around persistence, databases, concurrency, networking etc along with Linux experience will be extremely helpful in this class.

A course project will be developed using Python, Django, MySQL, and Docker containers. A basic familiarity with HTML and CSS is preferred but not strictly required.

Project Overview

You will work in a team of three to four students to build a working marketplace website. Marketplaces such as Airbnb, Uber, DonorsChoose, eBay, Etsy and Watsi are both highly profitable when they succeed and technically challenging to build. It's up to you to decide what kind of marketplace your team will build. Specific instructions for each project will be posted and linked below thoughtout the semester.

Due dates are listed below for each part of the project. These may be revised as the term goes on based on how everyone is doing. You will be graded as a team (unless unusual conditions warrant giving different grades). Grades will be based on: completeness of solution, correctness of solution, and being on time completing each assignment.

Course materials

Syllabus and project assignments will be here in GitHub. Feel free to fork and send PRs with corrections, additions or any other changes you think would help fellow/future students.

Lecture slides are in Google drive at https://drive.google.com/folderview?id=0BzWAJQVnIIRYfk9JUmwtbUVKS1pqb0k0Q2ZYU3pPZ3gxV2VnVDctVU51VjFYTTVaR25xR3c&usp=sharing Note that prior semester's slides can be found here for future lectures, but they may be out of date / subject to update this semester. Generally, the further out a lecture is the more likely that the slides have not been reworked for this semester.

Readings are listed for each week and should be completed BEFORE the week they are assigned so that we can discuss in class.

Course Topics (subject to revision as course progresses)

  1. Anatomy of the modern internet, websites and mobile apps (Weds 1/20 and Monday 1/25)
  1. Requirements and documentation (Weds 1/27)
  • User stories
  • Product requirement documents
  • Design and architecture documents
  1. Service based architecture, part I (Monday 2/1)
  1. Databases (Monday 2/8 and Weds 2/10 - No class Weds 2/3)
  1. Service based architecture, part II: Multi-screen development for mobile and desktop (Monday 2/15 and Weds 2/17)
  1. Security (Monday 2/22 and Weds 2/24)
  1. Messaging and queing (Monday 2/29 and Weds 3/2)
  1. Search, Browse and Discovery (Monday 3/14 and Weds 3/16 - No class Monday 3/7 or Weds 3/9)
  1. Users and reputation (Monday 3/21)
  1. Speed (Weds 3/23 and Monday 3/28)
  1. Testing and DevOps (Weds 3/30 and Monday 4/4)
  1. TBD (Weds 4/6 and Monday 4/11)
  2. Advertising (Weds 4/13)
  • Map of advertising ecosystem
  • Display advertising: targeting, trafficking and optimization
  • Search advertising: advertising as machine learning problem
  • Project: Sprint 6: Add user log in, account sign up, sign in/out etc. Due 12/4.
  • Reading: Ad Auctions (sections I and II in particular) http://users.cms.caltech.edu/~adamw/courses/241/lectures/search2.pdf
  1. AB-testing and Analytics (Monday 4/18 and Weds 4/20)
  1. Traffic -- SEO, SEM, Social, Paid Marketing, Email (Monday 4/25)
  1. TBD (Weds 4/27, Monday 5/2)
  • Quiz #2 on Friday 4/27

Grading

Grades will be computed approximately as follows:
10% class participation
30% two quizzes
60% class project

Office Hours

The teaching staff for this semester are:

There will be one set of office hours for project questions and demos and another time for general class questions. Each project is two weeks. During the first week a project is assigned, the project review hours will be about how to do the project. During the second week that each project is assigned, the project hours will include mandatory demos of your team's progress. If you are unable to make the demo hours, please contact the teaching staff to arrange an alternative time.

  • Project review, help, and demo hours: Weds 1-2:30 and Sunday 3-4:30 (lead by TAs). Location TBD.
  • General Q&A Monday 2:30 - 3:30 (led by Tom). Location TBD.

There is also always help from the teaching staff and your fellow classmates through slack at https://cs4501-isa.slack.com

Remember, it's always better to ask questions, bring up problems etc sooner vs later.

About

Materials for this semesters Internet Scale Applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published