Checking date: 20/01/2025


Course: 2024/2025

Programming
(13490)
Bachelor in Mobile and Space Communications Engineering (Study Plan 2019) (Plan: 442 - Estudio: 217)


Coordinating teacher: FRAGA VAZQUEZ, ANABEL

Department assigned to the subject: Computer Science and Engineering Department

Type: Basic Core
ECTS Credits: 6.0 ECTS

Course:
Semester:

Branch of knowledge: Engineering and Architecture



Requirements (Subjects that are assumed to be known)
None
Objectives
The goal of this course is to introduce basic programming techniques useful for telecommunication applications. The programming language is Java. However, the techniques taught in the course are generic, i.e. they apply to other programming languages as well. Upon successful completion of the course, the student will be able to: - Understand the fundamentals of the imperative programming - Understand the fundamentals of structured programming - Understand and manage language data types - Understand and manage the structures of flow control - Know Java syntax - Know program testing and debugging - Analyze and understand Java programs - Localize and fix syntax and functional errors - Analyze and understand algorithms written in pseudocode or in flow diagrams - Design and develop simple algorithms based on given prerequisites - Develop simple Java programs from flow diagrams, pseudocode or functional descriptions - Have knowledge of basic search and sorting algorithms - Design, develop and execute program test plans.
Learning Outcomes
CB1: Students have demonstrated possession and understanding of knowledge in an area of study that builds on the foundation of general secondary education, and is usually at a level that, while relying on advanced textbooks, also includes some aspects that involve knowledge from the cutting edge of their field of study. CB2: Students are able to apply their knowledge to their work or vocation in a professional manner and possess the competences usually demonstrated through the development and defence of arguments and problem solving within their field of study. CG3: Knowledge of basic and technological subject areas which enable acquisition of new methods and technologies, as well as endowing the technical engineer with the versatility necessary to adapt to any new situation. CG11: Basic concepts on computer use and programming, operating systems, databases and IT programs with engineering applications. RA1: Knowledge and Understanding. Knowledge and understanding of the general fundamentals of engineering, scientific and mathematical principles, as well as those of their branch or specialty, including some knowledge at the forefront of their field. RA5: Applications. Graduates will have the ability to apply their knowledge and understanding to solve problems, conduct research, and design engineering devices or processes. These skills include knowledge, use and limitations of materials, computer models, process engineering, equipment, practical work, technical literature and information sources. They must be aware  of all the implications of engineering practice: ethical, environmental, commercial and industrial.
Description of contents: programme
PART I: Programming fundamentals - Essentials of computer architecture - Programming languages - Compiling and running code - Elements of a program: data and algorithms - Basic programming tools: algorithms, flow diagrams, and pseudo code. - JAVA language. PART II: Structured programming - Primitive data types and operators - Flow control - Conditional sentences - Loops PART III: Introduction to program testing PART IV: Advanced concepts - The String class - Arrays - Input/output PART IV: Modular programming - Organizing code in methods - Information Exchange between functions: passing parameters
Learning activities and methodology
The teaching methodology includes: 1. Lectures presenting theoretical knowledge. Basic textbooks for both theory and problems will also be recommended, which will allow the students to complete and deepen the subjects in which they are most interested. 2. Practice in computer labs, during which the students will develop and analyze programs using the theoretical concepts taught in lectures. The assignments are developed in groups, in order to promote teamwork. 3. Problem solving both on paper and with the computer, targeting self-evaluation. 4. Individual practical assignments in computer labs based on the assignments developed in groups. 5. Sharing the problems solutions and joined correction in order to develop the capacity of analyzing and communicating information relevant to problem-solving. Additionally, this activity will promote the change of critical opinions between the professor and the students and among students. 6. Use of new e-learning technologies with a known platform (edX) where students will have the opportunity to reinforce their learning based on: Cross-evaluation, self-learning, and video formats to allow the students to gain more knowledge at any time they want.
Assessment System
  • % end-of-term-examination 30
  • % of continuous assessment (assigments, laboratory, practicals...) 70

Calendar of Continuous assessment


Extraordinary call: regulations
Basic Bibliography
  • Alfonso Jiménez Marín, Franciso Manuel Pérez Montes. Aprende a Programa con Java. Ediciones Paraninfo. 2016
  • BRUCE ECKEL. "Piensa en Java / Thinking in Java". Pearson Educación. Versión española: 2002 - 2ª Edición. Versión inglesa: 2007 - 4ª Edición.
  • C. T. Wu. Introduction to Object-Oriented Programming with Java 5th edition. McGraw-Hill, 2009.
  • Herbert Schildt. Java 9. ANAYA MULTIMEDIA. 2018
  • RUSSEL WINDER & GRAHAM ROBERTS. "Developing Java software". Wiley. 2006 - 3º Edición.
Recursos electrónicosElectronic Resources *
Additional Bibliography
  • Donald E. Knuth. The Art of Computer Programming. Addison-Wesley Educational Publishers Inc. 2011
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN


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