Faculdade de Ciências e Tecnologia

Introduction to Programming

Code

3622

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Artur Miguel de Andrade Vieira Dias, Luís Manuel Marques da Costa Caires

Weekly hours

5

Total hours

62

Teaching language

Português

Objectives

Knowledge
1 - Know a fragment of a particular programming language (C) and know a particular programming environment (MinGW Developer Studio)
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.

Prerequisites

General knowledge of mathematics, at the High School level.

Subject matter

- 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.
- Processing text files. Sorting vectors and dichotomous search.

Bibliography

Main
- Artur Miguel Dias, "Course notes, including exercices list", 2013.
- 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

Teaching method

This course has a strong applied character and the final grade depends entirely on the ability to solve pratical programming problems using the C language.

In the lectures, the fundamental concepts of the couse are transmitted, exemplified and discussed.

In the lab classes, the students solve small problems, applying the concepts and techniques learned. Some of these problems will be available in a automatic program evaluation system (called Mooshak), that the students interact with through the Net

The final project is partially developed in the lab classes and partially outside these classes. The final project is very important because it should help settling all that has been learned during the course and gain some wisdom in solving programming problems.

Evaluation method

Assessment components

The assessment components are the following and have the weights on the final score that are shown:

  • T1 - Mid-term test 1 - 40%
  • T2 - Mid-term test 2 - 40%
  • PR - Programming project  - 20%
  • ER - Resit exam - 80%

Each of these elements is graded up to 20 points.
The projects are carried out by groups of two students. There may be discussions of some projects for some groups.

Grades of the practical and theoretical components

The grade of the practical component is defined as:

  • PRAT = PR

The grade of the theoretical component is defined in two diferent ways, depending on when the grade is obtained:

  • TEOR= (T1 + T2) / 2
  • TEOR = ER

Frequência

The "frequência" grade is the same as the practical component:

  • FREQ = PRAT

Final grade and Success

The final grade is calculated using the formula:

  • FINAL = 0.2 * FREQ + 0.8 * TEOR

Sucess depends on the following condition:

  • Success = FREQ >= 9.5 e TEOR >= 9.5

All the intermediate grades are rounded to two decimal places.
The final grade is an integer number.

Validity of the "frequência" obtained this year

The "frequência" grade obtained in the current school year will be valid in the next school year, at least.

"Frequências" from the previous years

All "frequência" grades obtained in previous years are valid in the current school year. It is not possible to improve a frequência grade obtained in the past.The frequency obtained in the current school year will be valid in the next school year, at least.

Academic fraud

Any type of fraud in any component of the assessment causes the student to imediatelly fail to pass the course in the current academic year (even if there are exams scheduled). This applies both to those students who give information as to who receive information.

Courses