|Responsible unit:||Department of Informatics Engineering|
|Course/CS Responsible:||Master in Informatics and Computing Engineering|
|Acronym||No. of Students||Study Plan||Curricular Years||Credits UCN||Credits ECTS||Contact hours||Total Time|
|MIEIC||212||Syllabus since 2009/2010||1||-||7,5||70||202,5|
|Jorge Alves da Silva|
|Jorge Alves da Silva||3,00|
|Jorge Alves da Silva||2,00|
|Nuno Miguel Cardanha Paulino||4,00|
|Rosaldo José Fernandes Rossetti||4,00|
|José Carlos de Queirós Pinto||4,00|
|Liliana da Silva Ferreira||2,00|
The main objectives of this curricular unit are to transmit to the students:
- fundamental knowledge on procedural and object oriented programming techniques;
- the ability of applying those programming paradigms to develop programs, using the C++ language as development tool.
The students who complete successfully this curricular unit must be able:
- To solve programming problems of low/medium complexity using the C++ programming language and the abstractions from the C++ standard template library (STL);
- To develop solutions to programming problems by defining and implementing user-defined abstractions in C++;
- To write well structured, legible and well commented programs;
- To compile programs, execute and debug them.
INTRODUCTION TO C/C++ Fundamental data types and basic input/output: variables and simple data; declarations; operators; arithmetic and Boolean expressions; input/output using the keyboard/screen. Control structures: selection; repetition. Structured data types: arrays and C strings; STL vectors and 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; const reference parameters. Streams: input/output using text files; string streams. INTRODUCTION TO CLASSES AND DATA ABSTRACTION Fundamental concepts. Classes and Structs. Encapsulation. Data-members and function-members. Constructors; constructors with parameters. Template functions and classes. Introduction to the design of object-oriented code. Relationships between classes; implementing associations. STANDARD TEMPLATE LIBRARY Containers: string, vector, list, map, set. Iterators and algorithms. CLASSES – ADDITIONAL CONCEPTS Special qualifiers: const, static, friend. Copy-constructors. Destructors. Operator overloading. INHERITANCE AND POLYMORPHISM Derived classes. Accessing base-class members. Function overloading, function overriding and templates. APPLICATION EXAMPLES (along the curricular unit) Program conception using object oriented design. Container implementation.
• Lectures: Exposition of the course topics and discussion of example cases. • Practical lessons: Development of a series of small projects in C++ and its evaluation. The projects are done by groups of two students, whenever possible.
|Frequência das aulas||70,00|
Do not exceed the absence limit and obtain a minimum of 40% in the distributed evaluation grading and a minimum of 30% in the short exame ("mini-teste"). 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 theoretical-practical classes. Note: although the 1st project will not be graded, it must developed, submitted and presented (if requested) as a necessary condition for approval in the distributed evaluation component.
Evaluation components Distributed evaluation (DEv) with final exam (ExEv). • DEv - The grading of this component will be based on the results obtained by the student in a short exame ("mini-teste"), that will take place by the middle of the semester, and a programming project. Two projects will be developed during classes and beyond; only the second project will be graded. For the execution of the projects students are organized in groups of two. Evaluation will be based on the submitted material and performance during classes. For the second project a report will be written and an oral presentation will be required. • ExEv – Final exam, a written test with bibliography support. • DEv and ExEv are specified in a 0 to 20 scale. • DEv grading: - Short exam - 40% - Project 2 - 60% • Final grading = DEv * 50% + ExEv * 50% • Oral examination: whenever needed, according to the teaching team, students may be submitted to an oral examination. In this situation the final grading will be given by the average of the grading calculated with the previous formula and the grading of the oral examination. Observation: a minimum of 40% on the ExEv evaluation component is required to pass the class.
See DEv, in Evaluation components.
Students with a special status will be assessed in the same way as ordinary students. They should to do all the assignments and deliver them on the dates scheduled for regular students.
The continuous assessment component can be improved as follows: the short exam mark can be improved in the final exam, the mark attributed to the short exam being equal to the mark obtained in the exam; the mark of the practical work can be improved in the next occurrence of this curricular unit. Students can improve the mark of the final exam at the corresponding seasons (according to the rules).
Students who wish to improve the classification obtained in the previous academic year may choose to only do the practical work, only the exam or both. The improvement of the mini-test will be done in the exam, being the classification attributed to the short exam equal to the classification obtained in the exam. Students wishing to improve their practical work should contact the teacher responsible for the course for scheduling work follow-up sessions. The delivery of the practical work will occur simultaneously with that of the other students.
Fundamentos de Programação / Programming Fundamentals (or equivalent) frequency and approval is advisable.