Programming II
Keywords |
Classification |
Keyword |
OFICIAL |
Computing and Information Sciences |
Instance: 2024/2025 - 2S 
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
L:EF |
79 |
study plan from 2021/22 |
1 |
- |
3 |
24 |
81 |
Teaching Staff - Responsibilities
Teaching language
Suitable for English-speaking students
Objectives
The aim is to complement previous knowledge of programming in an interpreted language (Python) with specific training in programming in a compiled, low-level language (C).
Emphasis will be placed on practical problem-solving with a focus on notions of algorithms, modularity, structured programming and code quality.
Learning outcomes and competences
At the end of this course, students should be able to:
- use the syntax and semantics of the fundamental components of the C language;
- write, test and execute programmes to solve simple problems from an informal specification;
- implement some elementary algorithms in C;
- know the concept of pointer and use it to process indexed variables and character strings;
- know and use functions from the standard C language libraries;
- have basic skills in writing structured, correct and efficient code.
Working method
Presencial
Program
Introduction to the C language. Characteristics of the language: advantages, disadvantages and care when using it.
C language fundamentals. Syntactic structure of programs. Directives, declarations, expressions. Compilation and execution.
Basic types (integers, floating point, characters). Flow control. Cycles. Function definition. Formatted input and output.
Notions of pointers. Indexed variables. Character strings. Structured types.
Elementary algorithms (counting, searching, sorting, numerical algorithms).
Recursion. Solving simple problems using iterative and recursive algorithms.
Incremental development. Error detection and correction. Notions of efficiency and correctness.
Mandatory literature
K. N. King;
C programming. ISBN: 0-393-96945-2
Complementary Bibliography
Brian W. Kernighan;
The C programming language. ISBN: 0-13-110163-3
Jon Bentley;
Programming pearls. ISBN: 9780201657883
Teaching methods and learning activities
Theoretical-practical lectures, with interactive analysis and discussion of problems and programs.
Practical classes to solve exercises on the computer, using development tools and an automatic evaluation system.
Software
Mooshak - A system for automatic evaluation of code
GCC - GNU C Compiler
Evaluation Type
Distributed evaluation without final exam
Assessment Components
designation |
Weight (%) |
Teste |
40,00 |
Exame |
50,00 |
Trabalho laboratorial |
10,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
designation |
Time (hours) |
Estudo autónomo |
32,00 |
Frequência das aulas |
24,00 |
Trabalho laboratorial |
25,00 |
Total: |
81,00 |
Eligibility for exams
Attendance to at least 50% of the practical classes.
Calculation formula of final grade
The final grade is obtained taking into account the following components:
- A: grading of the exercises submitted to the automatic assessment system during the lessons;
- T: practical test at the end of the 6 weeks of classes;
- E: final written exam.
The final grade (
F) is determined by
F = A*0.1 + T*0.4 + E*0.5Note: There is no minimum mark in any component. Students will be allowed one chance to improve the practical test before the exam period.
Classification improvement
Students can improve the final exam mark in accordance with the general regulations.