Description
Object-Oriented Programming (OOP) is one of the most popular paradigms nowadays, and Java is one of the most used languages in the industry. The goal is to provide the student with the tools needed to plan solutions following an object-oriented pattern, as well as to implement them in the Java language. This subject will serve as the basis for other subjects where object-oriented languages are used, and for the development of mobile applications, as Java is the most used language when implementing Android applications.
Type Subject
Tercer - Obligatoria
Semester
First
Course
2
Credits
6.00

Titular Professors

Previous Knowledge
Objectives

Objectives of this subject are:

O.01 Learn to design and implement solutions using OOP.
O.02 Have a solid programming base using the Java language.
O.03 Be able to structure, design, program and coordinate team-developed systems.

Learning Outcomes of this subject are:

LO.01 Program in a structured and modular way.
LO.02 Know the foundations of object-oriented programming.
LO.03 Develop software according to the object-oriented paradigm.
LO.04 Apply software design patters to achieve high cohesion and low coupling.
LO.05 Learn the basics of the UML modelling language.
LO.06 Know and apply the foundations of concurrency.

Contents

• Introduction and foundations of object-oriented programming.
• Object-oriented analysis and design.
• Object-oriented implementation.
• Inheritance, polymorphism, abstract classes and interfaces.
• Dynamic memory.
• Modular design.
• Abstract data types.
• Lineal data structures.
• Exception handling.
• Software design patterns.
• Introduction to concurrence.

Methodology
Evaluation

If any of the previously described tasks is failed, anything will be recoverable during the July second call, by the following mechanisms and regulations:

• Project (40%): It will be re-delivered, in the same group.
• Exercises (30%): Any failed exercises will be re-delivered.
• Exam (10%): A recovery exam will be held.
• Portfolio (5%): It will be re-delivered.
• Self-evaluation (5%): If the project’s self-evaluation is failed, the teacher will have a meeting with the related group or student, however necessary.
• Oral presentation (5%): If the project interview is failed even after passing the project, the teacher will decide what has to be re-delivered and how, depending on the interview circumstances.
• Participation (5%): If this part is failed, it won’t count towards the second call grade.

Evaluation Criteria

Exercises and project regulation:

Any practical activity developed during the subject will have its specifications and requirements described in its corresponding statement. If those aren’t satisfied, the final grade won’t be greater than 4 under any circumstance.

The delivery due dates won’t be movable, but will have an extra 5 day period where students will be able to deliver the task anyways, with a one point penalization for each delayed day.

I fan exercise or the project is delivered during the second call, its maximum grade will be 7. July deliveries won’t have any extra delivery period after the due date.

Copies regulation:

Regarding the copies regulation (which you can find at https://www.salleurl.edu/en/copies-regulation) the different kinds of academic activities have the following importance:

• Project: Highly important
• Exercises: Moderately important
• Exam: Highly important
• Portfolio: Moderately important
• Not applicable to the rest

Basic Bibliography

[1] C.S.Horstman and G.Cornell, Core Java 2, Vol I. Fundamentos, Septima edición, Prentice Hall, 2006.
[2] K.Arnold, JGosling and D.Holmes, The Java programming language, Boston : Addison-Wesley, 2000
[3] M.Fowler, UML Distilled Third Edition. A brief guide to the standard object modeling language, Addison-Wesley, 2003.
[4] R.Miles and K.Hamilton, Learning UML 2.0, O'Reilly Media Inc, 2006.
[5] C.Larman, Applying UML and patterns : an introduction to object-oriented analysis and design, Prentice Hall PTR, 1998
[6] E.Gamma, R.Helm, R.Johnson and J.Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Longman Publishing Co., 1995
[7] J.Cooper, Java Design Patterns, Addison Wesley, 2000
[8] D.Lea, Concurrent programming in Java: design principles and patterns, Addison-Wesley, 2000

Additional Material

[9] M.Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 2018
[10] R.Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008
[11] K.Sierra and B.Bates, Head First Java, O'Reilly Media, 2005
[12] E.Freeman, B.Bates, K.Sierra and E.Robson, Head First Design Patterns: A Brain-Friendly Guide, O'Reilly Media, 2004