INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014 Me == CK 1 2 3 4 Fable 2 BS Electrical Engr, MS Computer Sci Semi-supervised Named Entity Recog. Kooapps A really long journey… If any of you wanna start your own company, we can chat : ) TA == Frank Xue Course Outline Basics Degree Program: Course Title: Course Number: Credit Hours: Prerequisites: Informatics Web Tools & Development INFO 344 5 CSE 142, INFO 343 Add code – come see me after class!!! I’ll pass around a sheet of paper, please put your first/last name + SUID Administrative Information Instructor Chun-Kai Wang chunkaiw@uw.edu Office hours: MW 12:00pm to 1:20pm @ MGH 80 or by appointment Teaching Assistant Frank Xue xyx2011@u.washington.edu Office hours: TBD (Frank will post on Canvas) Lecture Lab MW M 1:30pm to 3:20pm @ MGH 430 3:30pm to 4:20pm @ MGH 430 * Registration questions please contact informatics@uw.edu Grading Programming Assignment #1 Programming Assignment #2 Programming Assignment #3 Programming Assignment #4 Small Group Project Pop Quizzes Class Participation* Total 20% 20% 20% 20% 5% 5% 10% 100% * Class participation includes discussion forum participation (help answer questions) Discussion Forum https://canvas.uw.edu/courses/897589/discussion_topics Learn from teaching! That’s why I’m here! Also: please update profile pics on Canvas so I remember faces!! Subscribe to topics, esp ones you posted! Late Policy • • • • • Three (3) late days for each student for entire quarter Used in units of one (1) day (i.e. 2 hrs late == 1 day used) Afterwards => late work == no credit Late days may NOT be used for last assignment Disclaimer = Although work submitted within the late allowance will receive full credit, late days are intended for emergencies (illness, accidents, family emergencies, etc). • Please use these late days wisely because exceptions will not be granted. Honor Code Academic conduct is extremely important. • Work submitted must be your own work • Do not give out assignment solutions to another student • Use private GitHub repository (free for students) until we finish the course Lastly, what you’ve learned is yours to keep forever. Course Description The most memorable and rewarding courses I took during my undergraduate and graduate degrees at Stanford were courses that empowered me to do things I never thought I could. CS140 had us implement an entire operating system (synchronization, threads, user programs, virtual memory, and file systems), CS248 had us write a paint program, rasterizer and a full 3D video game, CS244a had us implement a web server, router and TCP/IP all in 10 weeks. In INFO 343, you learned client-side web programming. This course is on server-side web programming and in particular, I want to empower everyone to do something they’ve never thought they could in such a short amount of time – we’re going to build the entire search/web infrastructure. After this class… Server-side Programming Survey from previous quarter I want this class to be a class you’ll remember forever Because you learned sooooo much. In other words… This class is hard Programming = Not in groups… We will have a lot of group discussions and one group project. But not the programming assignments. Outline • • • • • • • • • • • • • • • • • • Intro to INFO 344 Local hosting via LAMP/WAMP/MAMP Why LAMP & C#/Azure? Intro to PHP Intro to Databases New vs. Experienced Programmer Intro to Web Services Information Architecture on AWS Intro to C# No final exam => more time for Information Architecture on Windows Azure Programming Assignments (4), Survey of Cloud Services hence no late day for PA4 Intro to Search Infrastructure Industry Case Study: NLMM @ MSR Industry Case Study: Server-side @ Kooapps Industry Talk* Group Project: Architecting your website/web service + Presentation Scalability Reliability Telemetry (Usage data) Security Not Covering… • • • • • • Advanced database programming Advanced security Performance Localization More Javascript Search Engine related topics Lab Outline Week #1 = Setup accounts with GitHub, AWS, Azure; WAMP, Eclipse, phpMyAdmin Week #2 = Programming Assignment #1 Q&A Week #3 = Visual Studio, ASMX, Azure basics Week #4 = AJAX, DOM Week #5 = Programming Assignment #2 Q&A Week #6 = Using Azure Tables and Queues Week #7 = Programming Assignment #3 Q&A Week #8 = JSONP Week #9 = Programming Assignment #4 Q&A Week #10 = Career talk, resume, interviewing, jobs Lab is a bit weird this quarter cuz it’s on M Student Introductions Name, year, from, favorite website History of Silicon Valley, Computing, the Internet Disclaimer: I’m not a historian Sources: Wikipedia & http://steveblank.com/secret-history/ WW2 – jam German radar defense, Cold War – spy with electronic/satellites Electronic War Computing Hardware First Generation • Mechanical/Electromechanical, Punch Cards! Analytical Engine (1837) Charles Babbage First Turing-Complete Second Generation • Vacuum tubes IBM 701 (1952) Looks really complicated… Third Generation • Transistors IBM Mainframe, minicomputers (1960’s) HUGE. Tapes, switches Fourth Generation • Personal Computers Apple II (1977) Steve Wozniak (designed circuits in high school!!) 8-bit First mass-market PC Ready to use, everything together Fifth Generation • Smartphones & tablets iPhone 2g (2007) iPad, Surface, Android Steve Jobs Even smaller, fits in your pocket Future? Smaller and more convenient Computing Software In particular – User Interface First Generation • Punch cards, vacuum tubes, switches, yuck! Not really software!!! Second Generation • Command line text, ex: DOS (1980/1981) Third Generation • Graphical User Interface (GUI), Mac, Windows (1984/1985) Zerox PARC, I’ve been there! Fourth Generation • Touch Interface (2007 iPhone, 2010 iPad) Future? http://america.aljazeera.com/articles/2013/8/28/scientists-achievefirsteverhumantohumanmindmeld.html Scientists said Tuesday they have completed the first human-tohuman mind meld, with one researcher sending a brain signal via the Internet to control the hand motion of a colleague sitting across the Seattle campus of the University of Washington -- an achievement one of the researchers jokingly referred to it as a "Vulcan mind meld." Best UI = No UI! Internet aka websites/web services First Generation • ARPANET, MILNET, NSFNET • Purpose: University Military Research TCP/IP = 1974-1978 Internet = internetworking (between ARPANET, NSFNET, etc) Email = main purpose! Also FTP, SSH, etc. Second Generation • Baby Internet, Lycos, Excite, Yahoo!, Alta Vista Directory like Yellow Pages Browsing, news, sites, sports, info Third Generation • Web 1.0, static webpages – Google, Amazon, Ebay Keyword Search Online Commerce Fourth Generation • Web 2.0, AJAX, app-like – Facebook, Twitter, Gmail Social Web Apps (ex: gmail) Fifth Generation • OS-like => Facebook platform, Dropbox, Box.net Cloud OS Even more web apps Future? Everything in the Cloud Questions?