Web Programming

Objectives

The main objective of the course is to allow the student to be able to develop software applications in web architecture. For this aim: (1) analyze/discuss technologies and typical problems related to the server-side of the application and (2) provide specific knowledge concerning the web architecture. Another aim of the course is to introduce some basic concepts and principles about software design.

Prerequisites

Basic knowledge about object-oriented programming, databases, operating systems, and computer networks constitutes a fundamental prerequisite of this course.

Contents

  1. Server-Side Technologies & Principles of software design:

    • PHP language, DBMS (MySQL, PHPMyAdmin, MyISAM and InnoDB engine)

    • Software design principles

    • REST architecture

    • Git & GitHUB

  2. Basic elements of the web architecture:

    • HTTP, Markup languages (XML, XHTML), URL

    • Web server (Apache, configuration, mod_rewrite, log)

    • Web services (RESTful architectures, JSON, well-formed URL)

    • Basic software design principles (cohesion, coupling, controller, ...)

  3. The View package in web applications:

    • PHP and HTTP connections,

    • Template Engines (Smarty)

    • CSS, DOM

  4. How maintaining the state in PHP:

    • cookie, session

Teaching methods

Lectures; Active learning discussion sessions about software projects; Projects; Small groups or teamwork.

Assessment

A project consisting of a complete and realistic web application must be realized. The project must be realized by a team of students. The students are expected to use in the project all the skills and knowledge acquired in the course. A report on the project is expected: it must be presented and discussed by the team and it represents the main source for the evaluation of the results obtained. In particular, the final score is determined on the basis of the different parts of the exam: 75% project, 25% oral examination.

Textbooks & other material

  • Learning PHP 7, by Antonio Lopez, PackPublishing, March 2016

  • Learning PHP. A Gentle Introduction to the Web's Most Popular Language, by David Sklar, O'Reilly Media, April 2016

  • PHP & Smarty manuals

  • MySQL manual

  • HTML & CSS tutorials

  • Git tutorials

  • Bootstrap tutorials

Additional information

Additional material about the course can be found on the university course platform: https://moodle.univaq.it/