
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.