Checking date: 13/03/2024

Course: 2024/2025

Systems Programming
Academic Program of Telecommunication Engineering via Bachelor in Telecommunication Technologies Engineering (Plan: 511 - Estudio: 252)

Coordinating teacher: ALARIO HOYOS, CARLOS

Department assigned to the subject: Telematic Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS


Requirements (Subjects that are assumed to be known)
Programming (1st course, 1st semester)
The goal of this course 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 that will be used in this course is Java, although the acquired knowledge can be applied to other programming languages as well. This course is taught in a coordinated manner between different degrees. In the case of degrees that enable the exercise of regulated professions, the order CIN/352/2009, of February 9, 2009, BOE of February 20, 2009 applies ( In any case, this course allows the development of the basic training competence mentioned in that order "Basic knowledge on the use and programming of computers, operating systems, databases and computer programs with application in engineering". 1.Design and development of applications using the Java programming language a.Knowledge. Interpret, explain and exemplify: 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
Skills and learning outcomes
Description of contents: programme
The syllabus of this module is divided into four 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, mutua) 3.3. Recursion vs. iteration 3.4. Implementation and execution examples 4. Data structures, algorithms and implementation samples 4.1 Linked Lists and Doubly Linked Lists. 4.2 Stacks 4.3 Queues (simple, double and priority queues) 4.4 Trees (n-ary trees, 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. 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. 3. Personal work: Self-study to understand the theoretical concepts and how to apply them, homework, to solve exercises. 4. Exams: 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. Office hours according to current regulations
Assessment System
  • % end-of-term-examination 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50

Calendar of Continuous assessment

Extraordinary call: regulations
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..
Recursos electrónicosElectronic Resources *
Additional Bibliography
  • Cutajar, J. Beginning Java Data Structures and Algorithms. Packt Publishing.
  • Parsons, D.. Foundational Java: Key Elements and Practical Programming. Springer Science & Business Media.
  • Weisfeld, M. The object-oriented thought process. Pearson Education.
Recursos electrónicosElectronic Resources *
Detailed subject contents or complementary information about assessment system of B.T.
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN

The course syllabus may change due academic events or other reasons.