-
Presentation
Presentation
This is a fundamental discipline in the training of any IT professional as it introduces the basic concepts of programming, on which many subsequent disciplines will be based, such as Programming Languages I and II, Algorithms and Data Structures, Web Programming, Mobile Computing, etc. More than just learning a programming language, the student learns how to think like a programmer, analyizing problems and designing algorithms that solve those problems, using flowcharts and Kotlin programs. Kotlin is a promising language that combines the best characteristics of popular modern languages such as Java and Python. Since it is the first contact of many students with the topic of Programming, it assumes special importance in the acquisition of essential knowledge but also in the students' motivation. More than learning to program, students learn to enjoy programming.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 6
-
Year | Nature | Language
Year | Nature | Language
1 | Mandatory | Português
-
Code
Code
ULHT2531-7337
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
Introduction to programming Algorithms, flowcharts, pseudo-code Syntax and semantics of languages Syntax elements, program structure Declarations and attributions Primitive types Arithmetic expressions, logical expressions Data inputs and outputs Selection Repetition Functions Uni-dimensional and bi-dimensional arrays Error handling Reading and writing files Good imperative programming practices
-
Objectives
Objectives
This curricular unit aims to provide the basic programming concepts to future software engineers, allowing them to start (in a disciplined form) the programming activity. The student develops competences for algorithmic reasoning using flowcharts. The student should be able to translate those flowcharts into an imperative programming language. In practice, the student should know the basic syntax of the Kotlin language and create simple Java applications that run from the command line. Finally, the student should be able to analyze and evaluate applications developed by someone else (colleagues, teachers, etc.)
-
Teaching methodologies and assessment
Teaching methodologies and assessment
Theoretical classes are partially taught in the "flipped learning" model: videos are provided before the theoretical class that students must watch; the theoretical class is mostly occupied with exercises on that subject and their respective correction, interspersed with some additional material. Some homework assignments are assessed in the "peer assessment" model: students anonymously evaluate each other's assignments. The validation of the code produced in practical assignments and the project is done through an automatic code validation tool, which allows students great autonomy. Some programming exercises are mandatory with the support of an LLM (ChatGPT, Bard, etc.). These exercises will have adapted instructions to prevent simple copy/paste to the LLM - they will be presented visually, either through diagrams or videos demonstrating the desired outcome. The goal is for students to practice constructing effective prompts.
-
References
References
Singh, B. (2015) Algorithm, Pseudocode and Flowchart: Learn Algorithm in Simple Steps. Subramanian, V. (2019) Programming Kotlin. The Pragmatic Programmers.
-
Office Hours
Office Hours
-
Mobility
Mobility
No