Academic management

University of Oviedo

Uniovi.es | Home | Search | Site Map

| |

Bachelor´s Degree in Informatics Engineering in Information Technology
GIITIN01-1-005
Introduction to Programming
General description and schedule Teaching Guide

Coordinator/s:

JORGE DIEZ PELAEZ
jdiezuniovi.es

Faculty:

Rubén Muñiz Sánchez
rubenmsuniovi.es
(English Group)
OSCAR LUACES RODRIGUEZ
oluacesuniovi.es
JORGE DIEZ PELAEZ
jdiezuniovi.es
Pablo González González
gonzalezgpablouniovi.es
JUAN JOSE DEL COZ VELASCO
juanjouniovi.es
Guillermo Facundo Colunga
facundoguillermouniovi.es
(English Group)

Contextualization:

The subject Introduction to Programming (IP) compose, along with other subjects: Computer Science Fundamentals, Programming Methodology, Data Structures, Programming Technologies and Paradigms, Algorithms and Concurrent and Parallel Programming, the Programming building block, integrated into the Application Software module in addition to the subjects known as Software Engineering and Smart Applications. Given its fundamental nature, the contents and competences will be used in most of the remaining subjects of the educational offer, as a tool or as a source of examples and applications. It will provide support to the subjects from the Application Software and IT Systems, Services and Career modules as programming will be a fundamental task in every single subject. The study of a programming language since the very beginning is mandatory for a future IT graduate. In this regard, while programming fundamentals are explained, they will be put into practice proposing application examples to be designed, implemented, tested and debugged by the students.

The subject is closely related to Computer Science Fundamentals and Programming Methodology. In particular, it is positioned between them in respect of the development of programming competences by the student. In this way, Introduction to Programming reinforces some of the competences acquired in Computer Science Fundamentals, specifically:

  • To understand the idea of the algorithm and abstraction process of a programming problem.
  • Identify the development process of a program and its place in the general process of Software Engineering.
  • Identify the basic data structures provided by a structured programming language.
  • Handle the fundamental control structures of a structured programming language.
  • Perform the abstraction a given operation.
  • Design small applications to solve simple problems in collaborative working environments.

In addition, the specific competences of this subject, enumerated in Chapter 4, will be reinforced in Programming Methodology.

Requirements:

To face this subject it is advisable that the student will be familiar with some basic concepts of logic and mathematics. In any case, the training provided by the technological baccalaureate will be enough to follow the subject.

Competences and learning results:

A student is expected to acquire the following general competences of the Degree in Computer Engineering in Information and Technologies:

Competence

Description

GTR1

Ability to solve problems in a given context.

GTR2

Abstraction ability: to be able to define and use models from real situations.

GTR3

Ability to work individually.

GTR4

Ability to plan and organise one’s personal work.

GTR7

To have the learning abilities required to conduct additional training or improve the training with a certain degree of autonomy.

GTR8

To be motivated by quality and continuous improvement and act with rigor in the professional development.

 

It goes without saying that most of the previously enumerated competences will be acquired in combination with other subjects of the Degree.

The specific competences to be acquired in Introduction to Programming and the learning results are the following:

Competence

Learning result

EFB5.3

Knowledge of programming fundamentals of computer systems and its application to solve engineering problems.

PR21

Basic understanding of software development following the OO paradigm.

EFB5.3

Knowledge of programming fundamentals of computer systems and its application to solve engineering problems.

PR22

To be able to use objects and classes from a standard library.

EFB5.3

Knowledge of programming fundamentals of computer systems and its application to solve engineering problems.

PR23

Define objects and classes to match a given specification.

EFB5.3

Knowledge of programming fundamentals of computer systems and its application to solve engineering problems.

PR24

Choose the right control structure to solve a given problem.

EFB5.3

Knowledge of programming fundamentals of computer systems and its application to solve engineering problems.

PR25

Develop a simple application using the OO paradigm to comply with a given specification.

 

Contents:

The subject will be divided into several topics, detailed as follows:

 

Topic 1. Basic programming concepts

1.1. Programming

1.2. Programming paradigms

1.3. Programming languages: definition, syntax and semantics.

