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
Server-Side Technologies & Principles of software design:
PHP language, DBMS (MySQL, PHPMyAdmin, MyISAM and InnoDB engine)
Software design principles
REST architecture
Git & GitHUB
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, ...)
The View package in web applications:
PHP and HTTP connections,
Template Engines (Smarty)
CSS, DOM
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/