What are you looking for?
Some materials will be provided in English.
E6. Develop video games in high-level programming languages in graphics engines based on specifications.
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.
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.
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.
At the end of the course students must be able to:
E6.1. Design the software architecture of a video game according to specifications.
The subject uses the following work methodologies:
Master class, video capsules, problem solving, small group laboratory and collaborative learning, and non-contact tutorials.
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
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 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:
Recovery:
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.