1995parham.github.ioparham [dot] alvani [at] gmail [dot] comNo instant messagingEmail is awesomeThis CourseWeb: the major Internet technology-in-useWhat are/were the problems?How do/did we solve them?Which protocols and languages are usedEngineer approachUnderstand existing concepts & technologiesIn classTry examples & sample projectsBy youselfThe World-Wide WebOriginal idea (Tim Berners-Lee, 1989)Public information sharing on InternetHypertextDocuments are text which can be displayed/converted to desired outputDocuments can be linked to each others: Web!WWW: A system of interlinked hypertextNow, much more complex/interesting applicationsHow Does WWW Work?Client-Server mechanismWeb servers: Process client’s requestsFile (text, image, video, ...) retrieval requestsComputation/Processing (DB lookup, transaction, ...) requestsWeb clients: Send the requestsBrowser: Interacts with client, Requests for server, Processes and displays response (rendering)Other applicationsSearch engines crawlersUse server as a processing element (distributed computing)...What Do We Want to Learn?How does Gmail work?Login (keep me signed in)Show emailsRead/Delete emailsRefresh the list of emailsInteractive menusPer user customizations (themes)...10 Engineering QuestionsQ1) How do web server and client browser talk to each other?Q2) How is a web page organized (components)?Q3) How is presentation of web page described?Q4) How does web page interact with users?Q5) How to update a portion of web page?Q6) How is transferred data between server & client encoded?Q7) How does server process client’s requests?Q8) How are complex/big web applications developed?Q9) How does Gmail offline work?Q10) How can other applications use Gmail?WWW: From Old to NowStatic Web PagesClient requests a document from serverA communication protocol: HTTPHow to display the document in browser?Document structure definition language: HTMLRepresentation of document: CSSLater, very later, some advance features: HTML5WWW: From Old to NowInteractive and Dynamic web pageNeeds to interact with user (e.g., event handling in web pages)A programming language in browser: JavaScriptDynamic data from server (e.g., search result)A programming language in server: GoInteractive & Dynamic web pageA communication mechanism between web page and server: JavaScript & JSONXWWW: From Old to NowComplex processing in server sideSo many common requirementsThreading, Concurrency, Security, etc.Needs an application development frameworkWeb Applications ArchitecturesDistributed computing over webMachine-to-Machine communicationFunction invocation over webNeeds a common protocols/API (e.g., Facebook API)Web servicesWaiting...What we are going to learn at classesIntroductionHTTPHTMLCSSJavaScriptJSONGolangWeb ApplicationsVirtualizationWhat we are going to learn at TA's classesGitHTTP ClientHTML/CSSJavaScript/ReactBackend DevelopmentDockerWhat This Course Is NotXYZ programming language course for webMany technologies for web developmentHTML, CSS, XML, etc.Many programming languages: PHP, JS, Golang, etc.You are already programmerYou know most programming conceptsYou need to learn new syntax & new featuresIn depth & in detail technology reviewThere are so many technologiesCourse AdvantagesWe study and understand technologies that are used in real life every dayWe don’t discuss about pure scientific problemsAn engineering courseThese technologies are used in industryBetter resume: HTML, JavaScript, JSON, CSS, Golang, React, ...More job opportunities (more money 🤑)(Usually) Technologies are easier that sciencesNo difficult conceptsHigh course grade if you want 🤓Course Possible DisadvantagesWe study technologiesTechnologies have limited life timeOur knowledge will expireSome programming languages & technologies may not be used 10 years laterHowever, most discussed technologies in this course (hopefully) will have very long life timeWeb development needs many technologiesWe need to learn many thingsAssumptions on your knowledge & skillsBasic networking conceptsProtocol, Port, Header, ...ProgrammingJava/CDatabaseSQLLove to programAt least, you don’t hate 🙈Course PoliciesThere is no grading by TAs (AUT University Policy)Course homepageCourse slides, Announcements, Grades, etc.GradingMidterm + Final + AssignmentsCourse Policies: Grading 😥Minimum requirementMidterm35%> 40%Final35%> 40%Homework30%- Deadlines wont be extendedCourse Policies: Grading 😊Course Policies (Cont.)If this course is an optional course for youPlease don’t take it ifYour programming skill is poorYou assume that it is passed without doing anythingYou know the answers of almost the questionsBut you are so busy to do homeworkYou need to allocate enough time for top gradesIf this course is mandatoryNote that course topics is a bit wideWeb Development: Lectures Web Development: Homework Web Development: IndustryWeb Development: Google, Facebook, ...The main goal of the courseLearn and Enjoy Web Development
Waiting...