Programming Methods I.
The pedagogical model used is based on three types of activities:
Two types of classes: 1) Lessons for the presentation and discussion of the syllabus; 2) Lessons for the application of concepts – programming problems.
Team work (2 students per team) for carrying out work which requires high involvement of the students.
It is intended that the student: cements the basic knowledge in computer programming; acquires a set of solid knowledge in procedural programming, and understands the effect of the form of programming in the software development outcomes; learns how to work with structured and dynamic types, including lists, queues, stacks, trees and graphs; learns how to use data structures and classic algorithms to solve effectively different types of problems.
Besides that, the following generic skills will be developed:
• Ability to model problems;
• Competence in the use of computational tools;
• Develop algorithms and programming using high-level languages, in particular C;
• Capacity of generalization and abstraction;
• Specify requirements and data structures;
• Writing and oral rigorous and clear;
• Ability to work in a team;
• Imagination and creativity;
• Critical thinking
Software Development•Programming languages and application development
Introduction to C language•Structure of a C program, compiling a C program, the basic elements of the C language, basic data types, constants and variables, basic manipulation of input and output, sequencing, data and other data types and libraries.
Input and Output Data•Interaction between the application and the user, data input and output.
Control flow•Selection and repetition.
Procedural programming•Subprograms, functions and organization of a program into subprograms.
Sequences and Pointers•Vectors, Pointers, Arrays.
Structures•Declaration and initialization, access to the fields of structures, reading and writing structures.
Files•Communication text and binary flows.
Recursion•Introduction, application examples and efficiency of recursion
Dynamic Data Structures•Dynamic memory management, linked lists, binary trees, stacks, queues, and graphs.
Pedro Henrique e Figueiredo Quaresma de Almeida
Active participation on classes and group work sessions.: 50.0%
A. A. Rocha, Introdução à Programação usando C. FCA, 2006.
A. A. Rocha, Estruturas de Dados e Algoritmos em C, FCA, 2008.
P. Guerreiro, Elementos de Programação com C. FCA, 2006.
S. Baase, A. Van Gelder, Computer algorithms: an introduction to design and analysis. Addison-Wesley, 2000.
B. W. Kernighan, The C programming language. Prentice Hall, 1988.
R. Sedgewick, Algorithms in C. Addison-Wesley, 2000.
J-P Tremblay, J. DeDourek, R. Bunt, Introduction to computer science: an algorithmic approach. McGraw-Hill, 1989.