filmeu

Class Programming Fundamentals

  • 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.

  • Code

    Code

    ULHT6634-7337
  • 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.

     

SINGLE REGISTRATION
Cookie Policy
This site uses cookies to offer you a better browsing experience.
Accept
Lisboa 2020 Portugal 2020 Small Logo EU small Logo PRR republica 150x50 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios