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.
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
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