Checking date: 04/06/2021


Course: 2021/2022

Object oriented programming
(15995)
Study: Bachelor in Computer Science and Engineering (218)


Coordinating teacher: VALLS FERRAN, JOSE MARIA

Department assigned to the subject: Department of Computer Science and Engineering

Type: Electives
ECTS Credits: 6.0 ECTS

Course:
Semester:




Requirements (Subjects that are assumed to be known)
Programming, Algorithms and Data Structures
Objectives
Learning outcomes: R1. Knowledge and understanding: Having basic knowledge and understanding of the scientific and technological foundations of Computer Engineering, as well as specific knowledge of computer science, computer engineering and information systems. R2 Engineering Analysis: To be able to identify Computer Engineering problems, recognize their specifications, establish different resolution methods and select the most appropriate for your solution, taking into account social limitations, applicable in each case. R5 Engineering Applications: Graduates will be able to apply their knowledge and understanding to solve problems, conduct research and design devices or processes in the field of Computer Engineering in accordance with criteria of cost, quality, safety, efficiency, respect for the environment and ethical implications. These skills include the knowledge, use, and limitations of computer systems, computer engineering, processes, computer architectures, computational models, equipment, practical work, technical bibliography and information sources. Basic and general competences CB2. That students know how to apply that knowledge to their work or professional vocation and possess the skills which are usually demonstrated by elaborating and defending their arguments and resolving problems in their area of study; CB3. Students should be able to compile and interpret relevant information (normally within their area of study) for issuing opinions which include a reflection on relevant themes of a social, scientific or ethical nature. CB4. That students are able to transmit information, ideas, problems and solutions to both a specialised and non-specialist public; CB5. That students have developed those learning skills required to undertake further studies with a considerable degree of autonomy. CG3. To be able to evaluate different possible solutions from a technical, economical and professional perspective and respect to regulations and laws in force. Specific Competences: CECRI1. Ability to design, develop, select and evaluate applications and computer systems, assuring its reliability, security and quality, according the ethical principles and the regulations and laws in force CECRI6: Knowledge and application of the basic algorithmic procedures of IT to design solutions to problems, analizing the suitability and complexity of the proposed algorithms CECRI8: Capacity to analize, design, build and maintain applications in a robust, secure and efficient way selecting the most adequate paradigm and programming languages
Skills and learning outcomes
Description of contents: programme
Unit 1. Object Oriented Programming Introduction. Modeling 1.1 Introduction 1.2 Comparing with other programming paradigms 1.3 OO Modeling Unit 2. Classes and Objetcs in Java. Inheritance and polymorfism 2.1 Composition and inheritance 2.2 Abstract classes 2.3 Multiple inheritance. Interfaces 2.4 Polymorphism Unit 3. Exceptions , utility classes and packages. Input / Output 3.1 Exceptions 3.2 Utility classes 3.3 Documentation and packages 3.4 I/O. Files in Java Unit 4. Advanced Algorithms 4.1 Computational complexity 4.2 Recursive algorithms 4.3 Search algorithms 4.4 Advanced sorting algorithms 4.5 Complex algorithms design with OO Unit 5. Design Patterns. Other OO languages 5.1 Introduction 5.2 Design patterns catalog 5.3 Other OO languages
Learning activities and methodology
- Theory. The course will be given through lectures to teach the basic concepts of Object Oriented Programming (OOP). . Active participation of students and discussion will be encouraged. - Practical exercises and computer sessions. Lectures will be complemented with practical sessions in computer rooms where practical exercises will be done, allowing to apply the theoretical knowledge.
Assessment System
  • % end-of-term-examination 60
  • % of continuous assessment (assigments, laboratory, practicals...) 40
Calendar of Continuous assessment
Basic Bibliography
  • Bruce Eckel. Thinking in Java. Prentice Hall . 2006
Additional Bibliography
  • Brassard, Giles. Fundamentals of Algorithmics. Prentice hall international. 1997

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