1.4. First example of a program in JAVA

1.5. Basic properties of any program

1.6. Lifecycle of a program: analysis and design

1.7. Formal specification of a program

 

Topic 2. Basic data types

2.1. Variables

2.2. Data types

2.3. Integer data types

2.4. Chars

2.5. Identifiers

2.6. Formatted I/O

2.7. Real data types

2.8. Constants

2.9. Assignment

2.10. Expressions: precedence y associativity

2.11. Type casting

 

Topic 3. Structured programming

3.1. Introduction

3.2. If sentence

3.3. Conditionals: boolean data type; logic, relational and comparison operators

3.4. If-else construction

3.5. Loops

3.6. While loop

3.7. For loop

3.8. Common iterative schemes: sequence processing and search operations

3.9. Scope and life cycle of a variable

 

Topic 4. Arrays

4.1. Introduction

4.2. Arrays: what are they? Declaration, definition and initialization

4.3. Memory representation

4.4. Array use: [] operator, length attribute

5.5. Array properties

5.6. Simple algorithms with arrays

5.7. Object arrays

5.8. Strings: the String class

5.9. Matrices and multidimensional arrays: representation and use

 

Tema 5. Classes and objects

5.1. Introduction

5.2. Notion of class and object

5.3. Attributes

5.4. Methods

5.5. Creation and use of objects

5.6. Encapsulation of information: public and private access

5.7 Memory representation of classes and objects

5.8 Static elements

5.9. Documentation: Javadoc

 

Methodology and work plan:

The subject requires a total of 150 hours including face to face and home activities, arranged as follows:

 

  1. In class work (60 hours)
    1. Theory classes (21 hours)
    2. Classroom practical sessions (7 hours)
    3. Computer lab practical sessions (25 hours)
    4. Group tutor sessions (2 hours)
    5. Evaluation sessions (5 hours)

 

  1. Personal work (90 hours)
    1. Group work (32 hours)
    2. Individual work (31 hours)
    3. Personalised tutor sessions (1 hour)
    4. Study (26 hours)

 

 

 

 

 

 

 

 

A detailed working plan for each of the topics of the subject is shown in the following table:

 

 

IN CLASS WORK

PERSONAL WORK

Topics

Total amount of hours

Theory class

Classroom practical sessions / seminars / workshops

Computer lab practical sessions

Group tutor sessions

Evaluation sessions

Total

Group work

Individual work

Personalised tutor sessions

   Study

  Total

T1 Basic programming concepts

 

1

 

1

 

 

2

 

1

 

1

2

T2 Basic data types

 

2.5

 

3

 

0.5

6

3

3

 

3

9

T3 Structured programming

 

6

2

7

1

0.5

16.5

6

6

1

5

18

T4 Arrays

 

3.5

2

5

 

1.5

12

5

5

 

4

14

T5 Classes and objects

 

8

3

9

1

2.5

23.5

18

16

 

13

47

Total

 

21

7

25

2

5

60

32

31

1

26

90

 

 

TYPE

Hours

%

Totals

In class

Theory classes

21

14.00

60 (40%)

Classroom practical sessions / seminars / workshops

7

4.67

Computer lab practical sessions

25

16.67

Group tutor sessions

2

1.33

Evaluation sessions

5

3.33

Personal work

Group work

32

21.33

 

90 (60%)

Individual work

31

20.66

Personalised tutor sessions

1

0.66

Study

26

17.33

 

Total

150

 

 

 

An essential part of the methodology is deeply linked with the idea of academic tutoring. The lecturers of the subject will be available to solve the questions and doubts expressed by the students, either face to face or using the virtual resources: the Forum available in the Virtual Campus’ space of the subject and e-mail (the electronic addresses of the lecturers are available at the beginning of this document). During the group tutor sessions, the lecturer will initially answer the doubts introduced by the students. When there are no issues to solve, the lecturer will propose additional practical exercises to be discussed by the group.

Practice sessions will consist of the solving (with a computer) of exercises proposed by the lecturers, where the students will receive the required assistance from the teaching staff to get the right solution and achieve a correct understanding of the topics explained in the theory classes.

