Skip to main content
Course Language: Portuguese

Programming Fundamentals

Start Date: July 1st

About this Couse

Every year new tools and programming languages ​​appear, but the fundamental principles end up being maintained. This is important because without the fundamental foundations of programming, you will have a tremendous effort to keep up to date.

More than knowing specific techniques, you will learn to think like a programmer. Knowing how to look at problems so that they can be solved by a program. Knowing how to do it but above all knowing the why it is done that way. And above all, acquire (or increase) a taste for programming. Because when you like it, it’s much easier to learn!

But don’t think it’s a theoretical course – all modules include small exercises and at the end of the first week you’ll already be writing your first program in a modern and increasingly popular language: Kotlin.


None except a huge desire to learn! 😀
If you’ve never programmed, this is the right course because we start from scratch and move forward calmly, explaining each topic in detail so that you can progress with confidence.

If you have already done some “playing around” with programming, this course can also be useful for gaining a deeper understanding of why programs are made in one way and not another, and for having a more comprehensive view of this topic, which spans across various programming languages.


  • Part 1
    • Introduction to programming
    • Algorithms, flowcharts
    • Syntax and semantics of languages
    • Declarations and attributions
    • Arithmetic expressions
    • Data inputs and outputs
  • Part 2
    • Program structure, code blocks
    • Logical expressions
    • Selection Mechanisms: simple, alternative and multiple selection
    • Mutability and nullability
  • Part 3
    • Scope of variables
    • Functions in one line
    • Repetition Mechanisms
    • Random number generators
  • Part 4
    • Incremental and non-incremental algorithms
    • Arrays
    • Functions with blocks
    • Reading and writing files
    • Imperative programming best practices
    • Good imperative programming practices


Pedro Alves

Associate professor
Department of Computer Engineering and Information Systems – ULHT
Has been teaching various Programming subjects for several years


You must obtain a rating greater than or equal to 80%

Common questions

Why Kotlin?

Although it is not a mainstream language like Java or Python, it is a modern language with a high adoption rate – for example, 60% of the 1000 most popular Android apps are developed in Kotlin. But above all, it is an excellent language for learning to program as it has a pleasant and concise syntax but at the same time guarantees the essential robustness and security for those taking their first steps in programming.

Do I have to install any program to take the course?

The course itself does not need you to install anything, as it is fully viewable through the browser (Chrome, Safari, etc.). However, to do the practical exercises you will have to install a free tool called Intellij, which will allow you to write and run your first programs.

Since this course is developed by a university, won’t it be very theoretical?

Any experienced programmer knows that the main way to learn programming is by programming, not by reading books or watching videos! Therefore, this course includes several practical programming exercises – small programs that you will have to develop independently throughout the course and that will be automatically validated by our tools. Of course, to be able to develop these programs you will first have to learn the theory, but where knowledge is solidified is in practical exercises.


Tânia D.

If you’re like me and don’t know anything about programming, you’re on the right course! With a simple and easy-to-understand approach, you will learn from the basics to the most complex, and you can always count on Professor Pedro’s help throughout your journey.

Sónia F.

I have to confess that I had a lot of difficulty understanding certain exercises. With the course I saw things more clearly and was able to learn a lot. I really liked the clear way the teacher explained the material. I highly recommend the course for more people with difficulties, it will be an asset to our learning!

Beatriz P.

I had never done anything related to programming in my life and this course was an excellent introduction to programming. I discovered the essence of learning to program, obtaining the “super power” of programming 🙂 Thank you very much and congratulations on organizing this course!

Nuno S.

Congratulations, the course is very good, it combines syntax learning with more advanced programming concepts very well.

Ana L.

This is one of the courses that everyone should take, not only to acquire new skills, but also to gain another perspective on the digital world. It helps me look at new Management paradigms from different angles and leaves me with a special desire to learn more in the area of ​​Programming!