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/