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

Imperative Programming

Code: CC1003     Acronym: CC1003     Level: 100

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2023/2024 - 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 48 162
L:CC 118 study plan from 2021/22 1 - 6 48 162
L:F 1 Official Study Plan 2 - 6 48 162
3
L:G 1 study plan from 2017/18 2 - 6 48 162
3
L:IACD 124 study plan from 2021/22 1 - 6 48 162
L:M 2 Official Study Plan 2 - 6 48 162
3
L:Q 0 study plan from 2016/17 3 - 6 48 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 development tools (text editor, compiler, debugger). Use of automatic assessment tools for programming tests 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 60,00
Teste 40,00
Total: 100,00

Amount of time allocated to each course unit

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

Eligibility for exams

Students that miss more than 3 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.40 + T2*0.60

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

To be approved, students must have a final mark equal to or greater than 9.5 points (out of 20).

To be approved, students must have a score equal to or greater than 6 points (out of 20) in each of the tests.

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-10-06 at 18:35:49 | Acceptable Use Policy | Data Protection Policy | Complaint Portal