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 (https://www.boe.es/diario_boe/txt.php?id=BOE-A-2009-2894). 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". In addition, this subject allows the development of the following competences.
CB1 - That students have demonstrated knowledge and understanding in an area of study that builds on the foundation of general secondary education, and is usually at a level that, while relying on advanced textbooks, also includes some aspects that involve knowledge from the cutting edge of their field of study.
CB2 - That students know how to apply their knowledge to their work in a professional manner and have the competencies that are usually demonstrated through the development and defense of arguments and problem solving within their field of study.
CG3 - Knowledge of basic and technological subject areas which enable acquisition of new methods and technologies, as well as endowing the technical engineer with the versatility necessary to adapt to any new situation (called CG2 in the Degree in Data Science and Engineering)
CG11 - Basic concepts on computer use and programming, operating systems, databases and IT programs with engineering applications (not included in the Degree in Data Science and Engineering, although it will also be addressed in the course).
ECRT7 - Knowledge and use of the fundamentals of programming in telecommunication networks, systems and services (not included in the Degree in Data Science and Engineering, although it will also be addressed in the course).
CE7 - Ability to assimilate basic concepts of programming and ability to perform programs oriented to data analysis (specific competency in theDegree in Data Science and Engineering, although it will also be addressed in the other degrees).
To address these general competencies, the following specific competencies have been defined.
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