Academic management

University of Oviedo

Uniovi.es | Home | Search | Site Map

| |

Bachelor´s Degree in Computer Science - Software Engineering
GIISOF01-1-007
Introduction to Programming/ Programming Fundamentals
General description and schedule Teaching Guide

Coordinator/s:

Miguel Riesco Albizu
albizuuniovi.es

Faculty:

Miguel Riesco Albizu
albizuuniovi.es
(English Group)
MARIA CANDIDA LUENGO DIEZ
candiuniovi.es
BERNARDO MARTIN GONZALEZ RODRIGUEZ
martinuniovi.es
(English Group)
MARIA ANGELES DIAZ FONDON
fondonuniovi.es

Contextualization:

This course is part of the Programming subject within the Core Training module, together with the subject Programming Methodology which is its natural continuation in the second semester. The subject Programming also comprises the following subjects: Data Structures, Programming Technologies and Paradigms, Algorithmics, Programming Languages Design, Entertainment and Videogames Software, Software for Mobile Devices and Robot Software.

This course is taught during the first semester of the academic year. It has got 6 ECTS credits, divided into 150 working hours; 60 of them are class hours and 90 correspond to personal work of the student.

This course will have 2 hours of lectures a week (up to 21 hours), one hour of seminars (up to 7 hours), 2 hours of laboratory practice (up to 28 hours) and 2 hours of group tutorials.

The general contents of the course are the following: Introduction to Analysis and Design in Software Engineering. Programming Basics. Introduction to Software Development Methodologies. Basic Programming Elements and Structures.

Requirements:

No specific prerequisites are needed.

Competences and learning results:

The competences the student must acquire in this course are part of the competences defined for the degree. In some cases a second level is provided when the competency to develop in this course belongs to a competency shared with other courses.

1- Specific competences

 

Bas.4

Basic knowledge of computer use and programming, operating systems, data bases and engineering software.

Bas.5

Knowledge of the structure, organization, operation and internetworking of computer systems, programming basics, and their application to solve engineering problems.

Com.7

Knowledge, design and efficient application of the more appropriate types and data structures for a given problem.

Com.8

Ability to analyze, design, build and maintain applications in a robust, safe and efficient way, choosing the more appropriate programming paradigm and language.

 2- General competences

 

CG3

Ability for abstraction.

CG5

Ability for the analysis, selection and application of basic and supporting software tools.

CG6

Information research, analysis and management to produce knowledge.

CG11

Ability for team work.

CG20

Creativity

CG22

Planning and organization ability.

CG25

Critical thinking.

CG26

Ability for autonomous learning and work.

CG28

Motivation for quality.

3- Learning Results

 

RA.P-1

Knowledge of the basic use of computers, programming, and engineering programs.

RA.P-2

To know the structure, organization and operation of systems, the fundamentals of programming and their application to solve engineering problems.

RA.P-3

Analyze, design, implement, select, evaluate and maintain computer applications and systems, assuring their reliability and quality by applying the theories, principles, methods and practices of software engineering. The most appropriate paradigm and programming language should be chosen considering limitations in cost, time, existence of previously developed systems, and the organization limitations themselves.

RA.P-4

Knowledge and application of the basic algorithmic procedures of the basic computer science technologies used to design solutions, analyzing the suitability and complexity of the proposed algorithms.

Contents:

Based on the aforementioned objectives the following contents are chosen:

  1. The object model
    • Objects.
    • Attributes.
    • Methods.
    • Classes.
  2. Fundamental elements in an object oriented programming language
    • Syntax and semantics.
    • Basic data types.
    • Constants and variables.
    • Assignment and expressions.
    • Control structures.
    • Input/Output.
  3. Fundamental data structures
    • Arrays.
    • Strings and string processing.
  4. Advanced elements in object oriented programming
    • Encapsulation and information hiding.
    • Class hierarchies.
  5. Methodologies and quality software development
    • Fundamental concepts on analysis and design.
    • Use of software modeling languages.
    • Documentation.
    • Debugging, testing and validation.

The main relations between contents and competences are shown in the following table:

 

Lesson

Specific competences

Transversal competences

Lesson 1

Bas5.3

 CG3,CG20

Lesson 2

Bas4.1, Bas5.3, Com7

CG3, CG6, CG26, CG20,CG28

Lesson 3

Bas4.1, Bas5.3, Com7

CG6, CG11, CG20,CG28

Lesson 4

Bas4.1, Bas5.3, Com7, Com8.1

CG3,CG26

Lesson 5

Bas4.1, Bas5.3, Com7, Com8.1

