Go to:
Logótipo
You are in:: Start > CC1003

Imperative Programming

Code: CC1003     Acronym: CC1003     Level: 100

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2022/2023 - 2S Ícone do Moodle

Active? Yes
Responsible unit: Department of Computer Science
Course/CS Responsible: Bachelor in Computer Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L:B 1 Official Study Plan 3 - 6 56 162
L:CC 100 study plan from 2021/22 1 - 6 56 162
L:F 1 Official Study Plan 3 - 6 56 162
L:G 0 study plan from 2017/18 2 - 6 56 162
3
L:IACD 88 study plan from 2021/22 1 - 6 56 162
L:M 0 Official Study Plan 2 - 6 56 162
3
L:Q 0 study plan from 2016/17 3 - 6 56 162

Teaching language

Portuguese

Objectives

To introduce the basic principles and concepts of imperative and structured programming, based on the C programming language.

The goals are the following:
- the students get familiar with the algorithmic problem-solving process and simple algorithms in the C programming language
- the students know some basic algorithms (for counting, searching and sorting)
- the students acquire good programming skills.

Learning outcomes and competences

After completing this course, students are expected to:
- know the semantics of fundamentals building blocks of the C programming language
- be able to write, compile and test programs that solve simple programming problems given an informal natural language specification
- know some basic algorithms in the C programming language
- understand the concept of pointers and be able to apply it for iterating over sequences and strings
- know how to use dynamic memory allocation
- be able to use functions from the C library for string processing and file I/O
- acquire abilities in structured programming
- know some basic data structures (linked lists, trees)

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

N/A

Program

Introduction to the C programming language. Brief historical context. Caracteristics of the language. Strengths and weaknesses of C. Pitfalls and general guidelines in effective use of the language.

Fundamentals of the C language. Basic syntatic structure: directives, declarations, expressions. Compilation and execution.

Basic types (integers, floating point numbers and characters). Flow of control. Cycles. Definition functions. Fomated I/O.

Elementary numerical and semi-numerical algorithms.

Indexed variables. Fundamental algorithms: counting, searching, and sorting. Processing character strings.

Program organization: header files, standard libraries.

Error detection and prevention. Use of a "debugger" and assertions.

Introduction to programming with pointers. Using pointers to process strings and indexed variables.

Recursion. Algorithmic problem solving: iterative and recursive approaches.

Definition of new data types (structs, unions).

File input/output.

Definition and use of some basic data structures (linked lists, trees).

Mandatory literature

000002544. ISBN: 0-393-96945-2

Complementary Bibliography

Thomas H. Cormen; Introduction to algorithms. ISBN: 978-0-262-03384-8
Kernighan Brian W.; The C programming language. ISBN: 0-13-110163-3
Jon Bentley; Programming pearls. ISBN: 9780201657883

Teaching methods and learning activities

Lectures: oral presentation supported by slides; interactive resolution of illustrative programming examples and complementary exercises.

Laboratory classes: solving proposed exercises using computer with standard develpment tools (text editor, compiler, debugger). Use of a custom-set automatic test system to aid detecting and correcting errors in solutions of selected exercises.

Use of automatic evaluation tools (Codex).
 
https://codex.dcc.fc.up.pt/cc1003/

Software

Codex
gdb - gnu debugger
gcc - gnu c compiler
GNU emacs

Evaluation Type

Distributed evaluation without final exam

Assessment Components

designation Weight (%)
Exame 80,00
Teste 20,00
Total: 100,00

Amount of time allocated to each course unit

designation Time (hours)
Frequência das aulas 56,00
Estudo autónomo 56,00
Trabalho laboratorial 50,00
Total: 162,00

Eligibility for exams

Students that miss more than 4 practical classes cannot attend the exams.

Calculation formula of final grade

The classification is given by the following components:

T1: intermediate test
T2: second test during the exam period
F: final mark

The final mark is: F = T1*0.20 + T2*0.80

Exams for grade improvement and special needs are marked for 100% of the final grade.

Classification improvement

Students can improve the final exam mark in accordance with the general regulations.

Recommend this page Top
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2024-07-27 at 23:34:46 | Acceptable Use Policy | Data Protection Policy | Complaint Portal