Degree in Design and Creation of Interactive Products La Salle Campus Barcelona

Bachelor in Design and Creation of Interactive Products - Minor in Video Games

Programming for Interactive Environments

Description: 
Object-oriented programming is one of the core paradigms of modern software development. This course aims to introduce and consolidate the fundamental principles of this paradigm, using a current programming language widely employed in real-world environments. Special emphasis is placed on the software design phase and on the ability to model systems effectively using UML. It is assumed that students already possess solid knowledge of the imperative/procedural paradigm, enabling them to understand the functioning of a new object-oriented language. Finally, since a significant portion of software development is carried out in teams, the course also promotes basic competencies in collaborative work and the use of professional development environments.
Type Subject
Primer - Obligatoria
Semester
Second
Course
1
Credits
6.00

Titular Professors

Previous Knowledge

Basic knowledge of imperative and procedural programming (variables, control structures, functions, and basic data handling). It is recommended to have completed Programming Fundamentals.

Objectives

Students acquire the following knowledge and skills:

1. Understand the fundamentals of object-oriented programming and apply them through a modern programming language.
2. Design and structure software applications based on specific requirements, using UML and basic design principles.
3. Properly use an integrated development environment (IDE) and apply good programming practices.
4. Develop solutions collaboratively, integrating teamwork methodologies in software projects.

Contents

1. Introduction and fundamentals of object-oriented programming.
2. Object-oriented analysis, design, and implementation.
3. Inheritance, polymorphism, abstract classes, and interfaces.
4. Modular design and abstract data types.
5. Dynamic memory management and object handling.
6. Linear data structures applied to software development.
7. Exception handling in object-oriented applications.
8. Introduction to design patterns.
9. Introduction to concurrency and multithreading programming.
10. Modeling tools and techniques: introduction to UML and class diagrams.
11. Use of development environments (IDEs) and common tools in the programming cycle.

Methodology

The teaching methodology combines theoretical instruction with practical activities aimed at reinforcing the concepts covered. Lectures introduce the fundamentals of OOP and UML design, while guided exercises and practical sessions allow students to apply these concepts progressively.

The course is structured into two phases:

- Phase 1: acquisition of the basic concepts of the object-oriented paradigm through exercises and guided practice.
- Phase 2: development of an applied project, where students integrate and consolidate the acquired knowledge through a project-based learning approach.

Active participation, critical thinking, and collaboration among students are encouraged, reflecting common processes in real software development.

Evaluation

Assessment includes continuous evaluation activities, practical exercises, and a final written exam. Students also complete a practical project applying the main contents of the course.

Evaluation Criteria

- Project (40%): Development of a group project during the final weeks of the course.
- Exercises (30%): Continuous assessment exercises completed throughout the semester, prior to the start of the project.
- Exam (10%): Final exam assessing the knowledge acquired and the project.
- Portfolio (5%): Document prepared at the end of the semester showcasing the most relevant tasks completed.
- Self-Assessment (5%): Peer-to-peer evaluation carried out at the end of the project.
- Oral Presentation (5%): Final interview conducted by the teaching staff with each group. The grade is individual.
- Participation (5%): Active participation of the student throughout the semester.

The assessment will consider mastery of OOP and UML concepts, the quality of the code and the project, proper application of design principles, the ability to solve theoretical and practical exercises, and the quality of the documentation delivered.

Basic Bibliography

- Deitel & Deitel. Java: How to Program. Pearson.
- Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software (introductory chapters).
- Course materials and documents provided by the teaching staff.

Additional Material

Additional resources, tutorials, extra exercises, and code examples available on the course's online platform.