Programming
| Keywords |
| Classification |
Keyword |
| OFICIAL |
Programming |
Instance: 2011/2012 - 2S 
Cycles of Study/Courses
| Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
| MIEIC |
180 |
Syllabus since 2009/2010 |
1 |
- |
7 |
70 |
189 |
Teaching language
Portuguese
Objectives
The student is expected to strengthen its programming skills, introduced in Scheme in the Fundamentos da Programação / Programming Fundamentals course, by using now the C++ language.
By the end of the course the student will be able to:
- identify the fundamental concepts of procedural programming and objected oriented programming;
- solve programming problems of low/medium complexity using the C++ programming language and the abstractions from the C++ standard template library (STL);
- develop solutions to programming problems by defining and implementing user defined abstractions in C++.
Program
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.
EXAMPLES
Program conception using object oriented design.
Container implementation.
Mandatory literature
H. M. Deitel, P. J. DeitelDeitel;
C++ how to program. ISBN: 0-13-185757-6
Complementary Bibliography
Andrew Koenig, Barbara E. Moo;
Accelerated C++. ISBN: 0-201-70353-X
Lippman, Stanley B.;
C++ Primer. ISBN: 0-201-82470-1
Teaching methods and learning activities
• 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 organized in groups of two students, whenever possible.
Evaluation Type
Distributed evaluation with final exam
Assessment Components
| Description |
Type |
Time (hours) |
Weight (%) |
End date |
| Attendance (estimated) |
Participação presencial |
60,00 |
|
|
| Homeworks |
Teste |
60,00 |
|
2012-06-01 |
| Exam |
Exame |
3,00 |
|
2012-07-13 |
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
| Description |
Type |
Time (hours) |
End date |
| Theory readings |
Estudo autónomo |
50 |
2012-06-01 |
| Exam preparation |
Estudo autónomo |
16 |
2012-07-13 |
|
Total: |
66,00 |
|
Eligibility for exams
Do not exceed the absence limit and obtain a minimum of 40% in the distributed evaluation classification.
Calculation formula of final grade
Evaluation components
Distributed evaluation (DEv) with final exam (ExEv).
• DEv - Students are organized in groups of 2. Two projects will be developed during classes and beyond. Evaluation will be based on the submitted material and performance during classes. For the last 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.
• Projects weight in DEv:
- Project 1 - 40%
- Project 2 - 60%
• Final Classification = DEv * 0.5 + ExEv * 0.5
• Oral examination: whenever needed, according to the teaching team, students may be submitted to an oral examination. In this situation the final classification will be given by the average of the classification calculated with the previous formula and the classification of the oral examination.
Observations:
1- A minimum of 40% on the ExEv evaluation component is required to pass the class.
2- If the teaching team decides not to propose one of the projects, its weight will be redistributed to the other projects.
Examinations or Special Assignments
See DEv, in Evaluation components.
Special assessment (TE, DA, ...)
Students with a special status will be assessed in the same way as ordinary students. They have to do all the assignments and deliver them on the scheduled dates.
Classification improvement
Students can only improve the mark of the continuous assessment component in the following year.
Students can improve the mark of the written exam at the corresponding seasons (according to the rules).
Observations
Fundamentos de Programação / Programming Fundamentals (or equivalent) frequency and approval is advisable.