Person in charge: | (-) |
Others: | (-) |
Credits | Dept. | Type | Requirements |
---|---|---|---|
7.5 (6.0 ECTS) | CS |
|
P1
- Prerequisite for DIE , DCSYS PRAP - Prerequisite for DIE , DCSYS |
Person in charge: | (-) |
Others: | (-) |
Firstly, this subject aims to give students a better idea of what programming languages are, and, in particular, object-oriented programming languages. With this goal in mind, students study aspects such as type structure, data control, memory management and the abstraction mechanisms of languages that display these characteristics.
Secondly, students also learn new programming techniques. In particular, the course focuses on the use of dynamic memory and linked data structures, which are basic for many applications.
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 | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 2,0 | 0 | 12,0 | 6,0 | 0 | 26,0 | |||
Stacks
Specification. Applications. Implementation with static tables. Implementation with dynamic tables. Implementation with chained nodes. Queues. Specification. Applications. Implementation with circular tables. implementation with chained nodes. Lists. Specification. Applications. Implementation with chained nodes. Variations.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 2,0 | 0 | 8,0 | 6,0 | 0 | 22,0 | |||
General trees, binary and m-ary trees:
Specification of general trees. Specification of m-ary trees. Specification of binary trees. Examples: expression trees. Implementation linking binary trees. Linked implementation of m-ary trees. Isomorphism between general and binary trees. Implementing general trees using pointers to first and child and sibling. Tree schemes: Pre-ordered, post-ordered, and unordered walks, and by levels. Application: Evaluation of expressions, formal derivation of expressions.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 0 | 0 | 0 | 0 | 2,0 | 0 | 4,0 | |||
Design criteria for a programming language.
Implementation of a programming language. Abstract machines. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 2,0 | 0 | 0 | 0 | 0 | 0 | 8,0 | |||
Concept of type.
Data types and the features of a programming languages. Polymorphism and overload. Definition of a type system using inference rules. Type checking. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
5,0 | 2,0 | 0 | 0 | 7,0 | 0 | 0 | 14,0 | |||
Pointers, new and delete.
Destructor, copy constructor, and assignment operator. Dynamic assignment of memory. Garbage collection algorithms. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
3,0 | 2,0 | 0 | 0 | 0 | 5,0 | 0 | 10,0 | |||
Names and entities.
Entity visibility and life. Static and dynamic environments. Access to entities: static and dynamic chains. Passing parameters. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 2,0 | 2,0 | 0 | 6,0 | 8,0 | 0 | 24,0 | |||
Specifying tables and dictionaries.
Implementation with hash tables: open hashing, closed hashing, and other variations. Hash functions
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
3,0 | 1,0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Inheritance and subtypes.
Inheritance as a design tool. Inheritance and programme modifiabilty. |
Total per kind | T | P | L | Alt | Ext. L | Stu | A. time | Total |
40,0 | 16,0 | 6,0 | 0 | 33,0 | 41,0 | 0 | 136,0 | |
Avaluation additional hours | 6,0 | |||||||
Total work hours for student | 142,0 |
The subject will be presented in a highly practical way and will be illustrated with many examples.
There will be three kinds of classes: theory sessions, problem sessions, and lab sessions. There will be weekly 4 hours of theory and problem classes. There will be only 2 or 3 guided lab sessions. The remaining lab time is devoted to students autonomous work.
A partial exam (NP grade), of practical nature, will be held arround mid course. It will cover the topics of lineal structures and memory management.
The final exam (NF grade) covers the whole course. This exam has a more conceptual nature, and includes again the topics already covered in the partial exam.
The lab grade (NL grade) is computed from two two equally-weighted programming exercises, which are solved in couples. The first exercise (linear structures) will be proposed around the third or fourt week of classes, and the second one about three weeks before classes end. In both cases there are about four weeks to solve them.
The total grade (NT grade) is computed as:
NT = max(0,2*NP + 0,6*NF, 0,8*NF) + 0,2*NL
PREREQUISITES: Prap