CG3, CG20, CG28, CG11

Methodology and work plan:

To carry out active learning and develop the competences that have been specified, in this course different types of activities are applied:

  • Theory: Traditional lectures, complemented when appropriate with the realization of online questionnaires carried out individually, with the discussion of the results, and with the proposal of small exercises to solve, either individually or in a team.
  • In-class Practice: Face-to-face classes where the problem-based learning method is fundamentally used. In each class, a series of exercises will be proposed to be carried out individually and/or in a group, with the subsequent discussion and sharing of the solutions.
  • Laboratory Practice: Face-to-face classes where the project-based learning method is mainly used. During the course, projects are gradually developed in a guided manner, proposing in each class the functionality to be implemented by the student and supervised by the teacher.

Exceptionally, if sanitary conditions so require, online teaching activities may be included. In such case, the student will be informed of the changes made.

The tables below summarize the contents that will be addressed, sorted by activity type, specifying the number of in-class and out-off-class hours.

ACTIVITIES

Hours

%

Totals

In Class work

Lectures

21

14

60

Classroom practices / Seminars / Workshops

7

4,7

Field/Computer/Laboratory/Language practice

28

18,7

Hospital/Clinical practice

 

 

Group tutorials

2

1,3

External practices

 

 

Evaluation sessions

2

1,3

Distance Learning work

Group work

9

6

90

Individual work

81

54

 

Total

150

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Assessment of students learning:

This course requires a prominent level of ongoing assessment and cooperative learning by means of tests in the lecture room, the seminars and the computer labs, which can be both individual and collective.

The evaluation includes:

  1. Theory mark: Exams to supervise the learning progress of the theoretical part of the course. These exams can include multiple-choice questions, short answer questions and/or long answer questions.
  2. Seminars mark: Student work to be developed during the course seminars.
  3. Laboratory mark: Continuous evaluation of assessments and projects in the classroom. During the evaluation of each project, the instructor will ask the student to introduce new features in the code or to modify and/or enhance the current ones.

At the end of this evaluation process the student will get the following preliminary mark:

Preliminary mark = 0.25 * Theory + 0.1 * Seminars + 0.65 * Laboratory.

Nevertheless, to approve the whole evaluation process, it is required that:

  1. Minimum attendance. A minimum attendance record of 80% in theory lectures, 80% in seminars and 80% in the laboratory.
  1. Minimum Score: The student must obtain at least 3 points (out of 10) in each evaluation activity. This includes each and everyone included in theory, seminars as well as the laboratory projects.

If all the requirements are accomplished, the final mark will be

Final mark = preliminary mark.

Otherwise, if the student participated in evaluations whose weight over the global score reaches at least its 50%, the final mark will be:

Final mark = Minimum (4, preliminary mark)

Automated plagiarism detection software might be used along the evaluation process. Both the plagiarist as well as the authors of the code will get a score of 0 points. As a result, they will lose their rights to participate in the continuous assessment process.

Those students that have not passed the continuous evaluation would be assessed the following way:

Ordinary Call

This evaluation is for only those students who achieved the minimum attendance requirement, got a preliminary mark >=3, done all the test (theory and lab) and submitted every single homework or project.

Laboratory Exam. The students will develop a project in the laboratory to be evaluated by the instructors.

The project will include the development of basic functionality (based on several different items) whose level of implementation, test and documentation must reach a 100% operational level to obtain the minimum score (5). The project will include the development of an advanced functionality whose level of implementation, test and documentation will determine a final score between 5 and 10.

The final grade corresponds to the grade of this examination.

Those students who approved the subject through the continuous assessment process but have decided to participate in this call, will lose the previous grade which will be replaced by the grade obtained in this exam.

Special and Differentiated Assessment Call

Laboratory Exam. The students will develop a project in the laboratory to be evaluated by the instructors.

The project will include the development of basic functionality (based on several different items) whose level of implementation, test and documentation must reach a 100% operational level to obtain the minimum score (5). The project will include the development of an advanced functionality whose level of implementation, test and documentation will determine a final score between 5 and 10.

Exceptionally, if a sanitary alert is declared, online evaluation activities could be included. In this event, the students will be informed about the changes applied.

Resources, bibliography and documentation:

Bibliographic references

  • Objects firsts with Java – A practical Introduction using BlueJ. David J. Barnes and Michael Kölins.Pearson Education; 3rd. edition.

Online references

All of the information, studying materials and resources used during the course will be available in the corresponding website at the Virtual Campus of the University to which every enrolled student will have access.