Introduction to Programming (2018/2019) - Departamento de Informática

Additional information: http://ctp.di.fct.unl.pt/di/ipb

Description

Learn to develop algorithms for solving not too difficult problems. Learn to write and test programs in a particular programming environment.

Objectives

Knowledge
1 - Know a fragment of a particular programming language (C) and know a particular programming environment (Code::Blocks IDE)
2 - Understand the programming methodologies employed.

Know-how
1 - Be able to implement small programs, well-organized e obeying a certain number of code conventions.
2 - Be able to design and to write simple algorithms in a correct manner.

Syllabus

- Computing, algorithms and programs. Programming problems.
- Programming languages. Programming environments. The C programming language.
- Definitions. Expressions. Instructions.
- Functions. Iteration and recursion.
- Constants. Variables and Assignments. Types.
- Code readability. Programming methodologies. The importance of software testing.
- Loops. Arrays processing.
- Records. Arrays of records.
- Pointers.
- Conditional constructs. Programming command-line interpreters.
- Text file processing.
- Sorting vectors and dichotomous search.

Bibliography

Main
- Artur Miguel Dias, "Course notes, including exercices list", 2018.
- Brian W. Kernighan, Dennis M. Ritchie, The C programming language, 2nd Edition, Prentice-Hall, 1988, ISBN 0-13-110362-8
- António Adrego da Rocha, Introdução à programação usando C, FCA, 2006, ISBN 972-722-524-1

Complementary
- Pedro Guerreiro, Elementos de programação com C, FCA, 2006, ISBN 972-7-22510-1
- Peter A. Darnell, Philip E. Margolis, C: A Software Engineering Approach, 3rd Edition, Springer, 1996, ISBN 0-387-94675-6

Prerequisites

General knowledge of mathematics, at the High School level.

Student work
  Hours per credit 28
  Hours per week Weeks Hours
Aulas práticas e laboratoriais   36.0
Aulas teóricas   24.0
Avaliação   4.0
Self study   60.0
Orientação tutorial   2.0
Project   42.0
Total hours 168
ECTS 6.0