Curricular Unit:Code:
Programming Laboratory832LAPR
Year:Level:Course:Credits:
3UndergraduateComputer Systems Engineering5 ects
Learning Period:Language of Instruction:Total Hours:
Winter SemesterPortuguese/English65
Learning Outcomes of the Curricular Unit:
This curricular unit aims to extend the knowledge of programming using a different programming language from those previously taught. New tools will also be used to support the development of the project during this curricular unit. We intend to study the Web programming using an MVC Framework. This application will be implemented using a full-stack approach. By successfully completing this curricular unit, students should be able to:
-Design and plan a Web application.
-Elaborate a Mockup of a Web application.
-Understand and describe the principles of full-stack, server-side and client-side programming.
-Know the MVC architecture organization.
-Able to develop a Web application and/or Rest API.
-Able to work and develop views that will then be interpreted by the template engines.
-Able to develop responsive Web pages using existing responsive CSS/JS frameworks.
Syllabus:
0. Presentation
0.1. Background and Goals
0.2. Methodology and Evaluation System
0.3. Syllabus and Bibliography
1. Introduction HTML / CSS
1.1. Markup language
1.2. Responsive Framework
2. Introduction to PHP Language
2.1. Data Types
2.2. Operators
2.3. Control Structures
2.4. Repetition Structures
2.5. Functions
3. PHP Programming Syntax
3.1. Exception Handling
3.2. File Usage (include, require)
3.3. Object Oriented Programming (OO) Fundamentals
3.3.1. Classes / Instances
3.3.2. Constructors / Destructors
3.3.3. Encapsulation
3.3.4. Inheritance
3.3.5. Interfaces
3.3.6. Abstract classes and methods
4. Web Applications
4.1. HTML forms
4.2. Requests
4.3. Sessions
4.4. Interaction with a database - PDO
5. MVC Web Development Framework
5.1 Routes
5.2 Controllers
5.3 Views
5.4 ORM
Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives:
The syllabus covers the goals, being organized in units that allow studying the main areas that characterize web development. Initially, an introduction is made to allow the elaboration of static pages. Then we will cover the concepts of the new web programming language that will be presented, and parallelism is made with the previous languages already taught during the course (i.e., C and Java). Finally, this unit is presented web development considering an MVC Framework, and its particularities/concepts. Learning objectives are achieved by applying these concepts in a laboratory session with practical exercises.
Teaching Methodologies (Including Evaluation):
The knowledge transmission will be achieved by explaining practical exercises during the practical classes. In these classes’ students are faced with real problems that they have to solve. The final grade will be calculated according to the following formula:
Final grade = 50% Test(s) + 40% Project + 10% Continuous Evaluation
Earlier grades must be positive (> = 9.5) to be considered for the final grade. If any of the components is not positive, the course will not be completed (cf. UFP rules).
Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes:
The methodology applied in this course as well as its assessment system is perfectly aligned with the goals to be achieved by the students at the end of the school term. The concepts are presented, discussed, applied and evaluated in the context of the classes. This provides students with a solid basis of knowledge to understand/solve future new challenges. On the other hand, so that the study is not restricted to conceptual models, in practical classes real case studies are presented and solutions are implemented using appropriate tools. This combination provides students with training that enables them to know the scientific foundations essential to a good understanding of the subject as well as their ability to adapt to constant technological change. The evaluation process consists of the test(s) and practical work(s) allowing to maintain a balance between the effort dedicated to both components. The goal is to train professionals who are knowledgeable in techniques, tools, and the state of the art. In this course, the concepts related to the web development area are presented and evaluated through the test(s) and applied into a project.
Reading:
- Elisabeth Robson, Eric Freeman (2005), “Head First HTML with CSS & XHTML”, O'Reilly Media;
- Eric Freeman, Elisabeth Robson (2011), “Head First HTML5 Programming”, O'Reilly Media;
- Michael Morrison (2007), “Head First JavaScript”, O'Reilly Media;
- Rebecca M. Riordan (2008), “Head First Ajax”, O'Reilly Media;
- Ryan Benedetti, Ronan Cranley (2011), “Head First jQuery”, O'Reilly Media;
- Robin Nixon, (2014) "Learning PHP, MySQL & JavaScript"
- Lynn Beighley, Michael Morrison (2008), “Head First PHP & MySQL”, O'Reilly Media;
- Luís Abreu, “HTML5 - 2a Edição Atualizada e Aumentada”, FCA;
- Pedro Remoaldo, “CSS3”, FCA;
- Luís Abreu, João Paulo Carreiro, “JavaScript”, FCA;
- Carlos Serrão, Joaquim Marques, “Programação com PHP 5.3”, FCA.