Teaching Assistant – Introduction to Programming

Undergraduate course, NOVA School of Science and Technology | NOVA FCT, Informatics Departament, 2025

1st Semester of 2025/2026

Overview

I taught practical classes to undergraduate students in the BSc in Computer Science and Engineering during 1st Semester of 2025/2026. Responsibilities include conducting labs for approximately 60 students, supervising tests, evaluating projects, providing feedback, and holding weekly office hours.


Course:

Introdução à Programação (Introduction to Programming) 2025/2026

Additional Information

Description:
This course introduces newly enrolled students to computer programming. It covers fundamental concepts of procedural programming in an imperative style, using objects and classes as a structuring mechanism. Students learn basic techniques for developing simple programs. By the end of the course, successful students will understand the key components of a modern object-oriented programming language and will be able to develop a small application using a programming environment.


Learning Objectives

Know:

  • Understand programming constructs included in the Java language fragment covered.
  • Know the components and basic tools of a software development environment (editor, compiler, etc.) and their functions.

Know-how:

  • Read and explain/simulate the functionality of code snippets in the Java fragment.
  • Design and correctly implement simple algorithms.
  • Build a small application in Java from an informal but rigorous specification.
  • Develop well-organized programs adhering to conventions.
  • Correctly use programming tools and interpret their results (error messages, etc.).
  • Complete a small group programming project.

Soft Skills:

  • Develop work habits and meet deadlines.
  • Cultivate rigor and adherence to work plans and methods.
  • Enhance teamwork skills.

Syllabus

  1. Computers and programs
  2. Basic data types
  3. State manipulation
  4. Decision-making mechanisms
  5. Interaction (I/O)
  6. Loops and introduction to recursion
  7. Arrays and related algorithms
  8. Sorting and searching
  9. Classes and objects
  10. Structure of an application
  11. Iterators
  12. File handling
  13. Matrices
  14. Applications with multiple classes
  15. Software development methodologies

Bibliography

  • Cay Horstmann, Core Java, Volume I: Fundamentals, 13th Edition, 2024.
  • David J. Eck, Introduction to Programming Using Java, 9th edition, Online book, 2022. Link
  • Walter Savitch, Java: An Introduction to Problem Solving and Programming, 8th edition, Pearson, 2018.
  • Java 21 API Specification: Link

Prerequisites

None.


Student Workload

ActivityHours/creditWeeksTotal Hours
Practical/Lab sessions41249.0
Theoretical classes21428.0
Evaluation--6.0
Independent study--106.0
Projects and assignments--68.0
Total--257
ECTS--9