How To Pass Eecs 485



Similar documents
SI 539, Winter 2014 Complex Web Design

After completing SI- 539, students will have a working personal portfolio website in production.

Financial Management FIN 300, Sections 004, 005 Fall 2011 University of Michigan, Ross School of Business

Financial Analysis FIN 513, Fall A 2011 University of Michigan, Ross School of Business

Technology and Online Computer Access Requirements: Lake-Sumter State College Course Syllabus

UNIVERSITY OF ARKANSAS AT MONTICELLO SCHOOL OF SOCIAL AND BEHAVIORAL SCIENCE AMERICAN NAT L GOV. (PSCI 2213) ONLINE COURSE SYLLABUS Fall 2014

UNIVERSITY OF MICHIGAN SCHOOL OF INFORMATION SI301: Models of Social Information Processing Syllabus

Fall 2015 GES 4120/5120 Internet GIS

ISM 4210: DATABASE MANAGEMENT

CSC-570 Introduction to Database Management Systems

How To Pass A Management Course At Anciento State University

Syllabus for Accounting 300 Applied Managerial Accounting California State University Channel Islands Fall 2004

JOU4700: Problems and Ethics in Journalism Course Syllabus, Spring 2015 Mondays, 3-6 p.m. Florida Gym, Room 260

Class and Office Hours. Course Requirements. Concepts to Learn. CMPUT 499: Introduction

BUS Computer Concepts and Applications for Business Fall 2012

MSIS 630 Project and Change Management (Fall 2014) Course Syllabus

ITP 300: Database Web Development. Database Web Development (Monday section) Fall 2012 Course Units

SI649 Information Visualization. Learning Objectives. Tentative Schedule. Preliminary Syllabus, Fall 2012

FINC 332 Section 102, Business Finance, Fall 2014 M, W, F Corboy Room 322

PSYCH 460 CLINICAL CHILD PSYCHOLOGY SPRING 2013

MGT 3303 Human Resource Management

COMM 363: Advanced Web Design

CIS 287 World Wide Web Development Fall Blended

Cleveland State University

USC VITERBI SCHOOL OF ENGINEERING INFORMATICS PROGRAM

COMM 275 / WEB DESIGN AND USABILITY / FALL 2015

EMPORIA STATE UNIVERSITYSCHOOL OF BUSINESS Department of Accounting and Information Systems. IS213 A Management Information Systems Concepts

CS 649 Database Management Systems. Fall 2011

The course assumes successful completion of CSCI E-50a and CSCI E-50b, i.e. at least two semesters of programming, with a grade of C- or better.

INFO 2130 Introduction to Business Computing Fall 2014

Advanced Database Management MISM Course F A Fall 2014

ISM 4113: SYSTEMS ANALYSIS & DESIGN

Course Syllabus PEHR Sports Marketing, Game Management & Promotions Dixie State College of Utah Fall 2012

CSci 4211: Data Communications and Computer Networks. Time: Tuesday and Thursday 8:15 to 9:30 am Location: Phyics 170 Spring 2015, 3 Credits

Technology Department Computer and Network Support Capstone CMP 259-D01 Syllabus: Spring 2015

Syllabus GIS Database Management (GIS , GIS ) (Fall 2010)

Course Title: Minorities and the Criminal Justice System Course Prefix: CRJS Course No.: 3933 Section No.: PO1

PAF 410: Intro to Web Design - Fall 2014

UNIVERSITY OF MARYLAND MONEY AND BANKING Economics 330 Fall 2015

ISQS 3358 BUSINESS INTELLIGENCE FALL 2014

General Psychology Psychology 150 (102 & 302) Fall 2009

Biology 360 Genetics Lecture Syllabus and Schedule, Fall 2012 Tentative

