DATABASES AND WEB PROGRAMMING M - ZModule WEB PROGRAMMING
Academic Year 2023/2024 - Teacher: CONCETTO SPAMPINATOExpected Learning Outcomes
The module deals with the methodological tools for the design of modern web-based information systems. In particular the module covers concepts for designing and developing the back-end (server-side programming) and front-end (client-side programming) of a web application. Particular emphasis will be given to the development of "responsive" front-ends The module covers also design and implementation techniques based on the Model-View-Controller (MVC) architectural pattern.
The module will finally presents elements on programming techniques for the implementation of interactive GUIs (e.g., React).
The learning objectives of the course, expressed according to the Dublin descriptors, are:
Knowledge and understanding
- Understanding the main design concepts of web information systems
- Understanding concepts and tools for the development of efficient back-end components and function front-end interfaces, that satisfy project requirements
- Understanding concepts and tools that support separation of responsibilities, roles and code reuse in the development of a web application
Applying knowledge and understanding
- Designing and implementing a multi-platform and multi-device web application, on both the client side and the server side
- Implementing web applications that handle data interaction (DBMS) and the integration with other web systems (REST API)
- Designing and implementing the user experience of a web application
Making judgements
- Analyzing functional and non-functional requirements
- Understanding the implications of design choices related to alternative software stacks, both server-side and client-side
- Understanding the implications of design choices related to change management and maintenance of alternative software stacks
- Understanding the performance issues associated to alternative software stacks
Communication skills
- Preparing web application specification documents, addressing the specificity of web applications
- Explaining the motivations behind specific design choices
Learning skills
- Learning how to use the tecnologies for the development of complex web applications
- Learning how to compare alternative projects schemese from different perspectives
- Learning to recognize design principles shared by apparently different architectural styles, data transmission mechanisms and development toolkits
Course Structure
Lectures, hands-on exercises, laboratory and seminars.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
Detailed Course Content
Foundations of web programming and server-side development
- HTML, CSS and Document Object Model (DOM)
- PHP language
- HTML and PHP: forms, sessions, cookies
- DBMS interaction with PHP
Web information Systems design and client-side application development
- JavaScript: forms, functions, object model (window, document, form objects), events
- Page manipulation: CSS selectors, positition selectors and operations with objects (DOM manipulation)
- AJAX: asynchronous requests, text/HTML/JSON responses
- The MVC (Model-View-Controller) pattern: examples of software design within an MVC-based framework
Advanced Web Programming Techniques
- Design and implementazione of interactive GUI (e.g., React)
Textbook Information
Instructor notes and reference documentation from Mozilla Developer Network and PHP.net.
Course Planning
Subjects | Text References | |
---|---|---|
1 | HTML | Teaching materials and reading paper list provided by the instructor |
2 | CSS | Teaching materials and reading paper list provided by the instructor |
3 | Flexbox | Teaching materials and reading paper list provided by the instructor |
4 | Web mobile | Teaching materials and reading paper list provided by the instructor |
5 | Javascript | Teaching materials and reading paper list provided by the instructor |
6 | Events | Teaching materials and reading paper list provided by the instructor |
7 | Fetch API | Teaching materials and reading paper list provided by the instructor |
8 | REST API | Teaching materials and reading paper list provided by the instructor |
9 | Server-side programming (PHP) | Teaching materials and reading paper list provided by the instructor |
10 | MVC architecture | Teaching materials and reading paper list provided by the instructor |
11 | Laravel | Teaching materials and reading paper list provided by the instructor |