Degree | Informatics engineering

Programming I

Scientific Field:

Computer Science

Duration:

Semester

ECTS

6

Contact Hours Theoretical Practices:

60h

LEARNING OBJECTIVES

To complete this unit, students must acquire the following knowledge and skills:

1. Understand the fundamental programming techniques.
2. Understand the structure of C language.
3. Know how to compile and run programs in C.
4. Know how to write programs that use decision structures.
5. Know how to write programs that use repetition structures.
6. Know how to use string handling functions.
7. Know how to write programs using arrays.
8. Know how to write programs that use pointers and structures.
9. Create programs that access files.
10. Understand the concepts of classes and objects and their implementation in C++.
11. Know how to write, compile and execute programs in C++ using classes and objects.

PROGRAM

1. Basic programming techniques

1.1. Algorithms and programs
1.2. Programs and languages
1.3. Data types
1.4. Identifiers, variables, and constants
1.5. Operators and expressions
1.6. Strings
1.7. Decision and repetition structures

2. Introduction to the C language

2.1. Programs and programming languages
2.2. Contextualization of the C language in the face of different programming paradigms
2.3. Compilers and interpreters
2.4. Compiling and linking
2.5. Source and executable code
2.6. identifiers
2.7. Constants and character strings
2.8. Operators and functions

3. Variables, Constants, and Basic Data Types

3.1. Declaring and initializing variables
3.2. Local and global Variables
3.3. Constants

4. Input and output

4.1. printf() function
4.2. Data Identifiers
4.3. scanf() function
4.4. addressof operator

5. Operators

5.1. Operators and expression
5.2. Arithmetic operators
5.3. Logical operators
5.4. Comparison operators
5.5. Increment and decrement operators

6. Decision and repetition structures

6.1. if statement
6.2. switch statement
6.3. while statement
6.4. for statement

7. Functions

7.1. Create and access functions
7.2. Function arguments
7.3. The value returned by functions
7.4. Recursivity

8. Arrays

8.1. Array declaration and initialization
8.2. Accessing array elements
8.3. Multidimensional Arrays

9. Strings

9.1. Concept of string
9.2. Initialize character strings
9.3. Basic string functions.

10. Pointers

10.1. Access variables through addresses
10.2. Pointer-type variables
10.3. Pointer-to-pointer programming

11. Structures

11.1. Concept of Structures
11.2. Creating Structures
11.3. Accessing Structure members

12. Files

12.1. Text Files
12.2. Binary Files

13. C++ language elements

13.1. Data types
13.2. Keyboard input
13.3. Output to screen

14. Classes & Objects

14.1. Basic concepts
14.2. Data members and function members
14.3. Communication between objects
14.4. Class Constructors
14.5. Create multiple objects of a class
14.6. Class Destructor
14.7. Class Inheritance

15. Application Development in C/C++

DEMONSTRATION OF COHERENCE BETWEEN SYLLABUS AND LEARNING RESULTS

For many students, this will be their first contact with a programming language. For this reason, basic concepts of programming logic are presented, using a pseudocode language before C language programming.
The C language is presented through simple examples of input and output programs. The various types of statements are accompanied by examples of progressive complexity. The concepts of classes and objects are introduced using the C++ language.

TEACHING METHODOLOGY AND ASSESSMENT

This unit has a theoretical-practical nature. In total 60 hours are planned for classroom teaching. The student’s total study time should be 162 hours. The structure of the C and C++ languages is based on examples presented by the teacher and on exercises proposed to students. Gradual evolution will allow students to create programs of increasing complexity.
Under ISTEC’s Regulation of Functioning, students are evaluated through a mandatory individual written exam. The student’s final classification may be positively affected by elements resulting from a continuous assessment process, such as tests, individual or group academic work, individual initiatives to participate in classes and learning resources provided by e-learning systems.

DEMONSTRATION OF CONSISTENCY BETWEEN TEACHING METHODOLOGIES AND LEARNING RESULTS

Throughout this learning process, student participation in solving a vast number of exercises lets them acquire familiarity with the programming language. The development of an application in C/C++, using all structures, such as decision and repetition structures, functions, arrays, pointers, structures, files, classes and objects, lets them acquire the knowledge and skill defined by the unit objectives.

BIBLIOGRAPHY

Fundamental:
Deitel, Paul e Deitel, Harvey (2016). C How to Program – With an introduction to C++
ROCHA, António; Introdução à Programação Utilizando C, Editora FCA
RODRIGUES, Pimenta; Programação em C++, Editora FCA

Complementary:
CARRIÇO, Rui; Introdução à Programação usando linguagem C, Edições Chambel
CARRIÇO, Rui; Linguagem C++, Edições Chambel
DAMAS, Luís; Linguagem C, Editora FCA
RITCHIE, Dennis; KERNIGHAN, Brian; The C Programming Language, Prentice Hall
MEYERS, Scot; Effective Modern C++, O’Reily
ECKEL, Bruce; Using C++, MacGraw Hill
HENNEFELD, Julien; BAKER, Laura; BURCHARD, Charles. Using C++ An Introduction 2nd Edition,
Brooks/Cole
GUERREIRO, Pedro; Programação de Classes em C++, Editora FCA

INTERNET:
Access to specialist publications, free of charge, through the SPRINGER network:
https://link.springer.com/