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
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
- Computers and programs
- Basic data types
- State manipulation
- Decision-making mechanisms
- Interaction (I/O)
- Loops and introduction to recursion
- Arrays and related algorithms
- Sorting and searching
- Classes and objects
- Structure of an application
- Iterators
- File handling
- Matrices
- Applications with multiple classes
- 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
| Activity | Hours/credit | Weeks | Total Hours |
|---|---|---|---|
| Practical/Lab sessions | 4 | 12 | 49.0 |
| Theoretical classes | 2 | 14 | 28.0 |
| Evaluation | - | - | 6.0 |
| Independent study | - | - | 106.0 |
| Projects and assignments | - | - | 68.0 |
| Total | - | - | 257 |
| ECTS | - | - | 9 |
