Teaching Assistant – Introduction to Programming

Undergraduate course, NOVA School of Science and Technology | NOVA FCT, Department of Informatics, 2022

1st Semester of 2022/2023

Overview

I taught practical classes to undergraduate students in the BSc in Computer Science and Engineering. Responsibilities included 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) 2022/2023

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 the basic techniques for developing simple programs. By the end of the course, successful students will understand the key elements of a modern object-oriented programming language and will be able to develop a small application using a programming environment.


Learning Objectives

Know:

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

Know-how:

  • Read, explain, and mentally 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 in Portuguese, using the methodology defined in the course.
  • Develop well-organized programs following standard conventions.
  • Correctly use programming tools and interpret their results (e.g., error messages).
  • Complete a small group programming project.

Soft Skills:

  • Develop work habits and respect deadlines.
  • Cultivate rigor and adherence to work plans and methods.
  • Improve teamwork skills.

Syllabus

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

Bibliography

  • David J. Eck, Introduction to Programming Using Java, 8th edition, Online book, 2021. Link
  • Cay S. Horstmann, Java Concepts: Early Objects, 8th edition, Wiley, 2019.
  • Walter Savitch, Java: An Introduction to Problem Solving and Programming, 8th edition, Pearson, 2018.
  • Java 8 API Specification: Link

Prerequisites

None.


Student Workload

ActivityHours/creditWeeksTotal Hours
Practical/Lab sessions21224.0
Theoretical/Practical classes41648.0
Evaluation--6.0
Independent study--106.0
Projects and assignments--68.0
Total--252
ECTS--9.0