Go to:
Logótipo
You are here: Start > L.EIC009

Programming

Code: L.EIC009     Acronym: P

Keywords
Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2024/2025 - 2S Ícone do Moodle

Active? Yes
Web Page: https://moodle2324.up.pt/course/view.php?id=5284
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L.EIC 462 Syllabus 1 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
João Carlos Viegas Martins Bispo

Teaching - Hours

Lectures: 2,00
Recitations: 2,00
Type Teacher Classes Hour
Lectures Totals 3 6,00
João Carlos Viegas Martins Bispo 3,00
Recitations Totals 20 40,00
David Miguel Ramalho Pereira 4,00
Alexandra Sofia Ferreira Mendes 8,00
Rúben André Mota Dhanaraju 4,00
Lázaro Gabriel Barros da Costa 4,00
Afonso Manuel Maia Lopes Salgado de Sousa 2,00

Teaching language

Suitable for English-speaking students
Obs.: Português

Objectives

Allow students to acquire the fundamental knowledge about imperative and object oriented programming in C/C++.

Learning outcomes and competences

The students who complete this curricular unit successfully must be able to solve programming problems using C/C++ code that is well structured, readable, documented and validated.

Working method

Presencial

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

No previous knowledge is required.

Program

- Imperative programming in C/C++:

  • Primitive and structured data types. Operators. Declaration and scope of variables.
  • Program flow control : choice, iteration, functions.
  • Pointers, dynamic memory allocation, pointer arithmetic.

- Object-oriented programming in C++:

  • Classes and objects: fundamental notions. Class definition, information encapsulation.
  • Inheritance between classes and polymorphism.
  • Generic classes and methods ("templates"). The Standard Template Library (STL).
  • Exceptions.

- Cross-cutting concerns

  • Use of the most common functionalities in the standard C/C++ libraries.
  • Good programming practices.
  • Structuring programs in modules.
  • Code readability and documentation.
  • Bug detection and program validation using runtime sanitizers and unit tests.

Mandatory literature

Deitel, P. & Deitel, H. ; C++ How to Program, Pearson, 2016
Paul J. Deitel; C how to program. ISBN: 978-0-13-705966-9

Complementary Bibliography

Brian W. Kernighan; The C programming language. ISBN: 0-13-110362-8
Bjarne Stroustrup; The C++ programming language, Addison-Wesley. ISBN: 978-0321563842
Horstmann, C.; Big C++: Late Objects, John Wiley & Sons Inc., 2017

Teaching methods and learning activities

Lectures: exposition of the course topics, using materials previously made available to students, accompanied by the discussion and resolution of use cases.
Practical lessons: resolution of programming exercises in C/C++; whenever the instructor deems it necessary, he/she can encourage students with difficulties to seek the help of monitors.
Outside of classes: resolution of programming exercises in C/C++ and multiple-answer questionnaires, and development of a group project, on the subjects taught.

Automatic code correction tools are used to increase the speed of feedback given to students.

Software

IDE para desenvolvimento em C++ (Visual Studio Code)
GCC: compilador de C/C++

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Trabalho prático ou de projeto 30,00
Teste 70,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 106,00
Frequência das aulas 56,00
Total: 162,00

Eligibility for exams

Conditions to obtain eligibility for exams: do not exceed the absence limit, established in the rules (25% of the total number of estimated practical lessons). 

Students with worker-student status or who have obtained attendance in the previous school year are exempt from attendance. However, students who have obtained attendance in the previous school year must perform, in the present school year, all the evaluation components indicated below.

Calculation formula of final grade

Distributed evaluation without final exam.

The final grade is given by the following formula:

Final grade = 10% AC + 20% PROJ + 70% T

where

T = MAX(50 % P1 + 50 % P2, R)

Assessment components:

AC - Continuous assessment: multiple-answer questions and weekly programming exercises.

PROJ - Assessment of the group project.

P1 - Computer-based exam, with 2 components, theoretical and practical, to be taken in the middle of the semester.

P2 - Computer-based exam, with 2 components, theoretical and practical, to be taken at the end of the semester.

R - Computer-based exam, with 2 components, theoretical and practical, to be taken during the exam season, addressing the topics of exam P1 and P2.

For approval without the R exam, students must obtain a minimum grade of 30% in P1 and 30% in  P2. For approval with the R exam, students must also obtain a minimum grade of 30% in R.

If plagiarism is detected, for example the submission of code from others, the RFR ("Reproved by Fraud") classification may be assigned to all involved.

Examinations or Special Assignments

N/A

Internship work/project

N/A

Special assessment (TE, DA, ...)

Students with a special status, although they may be exempted from attending practical lessons, are subject to the same assessment conditions as regular students.

Classification improvement

Students who attended this curricular unit in the current academic year can make improvements to the P1 and/or P2 components in the exam to be taken at the end of the semester, whose R result is mentioned in the calculation formula of the final classification.

Students who want to improve the classification of the previous school year must enroll using the option "melhoria por frequência" and perform the
PROJ and T components mentioned above, the final classification being given by the following formula:

Final grade = 20% PROJ + 80% T

Therefore, the curricular component of AC is not considered for improvement.

Observations

Approval in Fundamentos de Programação / Programming Fundamentals (L.EIC003), or equivalent, is advisable.

Recommend this page Top
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2024-10-20 at 09:52:36 | Acceptable Use Policy | Data Protection Policy | Complaint Portal