Algorithms and Programming I

Teaching Methodologies

Classes will be taught under theoretical and practical regime, in computer rooms.
An expository methodology will be used for the presentation of the concepts of the course, supported by practice in the classroom, through the resolution of proposed exercises of application of the concepts transmitted, in the classroom computers.

Learning Results

This course Algorithms and Programming I is defined as structural one in IT Management degree since it allows the acquisition of fundamental knowledge and understanding of subsequent courses. This course intends to achieve the following goals:
• Know and understand the architecture and operation of a computing environment (software/hardware).
• Design simple algorithms applying appropriate programming methodologies.
• Know and understand the language C.
• Understand and adapt existing programs and develop new programs coded in C language

Program

1. Introductory concepts of programming
2. Problem solving techniques
2.1. Addressing the Problem
2.2. Notion of algorithm
2.3. Forms of representation of algorithms
2.3.1. Descriptive
2.3.2. Pseudocode
2.3.3. Flowchart
3. Algorithmics
4. Introduction to C language
4.1. Variables in programming
4.2. Assignment Statements
4.3. logical expressions
4.4. Data Types
4.5. Basic communication with the user
5. Control structures
5.1. Major control structures
5.2. Selection of alternatives
5.2.1. If-then-else (if-else)
5.2.2. Compound statement if-then-else (if-else-if)
5.2.3. Alternative to the if-else-if: switch
5.3. Cycles and iterations
5.3.1. While and dowhile
5.3.2. Repeat (For)
6. Functions
7. Vectors
7.1. Statement vectors
7.2. Use of vectors
7.3. Strings
7.4. Multidimensional vectors
8. Search Algorithms
9. Passing command line parameters

Internship(s)

NAO

Bibliography

1. T. Cormen, C. Leiserson, R. Rivest, C. Stein. (2001), “Introduction to Algorithms”, MIT Press.
2. Brian W. Kernighan, Dennis M. Ritchie (2006), “The C Programming Language Second
Edition”, New Jersey:
Prentice Hall PTR, ISBN: 0131103628.
3. R. Sedgewick (1997), “Algorithms in C: Fundamentals, Data Structures, Sorting, Searching”, Pts. 14,
Addison
Wesley
4. Maureen Sprankle (2002), “Problem solving and programming principles 6a
ed.”, Prentice Hall.
5. M. A. Weiss (1997), “Data Structures and Algorithm Analysis in C”, Addison Wesley.
6. João Cortez, Henrique Mamede, “Introdução às Técnicas de Programação”, Editorial Presença.
7. Pedro João Valente Dias Guerreiro, “Elementos de Programação com C 3a
Edição Actualizada e
Aumentada”, FCA – Editora de informática, Lisboa, ISBN: 9727225101.
8. Joaquim P. Marques de Sá, “Fundamentos de Programação usando C, FCA – Editora de informática”, Lisboa,
ISBN: 972722475x.