Introduction to Programming



  • The meaning of the programming constructs included in the Java language fragment covered in the course.
  • How to build a small application, using the covered Java language fragment, and using the methodology defined in this course.
  • Know the components and basic tools of a software development environment (editor, compiler, etc) and their role.


  • Develop well-organized, small-sized, programs, following a given set of standards.
  • Project and write correctly simple algorithms
  • Read and explain / mentally simulate the functionality of code fragments written in the Java programming language
  • Correctly use, to the expected level, programming tools, as well as interpret their results (error messages, etc).
  • Develop as a team, a software development mini-project, using the skills acquired in this course.


  • Develop disciplined work and deadline meeting skills.
  • Develop a concern with rigour and the systematic execution of work plans, following previously defined methods
  • Develop team work skills.

General characterization





Responsible teacher

António Maria Lobo César Alarcão Ravara, Maria Armanda Simenta Rodrigues Grueau


Weekly - 6

Total - 19

Teaching language





David J. Eck, Programming Using Java, Online book,, 2014.

Cay Horstmann, Java Concepts, 7th edition, Wiley, 2014.

Walter Savitch, Java: An Introduction to Computer Science and Programming, 7th edition, Prentice-Hall, 2014.

Java 8 (API):

Teaching method

Teaching consists in lectures and exercice classes (in a laboratory). Lectures present the concepts, motivated by running examples used to illustrate and to let the students to apply the constructions.

In the labs, students solve consolidation exercices to practice with the concepts learned and used in the lectures.

In a mini-project the students develop a simple application, using most of the concepts learned in the classes. The project is developed also in class, allowing the teaching staff to address the student difficulties, as well as to provide support to better code organisation and quality.

Evaluation method

The evaluation  is divided into: theoretical-practical and laboratorial.

 The theoretical-practical component is composed by two tests (T1 and T2) or an exam (E) and the laboratorial component by one pratical assignment developed in two parts (P1 and P2).

Components P1, P2, T1 and T2 are rounded to one decimal place; E and NF are rounded to units.

 All assessment elements will be graded between 0 and 20. Practical assignments will be delivered on the Mooshak platform, P1 will be developed individually and P2 will be carried out in groups of 2 students.

 In most hands-on classes, the student must solve exercises and submit the programs that implement the solution on the Mooshak platform. These programs count towards 1 final grade value (component A), assigned to those who successfully submit at least 75%, truncated to units (eg 7 x 0.75 = 5.25; those who deliver 5 certain exercises get1 value).

 Every few weeks,students will address a challenge, also to be submitted on the Mooshak platform, which will complement the note of the practical work. These programs count towards 1 final grade value (component D), assigned to those who successfully submit at least 65% of these challenges, truncated to units (eg 5 x 0.65 = 3.25; those who deliver 3 right exercises have 1 value).

 To obtain attendance note in the course unit, the weighted average of the practical work (P1 and P2) must be equal to or greater than 9.5 out of 20

 ie P = (0.1 * P1 + 0.25 * P2) /0.35 and rounded to units should be greater than or equal to 9.5 out of 20.

 The grade of the theoretical-practical component (T) will be calculated as follows:

- in continuous assessment: T = (0.2 * T1 + 0.35 * T2) /0.55 rounded to the unit,

- in Appeal: T = E.

 For approval in the course:

1.The student must have obtained attendance note in the current year or previous edition of the course;

2.The grade obtained in the theoretical-practical component T must be greater than or equal to 10;

Final grade:

NF = T * 0.55 + P * 0.35 + A + D calculated by rounding to units must be greater than or equal to 10 and less than or equal to 20

In case of non approval, the final grade will be T.

 In grade improvements, NF = E (version as of september 2019, updated to be in accordance with the Evaluation Regulations of FCT-NOVA, see below)


(Updated in January 2020, to be in accordance with FCT-NOVA Evaluation Regulations)

 In grade improvements, NF=E*0.55+P*0.35+A+D

Subject matter

1. Computers and programs 2. Objects and operations 3. Classes and basic data types 4. State manipulation 5. Decision constructs 6. Structure of an application 7. User interaction (I/O) 8. Iteration constructs 9. File manipulation 10. Applications with several classes 11. Vectors and related algorithms 12. Sorting and searching 13. Basic software development principles


Programs where the course is taught: