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

Programming II

Code: CCINF1002     Acronym: CCINF1002

Keywords
Classification Keyword
OFICIAL Computing and Information Sciences

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

Active? Yes
Web Page: https://www.dcc.fc.up.pt/~slc/PII
Responsible unit: Department of Computer Science
Course/CS Responsible: Bachelor in Engineering Physics

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L:EF 91 study plan from 2021/22 1 - 3 28 81

Teaching language

Portuguese

Objectives

Complement previous programming knowledge in an interpreted language (Python) with specific formation for programming in a low-level and compiled language (C ). After this unit, students should be able to:

  1. Translate basic Python programs into the C language;
  2. Use C programming development tools (compiler, debugger);
  3. Use base functionalities from the C standard library for string processing and I/O;
  4. Understand the concept of pointers and use them in programs that process elementary data structures (arrays and linked lists).

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 for numeric computation, counting, searching and sorting;

  • acquire basic abilities in structured programming.

Working method

Presencial

Program

Introduction to the C language. Characteristics of the language, strengths, and weaknesses. General guidelines in effective use of the language.

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

Basic types (integers, floating point numbers, characters). Flow control. Loops. Function definition. Formatted I/O.

Examples of translating Python programs that implement elementary algorithms into C language.

Arrays. Strings.

Structures and unions.

Program organization: header files and libraries.

Error detection and correction. Use of a debugger and use of assertions.

Introduction to dynamic memory allocation and programming with pointers.

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

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 (Mooshak and/or Codex).

Software

gcc - gnu c compiler
gdb - gnu debugger

Evaluation Type

Distributed evaluation without final exam

Assessment Components

designation Weight (%)
Teste 90,00
Trabalho prático ou de projeto 10,00
Total: 100,00

Amount of time allocated to each course unit

designation Time (hours)
Estudo autónomo 53,00
Frequência das aulas 28,00
Total: 81,00

Eligibility for exams

Mandatory attendance to practical classes (according to the regulations of the University of Porto).

Calculation formula of final grade

The classification is given by the following components:


  • A: grading of the exercises submitted in the online self-testing system;

  • T1: first intermediate test

  • T2: second test during the exam period



The final mark is: F = A*0.1 + T1*0.40 + T2*0.50

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.
Exam (with 100% weighting in the grade).

Observations

Jury of the curricular unit: Sérgio Crisóstomo and Pedro Vasconcelos.
Recommend this page Top
Copyright 1996-2025 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2025-06-14 at 09:17:25 | Acceptable Use Policy | Data Protection Policy | Complaint Portal