Code: | L.BIO025 | Acronym: | EDA |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Engineering Sciences |
Active? | Yes |
Web Page: | http://moodle.fe.up.pt |
Responsible unit: | Department of Informatics Engineering |
Course/CS Responsible: | Bachelor in Bioengineering |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
L.BIO | 32 | Syllabus | 3 | - | 6 | 52 | 162 |
The main objectives of this course are:
1) to complement the knowledge on computer programming, acquired in the course of Introduction to Scientific Programming, using the C language for program development;
2) to transmit fundamental concepts about data structures, design and analysis of algorithms, providing students with the ability to apply the referred programming paradigm to develop programs in which the data structures and algorithms available in the Standard Template Library (STL) of C++ are used, as well as abstractions developed by themselves
The students who complete successfully this curricular unit must be able:
- to identify the main concepts of procedural and object oriented programming;
- to describe typical applications of the studied data structures and algorithms and to select / create data structures and algorithms to solve low/medium complexity problems;
- to solve programming problems using the C/C++ programming language and the abstractions from the C++ Standard Template Library (STL), implementing their own data structures and algorithms whenever necessary.
Attendance to the Introduction to Scientific Programming course, with approval, is recommended.
INTRODUCTION TO C/C++
Fundamental data types and basic I/O.
Operators. Arithmetic and Boolean expressions.
Flow control structures: selection; repetition. S
tructured data types: arrays and C strings; STL vectors and C++ strings.
Pointers and dynamic memory allocation.
Functions: definition and declaration; local and global variables; parameter-passing mechanisms (call-by-value and call-by-reference) and return values; function overloading; templates. Recursive functions.
Streams: input/output using text files; stringstreams.
INTRODUCTION TO CLASSES AND DATA ABSTRACTION
Fundamental concepts. Classes and structs.
Encapsulation.
Data-members and function-members.
Constructors; constructors with parameters.
Special qualifiers: const, static, friend.
Copy-constructors.
Destructors.
Operator overloading.
Template classes.
Introduction to the design of object-oriented code.
Relationships among classes; implementing associations. Introduction to UML.
STANDARD TEMPLATE LIBRARY
Containers: string, vector, list, map, multimap, set, multiset.
Iterators and algorithms.
INHERITANCE AND POLYMORPHISM
Inheritance and polymorphism concepts.
Derived classes. Accessing base-class members.
Function overloading, function overriding (virtual functions) and templates.
Abstract classes.
EXCEPTION HANDLING (introduction).
APPLICATION EXAMPLES (along the whole course)
Program conception using object oriented design. Search and sort algorithms; analysis of the complexity of algorithms. Linear data structures and their implementation.
- Theoretical-practical classes: will be based on the oral presentation of the themes, accompanied with problem solution and discussion, and the presentation of good programming practices.
- Practical classes: will be based on the development of computer programs, in C/C++, to solve the proposed exercises, and on the partial development of small programming projects.
-Self-learning: study of the program subjects, using the bibliography and the material provided in the Web page of the curricular unit, resolution of exercises and development of the projects started in the labs.
Designation | Weight (%) |
---|---|
Exame | 60,00 |
Trabalho prático ou de projeto | 40,00 |
Total: | 100,00 |
Designation | Time (hours) |
---|---|
Estudo autónomo | 90,00 |
Frequência das aulas | 52,00 |
Elaboração de projeto | 20,00 |
Total: | 162,00 |
To attend the classes, as specified in the general rules, and to achieve a minimum grade of 40% in the distributed component . Students who have attained the minimum required grading in the distributed evaluation component in the previous occurrence of this course may keep the obtained grading; in this case they must inform the teacher, during the first week of the course, and they should not register for the practical classes.
The final grade is given by: cFINAL = 0,4 * cDIST + 0.6 * cEXAM where cDIST and cEXAM represent, respectively, the distributed component grade and the exam grade. The result of the distributed component will be calculated on the basis of the grade obtained in a practical assignment, to be done during the semester and to be submitted by the end of the semester. The exam will be done with "open book/notes". To be approved, students have to achieve a minimum grade of 40% in cDIST and cEXAM components.
The final mark cannot exceed by more than 4 points the mark of the final exam rounded to the nearest integer.
Students with a special status will be assessed in the same way as ordinary students. They should to do all the projects and deliver them on the dates scheduled for regular students. Final exam is also mandatory.
Students can only improve the mark of the distributed assessment component in the following year. Students can improve the mark of the written exam at the corresponding seasons (according to the rules). The improvement of only one of the components will imply maintaining the classification previously obtained in the other component, being applied the formula previously presented for the calculation of the final grade.