Programming
Keywords |
Classification |
Keyword |
OFICIAL |
Programming |
Instance: 2009/2010 - 2S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
MIEIC |
176 |
Syllabus since 2009/2010 |
1 |
- |
7 |
70 |
189 |
Teaching language
Portuguese
Objectives
1 - BACKGROUND
Informatics Engineers require expertise in programming techniques which must be consolidated along programming courses.
2 – SPECIFIC AIMS
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.
The approach to each topic starts by applying abstractions from the C++ standard template library (STL), followed by the development of user defined abstractions.
3 – PREVIOUS KNOWLEDGE
Programming fundamentals.
4 – PERCENT DISTRIBUTION
Scientific component: 40%
Technological component: 60%
5 - LEARNING OUTCOMES
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 the abstractions from the C++ standard template library (STL):
A first C++ program; Brief introduction to the C++ string class; Sequence control – relational and logical operators, selection statements, and loops; introduction to the C++ vector class; Organisation of program and data - functions and parameters, parameters by reference, qualifier const, separate compilation, data structures with struct, exception handling; Sequential containers – sequential access, iterators, lists; Using STL algorithms; Associative containers – map;
Programming with user defined abstractions:
Generic functions; New type definition – classes, member functions, non-member functions, friend functions, data members, protection, accessor functions, constructors, default constructor, constructors with parameters; Memory management – pointers, arrays, pointers to functions, arrays of pointers, main function parameters, automatic, static and dynamic memory management, new and delete; Objects and inheritance.
Mandatory literature
Koenig, Andrew;
Accelerated C++. ISBN: 0-201-70353-X
Complementary Bibliography
Lippman, Stanley B.;
C++ Primer. ISBN: 0-201-82470-1
Deitel, H. M.;
C++ how to program. ISBN: 0-13-185757-6
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.
Software
Windows, Linux e Mac OS: Eclipse + CDT, compilador gcc/g++
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 |
|
2010-06-09 |
Final Exam |
Exame |
3,00 |
|
2010-07-23 |
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Individual Study |
Estudo autónomo |
50 |
2010-06-09 |
Exam preparation |
Estudo autónomo |
16 |
2010-06-21 |
|
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. Three 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 - 20%
- Project 2 -10%
- Project 3 - 70%
• 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, ...)
The same as in "Calculation of the Final Classification", except that the Distributed evaluation component depends only on the final project (Project 3). This project must be submitted and evaluated together with regular students.
Classification improvement
The same as in "Calculation of the Final Classification", except that the Distributed evaluation component depends only on the development of a single project, with the same level of difficulty of Project 3.
The student should contact the teacher staff for the project specification and submission date. The project’s evolution has to be discussed on a regular basis.
Observations
Fundamentos de Programação / Programming Fundamentals (or equivalent) frequency and approval is advisable.