Laboratório de Programação

Base Knowledge

Knowledge of structured and/or object-oriented programming is required.

Teaching Methodologies

The following teaching methodologies are used in this course:

1. Expository method: explanatory method where theoretical foundations and concepts are presented by the teacher and discussed with the class. Concepts and information will be presented to students through, for example, slide presentations or oral discussions. It will be used in classes to structure and outline the information.

2. Demonstrative method: based on the example given by the teacher of a technical or practical operation that one wishes to be learned. It focuses on how a given operation is carried out, highlighting the most appropriate techniques, tools and equipment. It will be used, for example, in practical and laboratory classes.

3. Interrogative method: process based on verbal interactions, under the direction of the teacher, adopting the format of questions and answers. It allows for greater dynamics in the classroom and consolidates learning. It will be used, for example, to remember elements of previous classes and in revisions of the lectured content.

4. Active methods: pedagogical techniques will be used in which the student is the center of the learning process, being an active participant and involved in his own training. The teacher assumes the role of facilitator, stimulating critical thinking, collaboration, creativity and student autonomy. They will be applied in classes to achieve a dynamic and more lasting learning environment.

Learning Results

At the end of the course unit the student will be able to:

  • describe and apply standards in code writing and documentation;
  • evaluate, compare and select the most appropriate technical solutions for a given scenario;
  • develop modular, secure and scalable applications;
  • prepare and apply processes for software verification and validation;
  • plan, prepare and implement application deployment processes.

Program

  • Planning and structuring computer applications;
  • Good practices in programming and writing technical documents;
  • Use of version control systems;
  • Creation and (re)use of own and third party code (code libraries, frameworks, APIs);
  • Software safety;
  • Software quality;
  • Deployment of computer systems.

Curricular Unit Teachers

Grading Methods

Final evaluation
  • - a practical job - 100.0%
Periodic Evaluation
  • - practical work - 100.0%

Internship(s)

NAO

Bibliography

Bass, L., & Klein, J. (2019). Deployment and operations for software engineers. Independently published.

Correia, M. P., & Sousa, P. J. (2017). Segurança no software (2nd edition). FCA.

Laboon, B. (2016).  A friendly introduction to software testing (1st edition). CreateSpace Independent Publishing Platform.

Martin, R. C. (2011). The clean coder: a code of conduct for professional programmers (1st edition). Pearson.

McConnell, S. C. (2004). Code complete (2nd edition). Microsoft Press.