Important remark: exceptionally and if health conditions require it, online teaching activities might be included. If that were the case, students will be properly notified of the changes.

Assessment of students learning:

This section describes in detail the evaluation procedure of the subject in the different calls and modalities. As shown below, there are certain minimum requirements that must be met in order to pass the course. If a student does not meet these requirements in the different evaluation phases, their final grade will be calculated as the minimum between 4 and the grade obtained by applying the weightings explained below for each call.

 

7.1 Ordinary evaluation session

 

The final mark for this session will be the average of the two main parts: theory (written exam) and practice (continuous evaluation). In total there will be three evaluable activities described as follows:

 

A) Continuous evaluation (50%). The continuous evaluation will be divided into different activities to measure the individual work of a student and the capacity to work in group.

 

Individual work (35%):

 

  1. Practical exams: During the normal development of the course, the students will take a number of small tests, both in the computer lab and in the classroom, aimed at solving exercises proposed by the lecturer and evaluated at a later stage.

 

Group work (15%):

 

  1. Group work: Each student will be part of a group that will have to present a joint project before the theory exam in January. The project will consist in the development of a bigger program than the ones typically implemented during the practice sessions, but solved using the same techniques. The goal of the work is to make the students of the group collaborate and implement a real program that requires the use of the methodologies and techniques studied in the subject.

 

B) Theory (50%)

 

  1. Final exam. The subject will have a final theory exam that will take place in January, according to the examination timetable published by the School.

 

Specifically, the final weight of each of the three evaluable activities will be the following:

 

  • Practical exam: 35%
  • Group work: 15%
  • Final theory exam: 50%

 

Remark: In order to pass the subject it is necessary to get a minimum of 4 out 10 points in the Final Theory Exam. Failure to do so will make necessary to retake it. Additionally, any not submitted activity will contribute with a zero to the final mark.

 

 

7.1.1 Differentiated assessment

 

Those students opting for a differentiated assessment, motivated by the difficulty to attend regularly the theory / practice sessions, will get a final mark calculated as the weighted average of the following evaluation activities:

 

  • Theory exam: 50%
  • Group work: 15%
  • Practical exam: 35%

 

The first two activities match what was described for the ordinary evaluation session (activities 3 and 2, respectively), while the practical exam will consist in a test developed on a computer where the student will have to implement small programs like the ones done in the practical sessions. As in the ordinary evaluation session case, it is necessary to achieve a minimum score of 4 points in the theory exam.

 

 

7.2 Retake examination sessions

 

The final mark of the retake examination session will be the combination of the following evaluation activities:

  • Theory exam: 50%
  • Practical exam: 50%

 

To pass the subject, a student must obtain a grade equal to or greater than 4 points out of 10 in both exams. Otherwise, the grade will be Fail. Students who have obtained a grade equal to or greater than 5 during the ordinary call in the theoretical part (January exam) or in the practical part (combining the marks of the practical exams and the group work) will only have to retake the part they failed. Students who have opted for the differentiated evaluation assessment will have to go through the same process.

 

Important remark: exceptionally and if health conditions require it, online teaching activities might be included. If that were the case, students will be properly notified of the changes.

Resources, bibliography and documentation:

  • Harvey M. Deitel. Cómo programar en Java. Pearson, 5ª edición, 2004.
  • Bruce Eckel. Thinking in Java. Prentice Hall PTR, Upper Saddle River, NJ, USA, 4th edition, 2005.
  • Ken Arnold, James Gosling, and David Holmes. The Java programming language. Prentice-Hall, 4th edition, 2005.
  • David Arnow and Gerald Weiss. Introducción a la programación con Java. Addison-Wesley, 2000.
  • Judy M. Bishop. Java: fundamentos de programación. Addison-Wesley, 2ª edición, 1999.
  • James Cohoon and Jack Davidson. Programación en Java 5.0. McGraw-Hill, 2006.
  • James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java(TM) Language Specification. Addison-Wesley Professional, 3rd edition, 2005.
  • Bertrand Meyer. Object-oriented software construction (2nd ed.). Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1997.
  • http://java.sun.com/docs/books/tutorial/java/index.html.