• Kernighan, B W. & Ritchie, D. (1988). The C Programming Language. (2nd ed.). Prentice Hall. Horowitz, E., Sahni, S. & Anderson-Freed, S. (2007). Fundamentals of Data Structures in C. (2nd ed.). Silicon Press.
  • IT Engineering
  • 587
  • 10065
  • Imperative Programming
  • ISMAT587-10065
  • 1
  • 6
  • 0
  • 12
  • Não
  • Português
  • Expository, demonstrative methods and active problem-solving methodologies (PBL) are used.
  • Mandatory
  • LG1-Master the fundamental concepts of computer programming based on imperative paradigm LG2-Develop and structure simple algorithms. Implement important data structures LG3-Obtain bases that allow a smooth entry into the UC of Algorithms and Data Structures
  • Description of contents S1 - Imperative vs. Paradigm other paradigms Language reviews C. Structured program development. S2 - Introduction to sorting algorithms              Selection, Insertion and Bubble Modularization              Interface; Implementation; Client Contract design concepts              Pre and Post Conditions              Assertions S3 - Abstract Data Structures (ADTs) Implementation of multi-instance ADTs ADTs (cont ...)              Polynomial              Matrix              Sparse Matrix              String              Stack              Queue              List                   Simple                   Circular                   Double
  • Descrição dos instrumentos de avaliação (individuais e de grupo) ¿ testes, trabalhos práticos, relatórios, projetos... respetivas datas de entrega/apresentação... e ponderação na nota final.

    Exemplo:

    Descrição

    Data limite

    Ponderação

    Teste Escrito

    15/05/2026

    40%

    Teste Escrito

    26/06/2026

    40%

    Desafios de programação

    Contínuo

    20%

     

     

  • Semestral
  • What is intended is the teaching of an imperative programming language that makes students aware so that they can reason and solve problems regardless of the programming language they intend to use. The tools used provide the student with an understanding of how to get started in any programming language. Its usefulness for the course is related to the fact that any problem faced by a computer engineer (be it his specialization in hardware or software) has, directly or indirectly, the logic of the programming involved.