ΕΠΛ133: Αντικειμενοστρεφής Προγραμματισμός

Πρόγραμμα Μαθημάτων

Πρόγραμμα Εργαστηρίων »

Week 1:
Lab 1 Designing classes. Notes Learning outcome: Refresh knowledge on Internet architecture, protocols and evolution. Gain an understanding of the principles behind Internet's successful design and evolution. Gain a good working knowledge of the basic building blocks of and the main keywords related to the Internet infrastructure. Internet as a federation of Autonomous Systems. Understand the concept of Net Neutrality.
Readings and Videos:
Lab 2 Designing classes.
Learning outcome:
  • Get acquainted with the Definition, History, Evolution, Impact and Key Ideas behind the World-Wide Web.
  • Learn the main elements of the Web.
  • Overview the concept of Web Science and Understand the unique challenges of developing applications for the Web.
  • Introduction to Modeling of the Web graph; understand the challenges of Web scale analysis.
Readings:
  • Chapter 1. "Web Programming", Step, Miller & Kirst.
  • "As we may think," by Vannevar Bush, The Antlantic (July 1945).
  • "Web Science: An Interdisciplinary Approach to Understanding the Web." James Hendler, Nigel Shadbolt, Wendy Hall, Tim Berners-Lee, and Daniel Weitzner. Communications of the ACM. Vol. 51, No. 7, July 2008. pp. 60-69.
  • "First thought, best thought.” J. Lanier talks about Ted Nelson at Chapman University, 2014.
  • Internet Trends Report 2016 by Mary Meeker of Kleiner, Perkins, Caufield, Byers (Slides, ).
Week 2:
Lab 3 Style and Comments. Javadoc.
Learning outcome:
  • Introduce the principles of the Client-Server computing model.
  • Overview of the Web system architecture.
  • Web servers, web clients, three-tier Web-site architecture.
Readings:
Lab 4 Designing classes.
Learning outcome:
  • Understand the architecture and key components of Web service infrastructures.
  • Learn the concepts of Load Balancing, Availability, Replication, Partitioning, Failover.
  • Overview of availability metrics.
Readings:
Week 3:
Lab 5 Designing classes.
Learning outcome:
  • Introduction to the concept of Naming Services.
  • Overview of the Domain Name System (DNS) and its operation.
  • Understand the principles of naming for the Web,the function of Naming Services and the Domain Name Service.
Readings:
Lab 6 Designing classes.
Learning outcome:
  • History and Overview of the HTTP Protocol.
  • Gain basic familiarity of the HTTP Protocol, its functionality and syntax.
  • Basic Caching support in HTTP.
Readings:
  • The HTTP Protocol.
  • "HTTP: The Definitive Guide" by D. Gourney, B. Totty et al., O'Reilly, 2002.
Week 4:
Lab 7 Arrays and Strings.
Learning outcome:
  • Review the basic principles of Hypertext and its History.
  • Understand the key principles of hypertext (nodes, hyperlinks, navigation) and the properties that hypertext systems need to abide to.
Readings: Chapters 1-5. Multimedia and Hypertext: The Internet and Beyond. J. Nielsen, AP Professional, 1995.
Lab 8 Arrays and Strings. Learning outcome:
  • Overview of Usability. Usability of hypertext systems.
  • Understand the notion of information overloading, network disorientation. Definition of information retrieval and information filtering. Navigation support mechanisms: backtracking, bookmarking, history mechanisms, milestones.
