Programação de Computadores

Base Knowledge

Basic knowledge of a programming language.

Teaching Methodologies

In theoretical classes, the predominant teaching methodology is the expository method, complemented by the analysis of illustrative examples. Laboratory classes allow the consolidation of theoretical knowledge acquired throughout the semester through guided resolution of proposed problems. There will also be a project component that will be developed at the end of the semester.
Laboratory classes are held at the Computer Support Labs where students have personal computers at their disposal.

 

Learning Results

The main objective of this course is to provide students with the essential techniques/tools to solve, write, debug and test small and medium-sized applications using the C Programming Language. 

  • Apply the concepts and techniques necessary for the design of algorithms that allow solving the proposed problems;
  • Develop programs in C language in a structured way from a real problem;
  • Perform debug and test a program, interpret and analyze the obtained results.
  • Understand the main characteristics of object-oriented languages
  • Actively contribute to group work
  • Conduct presentation in a professional manner
  • Document techical reports 
  • Avoid plagiarism, by referencing websites and authors ethically

Program

 1. Arrays

 – Review of fundamental concepts of Arrays and pointers

 – Arrays and strings as function arguments

 – Arrays of Pointers 

 – Multidimensional arrays

 – Multidimensional arrays as function arguments

2. Dynamic Storage Allocation

 – Memory allocation

 – Main functions of dynamic memory allocation

 – Deallocating Storage

3. Ordering and Searching Algorithms

 – Searching and Sorting Algorithms

 – Selection Sort

 – Bubble Sort

 – Insertion Ordering

 – Linear Search

 – Sentinel Linear Search

 – Binary Search

4. Structures

 – Definition

 – Declaration and initialization of structures

 – Structure processing rules

 – Nested Structures

 – Definition of new types

 – Arrays of structures

 – Functions and structures

 – Union

 – Bit Fields

5. Files

 – Text files versus binary files

 – Streams

 – Basic file operations

 – Standard files

 – Text mode access

 – Binary mode access

 – Direct access and sequential access

 – Insert, change, and delete Elements from a file

6. Dynamic Data Structures

 – Self-referential structures

 – Types of dynamic data structures

 – Linked lists

 – Operations on linked lists

7. Writing Large Programs

 – Header Files

 – Divide a program into files

8. Various Topics

 – Enumeration types

 – Conditional operator (? 🙂

 – Comma operator

 – Macros

 – Program arguments.

9. Introduction to Object Oriented Languages

 – Programming paradigms

 – Characteristics of object oriented languages

 – Classes and Objects

 – Analysis of small programs in C ++

Curricular Unit Teachers

Internship(s)

NAO

Bibliography

Ritchie, D. M., Kernighan, B. W., & Lesk, M. E. (1988). The C programming language. Englewood Cliffs: Prentice Hall.

Schildt, H. (2000). Teach Yourself C. McGraw-Hill, 4th Ed.

King, K. N. (2008). C programming: a modern approach. WW Norton & Company.

 Vasconcelos, V. (2021).  Notes used in classes, lab sheets, solved exercises and support software. Coimbra: ISEC.