Electrical and Computer Engineering
ALGORITHMICS AND PROGRAMMING
Description
Theory
2
Laboratory
2
Instructors
José António Reis Tavares
Contents
1. Fundamental Algorithmic Concepts (2 weeks)
1.1 Definition and Description of Algorithms
1.2 Properties of algorithms
1.3 Data types, Variables, Operators, and Expressions
1.4 Operating Input and Output
1.5 Conditional and repetition structures (1,5 weeks)
2. Introduction to Programming in C (2 weeks)
2.1 Basic Structure of a C program
2.2 Basic Data Types
2.3 Reserved Words
2.4 Operators and type conversion
2.5 Operator precedence
2.6 Input/Output Functions
2.7 Coding conditional and repetition structures
3. Sub-programs and functions (2,5 weeks)
3.1 Function Declaration
3.2 Passing parameters by value and by reference
4. Vectors and matrices (2,5 weeks)
4.1 Declaration and use
4.2 Sort and search algorithms
5. Strings in C (1 week)
6. Pointers: Declaration of pointers, Initialization, and Handling (2 weeks)
7. Structures and Unions in C (1,5 weeks)
Learning Outcomes
The student should be able to:
O1 - Know and understand the architecture and operation of a computer environment (software/hardware).
O2 - Design algorithms by applying appropriate programming methodologies.
O3 - Analyze and develop programs in the C language.
O4 - Evaluate programs written in C.
O5 - Assume an attitude of active learning, collaborative and responsible, of persistent work, individually and in groups, and apply a critical spirit in the analysis and problem resolution.
Intermediate
The student should be able to:
- By presenting an algorithm, he or she should be able to state its functionality and adapt it to new requirements.
- Upon the presentation of a task to describe the respective algorithm.
- Upon the presentation of small programs to characterize each of the statements and the overall functionality of the program.
Terminals
The student should be able to:
- Upon the presentation of a problem, identify requirements, analyze it, and devise an algorithm to solve it, prepare the program coded in C, and test the solution using an appropriate test plan.
- By introducing a more complex problem, one should be able to structure it into modules, design the respective algorithms, reuse existing modules, develop the program coded in C, and test the solution using an appropriate test plan.
- Develop new solutions and make value judgments on the resolution of practical exercises.