Readings: Chapters 8-10. Multimedia and Hypertext: The Internet and Beyond. J. Nielsen, AP Professional, 1995.
Week 5:
Lab 9 UML diagrams.
Learning outcome:
  • Understand the notion of virtual Linux servers and obtain hands-on familiarization with Virtualization concepts (physical vs virtual host, image vs instance).
  • Brief overview of the Virtualization / Cloud Provider landscape (IaaS vs PaaS vs SaaS)
  • Introduction and focus on Amazon Web Services (AWS)
  • Launch your own virtual server instance on Amazon and learn about Amazon Machine Images (AMI's) and the Image Marketplace.
  • Identify and select an existing AMI based on prefereneces such as Linux distribution, installed software packages and libraries and learn how to configure the AMI resources (CPU, memory, storage, network) and deployment region.
  • Learn what is public/private key authentication. Create and upload an SSH key to your instance.
  • Launch and monitor your instance status, save your launched instance preferences, access your instance through an SSH client, and terminate your Instance.
Lab 10 Inheritance.
Learning outcome:
  • Learn the basics of Git and GitHub.
  • Learn how to setup and use your Github account and GitHub Education Resources.
  • Learn how to create a Git repository on GitHub and attach it to EPL425 repository.
  • Familiarize with the Git Dashboard and creating / adding teams.
  • Install SourceTree Git client on your development environment.
  • Configure your development workspace, add your personal webpage HTML source to it.
  • Make the first commit to your Git repository. Make additional changes, commit them and understand the revision tree.
Videos, Readings and References:
Week 6:
Lab 11 Inheritance.
Learning outcomes:
  • Learn how to Install and launch a LAMP stack on your virtual web server
    • Install and Launch a LAMP stack on your virtual web server.
    • Launch a new AWS instance from your saved preferences and connect via the SSH client.
    • Familiarize with the system package manager, update and install necessary sofware dependencies.
    • Install the Apache web server, the MySQL database server, and the latest PHP software packages.
    • Set web directory ownership and permissions, secure MySQL installation, and test your LAMP stack installation.
  • Deploy your first Web page on your AWS instance
    • Create a simple, HTML personal web page using a text editor like Sublime. Upload it on GitHub.
    • Upload your web page using an SCP client to your AWS instance.
    • Verify HTML source file permissions in Apache document root folder.
    • Publish and access your web page from the browser.
    • Upload and publish your first web page on your vitual server.
Readings and References: LAMP software bundle (Wikipedia).
Lab 12 Interfaces and Inheritance. Learning outcome: Get introduced to the Design Thinking methodology.
Readings, Videos and References:
Week 7:
Lab 13 Inheritance and Abstract classes.
Learning outcome: History of HTML. Get familiar with Principles of tagging languages, SGML, Document Type Definitions (DTD). Introduction to HTML: History, Syntax. Understand and familiarize with the Structure of HTML Documents. Become familiar with page structure, block and inline elements, header and metadata information.
Readings:
Lab 14 Abstract classes and Polymorphism. Learning outcome: Familiarize with HTML Lists, Tables, Quotations, Pre-formattedtext, advanced elements, audio and video.
Readings:
  • Chapter 2. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
  • Chapter 12, 13. Interact with Web Standards. A Holistic Approach to Web Design. E. Anderson , V. DeVolt et al., New Riders 2010.
Week 8:
Lab 15 Polymorphism.
Learning outcome: Introduction to CSS concept, syntax and properties.
Readings:
  • Chapter 3. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
  • http://www.w3.org/wiki/CSS_basics
  • Chapter 11. Interact with Web Standards. A Holistic Approach to Web Design. E. Anderson , V. DeVolt et al., New Riders 2010.
Lab 16 Polymorphism. Learning outcome: Learning advanced CSS syntax. Linking CSS files with HTML. CSS Shorthand. The Box Model and white space. CSS Measurement Units. Cascading Rules and Conflict Resolution. Explore how to craft an HTML page, selecting fonts, colors and targeting elements with IDs and Classes. Readings:
  • Chapter 3. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
  • Chapter 11. Interact with Web Standards. A Holistic Approach to Web Design. E. Anderson , V. DeVolt et al., New Riders 2010.
  • CSS Tutorial from w3schools.
  • CSS Tutorial from W3C.
Week 9:
Lab 17 Exceptions.
Learning outcome: Learn how to combine HTML with CSS to style page sections. Become familiar with the principles of HTML layout using CSS. Using the Box Model. Learn how to float and position HTML elements using CSS. Introduction to other CSS tricks. Explore styling pages, sections, floating elements, positioning and sizing in practice.
Readings:
  • Chapter 4. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
  • Chapter 11, 14, 20, 21. Interact with Web Standards. A Holistic Approach to Web Design. E. Anderson , V. DeVolt et al., New Riders 2010.
  • CSS Tutorial from w3schools.
  • CSS Tutorial from W3C.
Lab 18 Generics.
Learning outcomes: Become familiar with developing with Bootstrap, using the Sublime editor. Learn how to resolve questions and explore Bootstrap capabilities using credible online resources, such as stackoverflow.
Readings and References:
Week 10:
Lab 19 Writing and Organising Web Content Learning outcome: Understanding the online user experience. Principles of Web writing. Introduction to the principles of Search Engine Optimisation.
Readings:
  • Chapter 5, 6. Interact with Web Standards: A Holistic Approach to Web Design Erin Anderson et al, New Riders 2010.
  • SEO Starter Guide from Google.
  • Chapter 7. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
Lab 20 Web writing Tools and Information Architecture Learning outcome: Learn the main tools for Web content design and management. Introduction to Information Architecture. Readings: Chapters 7, 8, 9 Interact with Web Standards: A Holistic Approach to Web Design Erin Anderson et al, New Riders 2010.
Quiz 1: 26/10/2016 The purpose of the quiz is to examine your level of mastering the learning outcomes of Weeks 1-7.
Week 11:
Lab 21 Streams.
Learning outcome: Introduction to PhP. Understand the lifecycle of a Web request. Gain familiarity with PhP structure and syntax. Gain a working knowledge of the PhP scripting language. Learn how to combine PhP with HTML, using embedded PhP.
Readings:
  • Chapter 5. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
  • PhP tutorials.
Lab 22 Linked data structures. Learning outcome: Learn advanced PhP syntax: functions, I/O, classes and objects. Readings: Chapter 5. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
Week 12:
Lab 23 Linked data structures. Learning outcome: Learn the basic concepts of Javascript programming and syntax. Introduction to the Document Object Model (DOM). Readings: Chapter 8 Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
Lab 24 Collections. Learning outcome: Gain further exposure to advanced Javascript syntax and program logic (functions and objects). Learn how to process DOM Objects and how to traverse programmatically the DOM tree with Javascript.
Readings:
  • Chapter 8. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
  • Chapter 9. Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
Week 13:
Lab 25 Functionnal Programming. Learning outcome: Introduction to event-driven programming, event-hadling and AJAX. Readings: Chapters 10, 12 Web Programming Step by Step (Second edition) M. Stepp, J. Miller and V. Kirst, Lulu 2012.
Quiz 2: 29/11/2016 The purpose of the quiz is to examine your level of mastering the learning outcomes of Weeks 8-10.
Lab 26 Project presentations