General information


Subject type: Mandatory

Coordinator: Adso Fernández Baena

Trimester: Second term

Credits: 4

Teaching staff: 

Samuel Jarque Abizanda

Teaching languages


Some materials will be provided in English.

Skills


Specific skills
  • E6. Develop video games in high-level programming languages ​​in graphics engines based on specifications.

General competencies
  • G3. Gather and interpret relevant data (usually within their area of ​​study) to make judgments that include reflection on relevant social, scientific, or ethical issues.

  • G5. Develop the learning skills needed to undertake further studies with a high degree of autonomy.

Transversal competences
  • T1. Communicate in a third language, preferably English, with an appropriate level of oral and written communication and in accordance with the needs of graduates.

Description


The subject Programming I supposes the first approach to the design of algorithms using the bases of the programming oriented to objects in the frame of the matter of Development. Problems of a certain complexity are worked on, both to design new algorithms and to properly test and debug implemented algorithms. The subject consists of theoretical sessions and practice sessions. In order to achieve the knowledge of the subject, three practices are evaluated on the one hand and the theoretical knowledge individually on the other.

This subject has methodological and digital resources to make possible its continuity in non-contact mode in the case of being necessary for reasons related to the Covid-19. In this way, the achievement of the same knowledge and skills that are specified in this teaching plan will be ensured.

The Tecnocampus will make available to teachers and students the digital tools needed to carry out the course, as well as guides and recommendations that facilitate adaptation to the non-contact mode.

Learning outcomes


At the end of the course students must be able to:

E6.1. Design the software architecture of a video game according to specifications.

Working methodology


The subject uses the following work methodologies:

Master class, video capsules, problem solving, small group laboratory and collaborative learning, and non-contact tutorials.

Contents


Topic 1: Introduction and general concepts of object-oriented programming (OOP)

1.1. What is OOP?

1.2. Structured programming vs. OOP

1.3. Why use OOP and its benefits

1.4. Characteristics of the OOP

1.5. Definition of object and class

1.6. Elements of a class

Topic 2: Functional decomposition and top-down design

2.1. Decomposition of problems into subproblems

2.2. Flowcharts

2.3. Route vs search

2.4. Passing parameters: input, output, reference and value

Topic 3: Basic concepts of object-oriented programming

3.1. Object attributes, class attributes, and constants

3.2. Builders and instantiate objects

3.3. Class one methods and overload

3.4. Unified Modeling Language (UML) diagrams

3.5. Keyword "this"

3.6. Classes vs static classes

3.7. Exception handling and debugging within a class

3.8. Operators

Topic 4: Inheritance, interfaces and polymorphism (class hierarchy)

4.1. Introduction, definition of inheritance and examples

4.2. Creation of base and derivative classes

4.3. "Sealed" and "abstract" classes

4.4. Interfaces

4.5. Polymorphism

Topic 5: Data structures

5.1. Dynamic lists

5.2. Sorted lists (Key / value)

5.3. Queues (FIFO) and stacks (LIFO)

5.4. Hash tables

5.5. Graphs

Learning activities


In order to gather evidence of the achievement of the expected learning outcomes, the following evaluative activities will be carried out (related to all the common competences):

A1. Laboratory practices 1: Work with matrices and top-down analysis (Evidence of E6.1 learning outcome)

In this practice the student will have to apply the concepts explained in the theoretical classes on topics 1 and 2, more specifically, the functional decomposition and descending design, in addition to the difference between route and search, it will be necessary to design the flow chart. of the game. He will also apply the concepts explained in the introductory theoretical classes on object orientation.

The activity will be done in pairs using a Git repository with an initial project with classes created where you will need to fill in part of the code. Non-recoverable activity.

A2. Laboratory practice 2: Implement classes and work with objects (Evidence of E6.1 learning outcome)

In this practice the student will have to apply the concepts explained in the theoretical classes on the programming oriented to objects, more specifically, the subjects 2 and 3 of the theoretical syllabus. In addition the student will use C # classes for reading and writing files saved on the computer's hard drive. The student will have to follow a UML diagram for the creation of the different classes and will have to design a flow diagram of the game.

The activity will be done in pairs using a Git repository with an initial project where there will be an initial code and in addition, new classes will need to be added. Non-recoverable activity.

A3. Laboratory practices 3: Concepts of inheritance (Evidence of E6.1 learning outcome)

In this third internship of the course, the student will have to apply the concepts of inheritance, interfaces and polymorphism (class hierarchy) explained in topics 4 and 5 of the course. The student will need to design a UML diagram of the classes used and a flow chart of the game.

The activity will be done in pairs using a Git repository with an initial project where there will be an initial code and in addition, new classes will need to be added. Non-recoverable activity.

A4. Exercises in class: Theoretical questionnaires (Evidence of all learning outcomes)

At the beginning of some classes there will be several individual tests of short questions of the theoretical concepts worked on. Non-recoverable activity.

A5. Exercises at home: Short practical exercises (Evidence of all learning outcomes)

Various practical exercises in the virtual classroom, to be done in pairs, of the theoretical concepts worked on. Non-recoverable activity.

A6. Final practical exam (Evidence of all learning outcomes)

Individual practical exam based on an initial project, it will be necessary to solve exercises or problems of the theoretical and practical concepts of the whole subject.

General criteria of the activities:

  • The teacher will present a statement for each activity and the evaluation and / or rubric criteria.
  • The teacher will inform of the dates and format of the delivery of the activity (will have to realize the corresponding electronic delivery of the practice together with the pertinent explanations of the same).

Evaluation system


The grade of each student will be calculated following the following percentages:

A1. Laboratory practices 1: Work with matrices and top-down analysis 12%

A2. Laboratory practice 2: Implement classes and work with objects 12%

A3. Laboratory practices 3: Concepts of inheritance 12%

A4. Exercises in class: Theoretical questionnaires 5%

A5. Exercises at home: Short practical exercises 9%

A6. Final practical exam 50%

Final grade = A1 · 0,12 + A2 · 0,12 + A3 · 0,12 + A4 · 0,05 + A5 · 0,09 + A6 · 0.50

Considerations:

  • It is necessary to obtain a mark higher or equal to 5 in the final exam A6 to pass the subject.
  • An activity not delivered or delivered late and without justification (court summons or medical matter) counts as a 0. 
  • It is optional for teachers to accept or not deliveries outside the deadlines indicated for activities A1, A2 and A3, and always before the final exam. In the event that these late deliveries are accepted, it is up to the teacher to decide whether to apply a penalty and the amount thereof.
  • It is the responsibility of the student to prevent plagiarism in all its forms. In the case of detecting a plagiarism, regardless of its scope, in some activity it will correspond to have a note of 0. In addition, the professor will communicate to the Head of Studies the situation so that measures applicable in matter of sanctioning regime are taken. .

Recovery:

  • Only students who take the final exam and who do not pass the minimum grade (5) in the final grade can take the exam.
  • Activities A1, A2, A3, A4 and A5 cannot be recovered.
  • The mark of the resit exam replaces only the mark of activity A6.

Bibliography


Basic

Clark, Dan (2011) Beginning C # Object-Oriented Programming. Apress.

Fagerberg, Jonas (2015) C # for Beginners: The Tactical Guidebook: Learn Csharp by Coding. CreateSpace Independent Publishing Platform.

Meyer, Bertrand (1997) Object-Oriented Software Construction. Prentice Hall, second edition.

Spanish version: Construction of object-oriented software, Prentice Hall Iberia, 1999.

Chaudhary, Harry H. (2014) C # Programming: Step By Step Beginner’s To Experts Edition. Createspace LLC USA.