Person in charge: | (-) |
Others: | (-) |
Credits | Dept. | Type | Requirements |
---|---|---|---|
7.5 (6.0 ECTS) | CS |
|
P1
- Prerequisite for DIE , DCSYS , DCSFW |
Person in charge: | (-) |
Others: | (-) |
In this subject, students delve further into structured programming. They are introduced to techniques for designing mid-sized programs, and given further experience in the field of programming through practicals. Finally, their command of recursion as a tool for program construction is broadened.
Estimated time (hours):
T | P | L | Alt | Ext. L | Stu | A. time |
Theory | Problems | Laboratory | Other activities | External Laboratory | Study | Additional time |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 0 | 9,0 | 0 | 6,0 | 3,0 | 0 | 24,0 | |||
Techniques are presented for breaking programmes down into modules that satisfy the quality requirements dealt with earlier.
Among others, the themes introduced include: - Decomposition of complex problems. - Functional abstraction and data - Successive refinements - Ascendent/descendent design. Concepts and techniques will be illustrated with case studies. Knowledge of algorithms acquired during the Programming 1 course will be reviewed at the same time.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 21,0 | 0 | 42,0 | 0 | 0 | 63,0 | |||
This is an individual assignment where the student has to solve a problem of middling complexity. Students have to apply both their knowledge of
modular object-oriented design in the light of contents 1 and 2, and the knowledge of small-scale Programming (studied in the previous course). The themes helping students develop their projects and dealt with in the lab sessions will be the following: 1. C++ coding. 2. Libraries. 3. Programme debugging and testing. 4. Input/output with text files.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Generalising a function. How and when to generalise functions in a recursive design. Relationship between new parameters in generalized recursive functions and local variables in iterations.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
The problem of repeating calculations in a programme. How to avoid repeated calculations. Recursiveness: new parameters and/or resultats (immersions for efficiency reasons). Iteration: new local variables.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Introduction to the use of recursive types. Recursive type definitions. Implementation of abstract data types through recursive types. Implementation of basic operations.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Exhaustive search algorithms. Combinatorial algorithms.
|
Total per kind | T | P | L | Alt | Ext. L | Stu | A. time | Total |
28,0 | 0 | 42,0 | 0 | 56,0 | 22,0 | 0 | 148,0 | |
Avaluation additional hours | 6,0 | |||||||
Total work hours for student | 154,0 |
The teacher presents new concepts in theory classes, setting out their usefulness and illustrating them with examples.
Students solve short problems in the first part of lab classes.
The second part of the class involves tackling a slightly longer programming problem, which students solve under the teacher"s supervision.
This process involves interim submissions of parts of the solution
in order to ensure students are working on the right lines.
The grade awarded for the course as a whole is calculated as follows:
65% practical exam + 35% final exam
The grade for practical work is based on marks for the following:
- Development of the practical work, reflected in the C++ Coding and the Solving Report. The two activities will make up 55% of the marks.
- A test on the contents of the practical work will make up the remaining 45% of the marks. This test is held as if it were a part exam.
Any attempt of fraud during the course will entail the application of the UPC's general academic normative and the beginning of a disciplinary process.
Basic knowledge of and skills in C++ programming.