Checking date: 07/07/2020

Course: 2020/2021

Systems Programming
Study: Bachelor in Telematics Engineering (215)


Department assigned to the subject: Department of Telematic Engineering

Type: Compulsory
ECTS Credits: 6.0 ECTS


Students are expected to have completed
Programming (1st course, 1st semester)
Competences and skills that will be acquired and learning results. Further information on this link
The goal of this module is for the student to deepen their knowledge in programming techniques, including advanced object orientation, as well as some of the more fundamental data structures and algorithms. The programming language the module will be based on is Java, although the acquired knowledge can be applied to other programming languages as well. To achieve this goal, the student needs to acquire the following learning outcomes specified in relation to generic learning outcomes of the qualification specified in the order CIN 352/2009 (PO: 1.2 and 2.7) and in the ABET criteria for this grade (PO: a), and skill assessment (CB1, CB2, CG3, CG11 y ECRT 7) 1. Design and development of applications using the Java programming (CIN: 1.2, 2.7, PO: a) a. Knowledge. Interpret, explain and exemplifly: i. The elements of object orientation ii. The concept of recursion iii. The fundamentals of data structures, such as lists, stacks, queues, deques and trees iv. Different algorithms processing data structures b. Specific abilities: i. Program object oriented applications ii. Represent, design and implement recursive algorithms iii. Implement algorithms and use linear data structures (linked lists, stacks, queues, deques, trees,etc) iv. Decide which data structures fit better to given problems, and reuse or design appropriate algorithms for solving specific problems c. Attitudes. A critical attitude towards: i. The suitability of different data structures and algorithms for specific problems ii. The use of the bibliography and other information resources for increasing his/her knowledge in other topics related to the subject 2. Use of an application environment that provides facilities for software development. a. Be able to create, compile and run a java program b. Be able to interpret and eliminate error messages and warnings shown by the compiler
Description of contents: programme
The syllabus of this module is divided into five modules: 1. Object Based programming 1.1. Definitions: Classes and objects 1.2. Composition of classes 1.3. Constructors 1.4. Shadowing 1.5. Modifiers 2. Object Oriented Programming 2.1. Inheritance 2.2. Overwriting and overloading 2.3. Casting 2.4. Abstract classes and interfaces 2.5. Multiple inheritance and polymorphism 3. Recursion 3.1. Definitions 3.2. Types (linear, non linear, mutual) 3.3. Recursion vs. iteration 3.4. Implementation and execution examples 4. Data structures, algorithms and implementation samples 4.1 Linked Lists and Double Linked Lists 4.2 Stacks 4.3 Queues (simple, double and priority queues) 4.4 Tress (n-ary tress, binary trees, binary search trees)
Learning activities and methodology
The teaching methodology of this course is based in the active integration of the student in the teaching activity and in the application of the principles of continuous evaluation. The course is divided into units, where each unit consists of lectures in large groups and lab sessions in small groups. All the necessary information and material will be available from the web site of the course. The student participation in the class activities (questions, problem-solving in groups) will be positively taken into account. The lab scripts with the exercises and programs to be carried in the lab are also available in advance. Additionally to the lectures and lab sessions, the web page proposes some homework activities. 1. Lecture sessions (theory, exercises and questions). In these classes the students will be introduced to the educational contents they should learn. In order to facilitate the understanding, the students will be provided with the class notes and basic reference books. (PO: a) 2. Lab sessions (Problem solving). In these classes in computer labs, the students will analyze and develop programs applying the different concepts taught in the lectures (PO: a,k) 3. Personal work: Self-study to understand the theoretical concepts and how to apply them, homework, to solve exercises (PO: a) 4. Exams (PO: a): Exercises to be solved by the students to demonstrate the knowledge and the required abilities acquired during the course. a) Mid-term evaluations b) Final exam 5. Tutoring (PO:a) according to current regulations
Assessment System
  • % end-of-term-examination 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50
Basic Bibliography
  • Mark A. Weiss. Data Structures and Problem Solving Using Java. Addison-Wesley.
  • Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in Java. John Wiley & Sons, Inc..

The course syllabus and the academic weekly planning may change due academic events or other reasons.