Psychology Mind and Society Mondays & Wednesdays, 2:00 3:50 pm, 129 McKenzie Hall Fall 2013 (CRN # 16067)

COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida

SYLLABUS FIN 510: INVESTMENT SEMINAR University Center Dallas

Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014

Any additional readings will be available as pdf documents on our course website.

AC 430 Financial Accounting III Department of Accounting and Finance School of Business University of Alabama at Birmingham Fall 2013

FUNDAMENTALS OF NEGOTIATIONS Purdue University Fall 2014 CSR CRN Tuesday and Thursday 7:30 AM - 8:45 AM Krannert Building G016

Database Web Development ITP 300 (3 Units)

Psychological Testing (PSYCH 149) Syllabus

Introduction to Computer Forensics Course Syllabus Spring 2012

Introduction to Industrial and Organizational Psychology PSY 319 Fall, 2015 (Section 1)

San José State University College of Engineering/Computer Engineering Department CMPE 206, Computer Network Design, Section 1, Fall 2015

PSY B358 Introduction to Industrial/Organizational (I/O) Psychology Fall 2012

MAC 1140 Reference # MWF 9:00 AM 9:50 AM Fall 2011 Rm. 3321

Digital Communication Southwest College

ACTG 051A: Intermediate Accounting 1A Foothill College, Summer 2015

CISM Fundamentals of Computer Applications

PSY 350 ABNORMAL PSYCHOLOGY SPRING 2011

MHR 305: Human Resource Management A Strategic Approach. Fall 2011

Strategic Use of Information Technology (CIS ) Summer /

11:709:255:90/91 Nutrition & Health (3 credit hours) Fall 2015 Online Online ecollege ( Index # 07233/10724

THE UNIVERSITY OF WESTERN ONTARIO Department of Sociology Administration of Criminal Justice Fall 2013

F l o r i d a G u l f C o a s t U n i v e r s i t y S t a t i s t i c a l M e t h o d s F a l l C R N

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

CHEMISTRY 109. Lecture 2, Fall Read This Syllabus Today Keep It for Future Reference

MATH Probability & Statistics - Fall Semester 2015 Dr. Brandon Samples - Department of Mathematics - Georgia College

General Psychology, PSY 101

General Psychology. Course Syllabus

PSY 211 Psychology of Learning San Diego State University Fall Semester 2010 Tuesday 8:00-9:15 and Online

INFSCI 1017 Implementation of Information Systems

MIS Systems Analysis & Design

MAN 4802 Entrepreneurship/Small Business Management Online Fall 2013

Course Description. Course Objectives

Math 103, College Algebra Fall 2015 Syllabus TTh PM Classes

CIS 160 ST: Web Design and Technology

Rutgers University, Department of Psychology Developmental Psychology Winter Office Hours Office Phone

Advanced Digital Forensics ITP 475 (4 Units)

Intro. to Data Visualization Spring 2016

Southwestern Michigan College School of Business Dowagiac, Michigan. Course Syllabus FALL SEMESTER 2012

Los Angeles Pierce College. SYLLABUS Math 227: Elementary Statistics. Fall 2011 T Th 4:45 6:50 pm Section #3307 Room: MATH 1400

LIS 638: Internet Technologies and Information Services Spring 2015 (January 14 to May 1)

Technology Department Help Desk & User Support CMP 240-D01 - Online Syllabus: Spring 2015

Austin Community College Marketing Research Marketing Fall 2009 Distance Learning

MKTG 364 Fall 2014 Internet Marketing

Instructor: Dr. Tania Lam Tel: (604) Office Hours: by appointment (please to set up a time)

COURSE NUMBER AND TITLE: Management Information Systems Concepts

Network Security ITP 457 (4 Units)

COURSE: PSYC 1101 (11) Introduction to Psychology TIME AND DAYS: Tuesdays & Thursdays; 1:00 2:15 pm CLASSROOM: Science Center 1405 (and computer lab)

Introduction to Industrial and Organizational Psychology PSY 319 Spring, 2013 (Section 1)

GGR272: GEOGRAPHIC INFORMATION AND MAPPING I. Course Outline

L&I SCI 410: Database Information Retrieval Systems

Transcription:

EECS 485 - Web Databases & Information Systems The University of Michigan Fall 2013 Lectures Mon, Wed 10:30AM - 12:00PM Professor Michael Cafarella Location 1013 DOW Office 4709 BBB GSI Jun Chen Professor Office Hours Monday 12:30-1:30 or by appt GSI email chjun@umich.edu Professor Email michjc@umich.edu Course Description This course is a contemporary exploration of modern web-based information systems. It will integrate concepts from multiple computer science topics used in the design, development, and deployment of web-based applications, services, and knowledge systems. While broad in scope, it will also cover several key concepts in depth, including: web networking protocols, web databases and applications, web services, web search, web-relevant security issues, web infrastructure, and web-relevant data mining. Students will learn how to incorporate these concepts 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 Apache web servers using open-source components. These assignments will culminate in students implementing their own large-scale Web search engine, roughly comparable to Google or Bing. At the end of this course, students will understand the science behind web-based information systems and the engineering principles for building them. This is a 4-credit course and satisfies the Software Area Kernel Requirement for MS and Ph.D. students in CSE. Fully understanding the Web requires background from many different aspects of computer science. This course will try to bring together this disparate material and make you think about how these should work together to create a usable, efficient, and secure distributed information system. Most students will probably be familiar with a portion of the class material, but very few students will have background in all of the topics covered. (If you're among the lucky few, you might consider taking something else!) Objectives 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 constituent technologies. By the end of this course, successful students will be able to: Understand how n-tiered architectures can be used to implement secure, scalable systems Design and develop database-driven websites and applications Understanding XML as a messaging and data exchange mechanism Utilize JavaScript to improve database-driven websites Analyze server logs to understand system performance and user behavior Understand designs for modern search engines and datacenters Understand Web "semantic systems," such as auctions, recommendation systems, and

search ranking. Understand critical components of the modern Web infrastructure: DNS, Content Delivery Networks, etc. Prerequisites The formal prerequisite for this class is EECS 281 OR (EECS 282 and EECS 382). In past years EECS 484 was a requirement, but no more. Less formally, a working knowledge of databases and SQL is required. If you have not taken EECS 484, you may have to do additional reading on your own. There will be a substantial amount of programming in this class, and programming will not be a major topic of lectures. So you are expected to have "programming maturity." That is, you are deeply familiar with at least one programming language that is suitable for software engineering, such as Java, C, C++, Python, etc. You should be willing and able to pick up other similar languages. You should be able to understand and use new APIs by reading manuals and other relevant documentation. Students who may be unsure about their qualifications should approach the instructor with any questions. By the end of class you will have written programs in three different languages: a Web development language, JavaScript, and Java/C++. Requirements Achieving the course objectives will require a significant amount of learning outside of class. Lectures will cover key topics and help integrate concepts, but will not necessarily cover all implementation details. Discussion sessions will be dedicated to development techniques, assignment details, and current lecture topics. Although significant support will be available, student teams will be required to research various technologies and development techniques to complete their assignments. Coursework will consist of a sequence of 6 programming assignments, the last of which will integrate all of the previous components. This overall project will be a Web search engine capable of scaling to roughly the level of Google in 2004. (Google in 2004 was pretty good!) The project is intended to give enough flexibility that you can show off your creativity as well as what you learned in class. All of the programming assignments are done as part of a group of 3 students. You will decide your fellow group members during the first week of class, and your group is intended to remain fixed for the duration of the class. If you do not know anybody in class, or have difficulty finding group mates, contact the instructor or GSI as soon as possible and we will help you create a group. All team members will get the same grade on their joint work, except under very unusual (and generally unpleasant) circumstances. Some students are uncomfortable with the idea that team members will help determine each others' grades. This is unavoidable in EECS 485; if group work makes you uncomfortable, you will probably be happier taking a different class. An important part of the course is working within a team environment to solve hard problems. As such, we may sometimes ask you to write a brief report that describes the contributions of each team member for a given assignment. The results may impact your grade on that assignment.

There will be one midterm and a final examination. Textbook There is no comprehensive textbook. Readings for this course are provided via CTools in the Resources/Readings directory. They are a set of PDF files specific to each topic along with links to outside information sources. These readings are required for the class and you will be expected to know their content. The lecture notes will also be made available shortly before each class. The only book you should buy is a book about JavaScript. It has useful content you can t find in any other format, and it s reasonably priced: JavaScript: The Good Parts, 1st Edition, by Douglas Crockford. O Reilly, 2008. If you want to have a supplemental text for the programming assignments (especially the first three), here are a few relatively inexpensive options. These are optional texts and are not required, but you might find them useful: Web Database Applications with PHP and MySQL, by David Lane and Hugh Williams. O'Reilly, 2009. PHP and MySQL Web Development, 4th Edition, by Luke Welling and Laura Thomson. Addison-Wesley, 2009. Learning PHP, MySQL, JavaScript, and CSS, by Robin Nixon. O'Reilly, 2012. Some of these texts are available in electronic format at lower cost (e.g., from Amazon or the O Reilly website). Also, some of these texts may be available for free online for Michigan students. Check out http://proquest.safaribooksonline.com. Assignments Programming assignments are cumulative, with subsequent assignments depending upon previous ones. Make sure not to fall behind, or you will be in serious trouble. If you have an illness, a family situation, or other emergency, figure out a fair way to manage the load with your project partners. There will be weekly written review questions for lecture material that will be ungraded. They are intended as a study aide and fodder for discussion section. Exams There will be a midterm exam and a final. The midterm will cover topics discussed in roughly the first half of the semester, and the final exam will be comprehensive. There will be no make-up exams. Make sure not to miss the midterm or final. The final exam will be held during the standard scheduled exam period for this class: Tuesday, December 17, 1:30PM - 3:30PM. Tentative Lecture and Discussion Schedule Note that this schedule only lists the first two discussion sections, but they will generally be held each week. After the first few weeks, each discussion section will cover questions on

the pending programming assignment or the lecture-based ungraded review questions. Note: This syllabus is subject to revision at any time. 1 Wed, Sep 4 Welcome & Web Overview DISC Fri, Sep 6 Intro to Apache, MySQL 2 Mon, Sep 9 Networking 1: TCP/IP Prog1 OUT 3 Wed, Sep 11 Networking 2: TCP/IP cont d, HTTP DISC Fri, Sep 13 Intro to PHP 4 Mon, Sep 16 Dynamic Page Generation 5 Wed, Sep 18 Sessions and Personalization Prog1 IN, Prog2 OUT 6 Mon, Sep 23 Web Security 7 Wed, Sep 25 Public Key Cryptography 8 Mon, Sep 30 JavaScript 1 Prog2 IN, Prog3 OUT 9 Wed, Oct 2 JavaScript 2 10 Mon, Oct 7 XML and JSON 11 Wed, Oct 9 NoSQL -- Mon, Oct 14 FALL STUDY BREAK 12 Wed, Oct 16 Web Search 1: Information Retrieval Prog3 IN, Prog4 OUT 13 Mon, Oct 21 Web Search 2: Information Retrieval -- Wed, Oct 23 MIDTERM EXAM 14 Mon, Oct 28 Web Search 3: Link Analysis 15 Wed, Oct 30 Web Search 4: Deduplication, LSH, etc. 16 Mon, Nov 4 The Google File System Prog4 IN, Prog5 OUT 17 Wed, Nov 6 MapReduce and Big Data 18 Mon, Nov 11 Data Mining 1: Supervised Learning 19 Wed, Nov 13 Data Mining 2: Unsupervised Learning 20 Mon, Nov 18 Data Mining 3: Rule Induction Prog5 IN, Prog6 OUT -- Wed, Nov 20 THANKSGIVING MYSTERY TOPIC 21 Mon, Nov 25 Data Mining 4: Text Mining 22 Wed, Nov 27 DNS and Content Delivery Networks 23 Mon, Dec 2 Auctions 24 Wed, Dec 4 Recommendation Systems 25 Mon, Dec 9 Inside The Datacenter 26 Wed, Dec 11 Topic Review; Future of the Web Prog6 IN

Discussion sections will be held at the following times: Thursdays at 4:30 (Dow 1006) Fridays at 10:30 (EECS 1500) Fridays at 12:30 (Dow 1010) Fridays at 2:30 (Dow 3150) In general you should attend the discussion section for which you are registered. If you are sick or have a game when your section is scheduled to meet, you should attend a different section that week. Grading Your grade for the class will be determined by the following weighting: Evaluation Programming Assignments 50 Midterm Exam 20 Final Exam 30 Total 100 Percentage of Grade In the event there are grading errors, please bring them to the attention of the GSI or instructor promptly. Please realize that we are careful in terms of applying a uniform grading policy, and so will not be able to make changes unless you have a particular special circumstance. No regrade requests will be entertained more than two weeks past the time the graded assignment or exam was returned to you -- it is very hard for us to grade consistently if we have to go back to things we did weeks ago and no longer have the material fresh in our heads. Due Dates Assignments are due at 11:55pm on the date indicated in the above schedule. You may take a total of 4 late days total over all group programming assignments (except the last assignment), subject to a maximum of 2 late days for any assignment. These late days are intended to account for the inevitable illnesses, family visits, demands from other classes, etc. If you have a lot of assignments due the same day, just take a late day! Sick and can't work? Use a late day! That's what they're for. Every additional late day beyond 4 will cost you 1% of the final grade (total for the course). Any assignment completed more than two days late will earn a zero for that assignment. All students in a group will be allocated late days and penalties together. Every now and then there will be a severe emergency that cannot be covered by your late days, in which case you should approach us and ask (as early as possible). But we expect these situations to be very rare. Plan for contingencies. Allow some slack in your schedule. Please note: Your late days cannot be applied to the exams or assignment #6. Each year

some students save their late days to spend on the last assignment, only to realize in horror that their late days can no longer be used. Don t let that happen to you. Programming Projects The project in this class is cumulative: every piece will fit into the final system that you build. This is intended to be a major software engineering project on your part, and should result in a working search engine that would be genuinely useful to a general audience. There are some major features that are required, but you will also have the opportunity to exercise your creativity by adding lots of bells and whistles. Keep in mind that some of the most interesting sites on the Web were created by just a couple of people. This is your chance to build something great. Office Hours The instructor, GSI, and IAs all hold regular office hours to help you with your questions. Mike s office hours will be in BBB 4709 on Mondays 12:30-1:30pm, and by appointment. The other office hours are as follows: Monday: Matt 3-5 Tuesday: Jun 10-12 Wednesday: Otto 12-2 Thursday: Jun 3-4, Matt 4-5 Friday: Otto 1:30-2:30 The GSI and IAs hours will be held in the CSE learning center (BBB 1637). Field Trip! As far as we know, we are the only class in EECS with a field trip! We will be visiting a large University of Michigan datacenter located off-campus in Ann Arbor (accessible via public transportation). You will see physical infrastructure that is similar, though not identical, to those used by large Web service providers like Google and Facebook. We will see the computers (thousands of them), electrical equipment, security arrangements, backup generators, and other items. It may sound a bit boring to go look at a bunch of hardware, but most people find the experience quite surprising and interesting. Attending the field trip is not mandatory, but is both highly encouraged and awesome. It will take place sometime in late November or early December. Details to follow. Plagiarism You may seek advice from any source -- the web, your classmates, others. However, every line of code you write must be your own. No copying of code from other sources, whether internal or external to the class, is permitted. Third party libraries and tools may be used, with adequate attribution, provided that the use of such library or tool does not render the assignment trivial; consult with the GSI or professor to make sure you have approval in advance. Violating the plagiarism rules may bring about a range of academic penalties, including (but not limited to) losing credit on the assignment, losing credit for the course, and even expulsion from the university. Online Discussion

We will have an online discussion board for the class, reachable from the class website on CTools. If you have questions outside of class or office hours, please post them here. If you see a question you can answer, or simply have something interesting and relevant to say, please post away (keeping in mind the plagiarism rules above). We hope we can keep a lively conversation going on the board. Accommodations for Students with Disabilities If you think you need an accommodation for a disability, please let the instructor know as early as possible. Some aspects of this course may be modified to facilitate your participation and progress. As soon as you make the instructor aware of your needs, we can work with the Office of Services for Students with Disabilities (SSD) to help determine appropriate accommodations. SSD (734-763-3000; http://www.umich.edu/ sswd/) typically recommends accommodations through a Verified Individualized Services and Accommodations (VISA) form. We will treat any information you provide as private and confidential. Some special arrangements take time to provision, so do let us know as soon as you can.