teaching

A brief list of courses I have taught since 2010/2011, mostly at IPT (BSc and MSc in Informatics Engineering as well as the BSc in Electrical and Computer Engineering.

2020 (1x)

Cloud Computing and Virtualization (MSc)
Coordinator, theoretical classes + practical labs
Topics: Virtualization, cloud computing, DevOps, load balancing, high availability, service discovery, containers and orchestration.

2016-2020 (4x)

Software Engineering (MSc)
Coordinator, theoretical classes + practical labs
Topics: Agile development exploring concepts such as git, vagrant, package managers, automated testing, CI/CD, REST APIs, background workers, websockets, performance, caching, elasticsearch and others.

2016-2020 (5x)

Programming Techniques (BSc)
Coordinator, theoretical classes + practical labs
Topics: C programming, including structs, pointers, dynamic memory allocation, files, linear data structures (stacks, queues, linked lists) and trees (BST and AVL).

2011-2020 (2x)

Network Design (BSc)
Colaborator, practical labs
Topics: Indoor and outdoor wireless networks planning. Network configuration (e.g., fat tree and leaf spine topologies with LAG, MLAG, OSPF, VRRP; Fabric Connect from Extreme Networks).

2019 (1x)

Data Structures and Algorithms (BSc)
Colaborator, practical labs
Topics: Introduction to complexity, sorting algorithms, linear and hierarchical data structures using Java.

2010-2019 (6x)

Computer & Networks Management and Security (BSc)
Colaborator, practical labs
Topics: Basic Linux configuration, services such as DNS, DHCP, or the typical LAMP stack. Also security concepts such as cryptography, firewalls, network auditing (nmap, nessus) and monitoring (nagios, MRTG).

2012 (1x)

Object Oriented Programming (BSc)
Colaborator, practical labs
Topics: OOP paradigm using Java, addressing classes and objects, inheritance, polymorphism, interfaces and abstract classes, exceptions, events and concurrency.

2011 (1x)

Operating Systems (MSc)
Coordinator, theoretical classes
Topics: Operating system concepts, from processes and threads, CPU scheduling, memory management, inter-process communication, among others.

2010 (1x)

Multimedia (BSc)
Colaborator, intensive practical module
Topics: Lighter version of the syllabus lectured in the BSc in Informatics Engineering from the University of Coimbra. I lectured Flash and ActionScript.