| Person in charge: | Elvira Patricia Pino Blanco (pino |
| Others: | Ana Cristina Zoltan Torres (zoltan Ana Edelmira Pasarella Sanchez (edelmira Nicolas Eduardo Mylonakis Pascual (nicos |
| Credits | Dept. | Type | Requirements |
|---|---|---|---|
| 7.5 (6.0 ECTS) | LSI |
|
P1
- Prerequisite for DIE , DCSYS PRAP - Prerequisite for DIE , DCSYS |
| Person in charge: | Elvira Patricia Pino Blanco (pino |
| Others: | Ana Cristina Zoltan Torres (zoltan Ana Edelmira Pasarella Sanchez (edelmira Nicolas Eduardo Mylonakis Pascual (nicos |
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 subject focuses on the use of dynamic memory and linked data structures, which are behind 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 set forth in a highly practical fashion and will be illustrated with many examples.
There will be three kinds of classes:
theory sessions, problem sessions, and lab sessions. The breakdown of these sessions throughout the course is as follows:
4 hours a week of theory and problems.
2 or 3 lab sessions. The remaining lab work is devoted to students" individual work.
Two exams will be held: one will cover the more theoretical side of the course and involve short questions (NT grade), and the other will cover data structuring problems (NP grade).
The lab grade (NL grade) will be the product of two equally-weighted individual programming exercises. The first exercise (linear structures) must be submitted by the sixth week of the course. The second exercise (hash tables) must be submitted by the last week of the course.
The final grade (N grade) is calculated as follows: N = 0.4 NT + 0.4 NP + 0.2 NL
PREREQUISITES: Prap