
Foundations of Programming
Code: 104337 ECTS Credits: 6| Degree | Type | Year |
|---|---|---|
| 2503758 Data Engineering | FB | 1 |
Contact
- Name:
- Roberto Benavente Vidal
- Email:
- robert.benavente@uab.cat
Teachers
- Ivan Erill Sagales
Teaching groups languages
You can view this information at the end of this document.
Prerequisites
Given that this is an introductory course, it is assumed that students do not have any prior knowledge of the subject.
However, it is advisable to have a basic knowledge of any platform (windows, mac or linux).
In face-to-face activities in the classroom, it is essential to have a laptop to carry out the assignments of the subject.
Objectives and Contextualisation
This subject has a general and introductory character to programming. The study of the methodological aspects of programming and the learning of a high level language will be deepened. Therefore, the general objectives proposed for the subject are the following:
- Understanding the life cycle of the software: analysis of the problem (understanding what is being asked), design (proposing a solution to the problem), implementation (coding in a programming language the chosen solution), and test (carrying out a test in a systematic way to ensure the correctness of the implemented solution).
- Providing the student with the ability to design algorithms for problem solving, introducing a rigorous and structured programming methodology in a progressive and systematic way (based on the technique of descending algorithm design).
- Introducing the student to a real programming language. It is intended that the student perceives the difference between the flexibility of the pseudo-algorithmic notation used in the first topics and the strict syntax of a real programming language in different aspects: lexical (valid words of the language), syntactic (rules to combine them) and semantic (meaning of them).
- Making the student familiar with developing programs following some norms of style tending to obtain high quality programs. These style rules include those that facilitate the comprehension of the code, such as the use of comments, the indentation of the code, the use of appropriate names for data, etc.
Competences
- Design efficient algorithmic solutions to computational problems, implement them in the form of robust software developments which are structured and easy to maintain, and verify their validity.
- Make a critical evaluation of work carried out.
- Plan and manage the available time and resources.
- Students must have and understand knowledge of an area of study built on the basis of general secondary education, and while it relies on some advanced textbooks it also includes some aspects coming from the forefront of its field of study.
Learning Outcomes
- Apply strategies for debugging, testing and correcting programmes.
- Apply the basic principles of computer structure and programming.
- Develop programmes that are well documented, using a good programming style.
- Implement medium-difficulty algorithmic problems in a programming language.
- Make a critical evaluation of work carried out.
- Plan and manage the available time and resources.
- Students must have and understand knowledge of an area of study built on the basis of general secondary education, and while it relies on some advanced textbooks it also includes some aspects coming from the forefront of its field of study.
Content
Unit 1: Introduction to the computer
History. Functional structure of the computer. Programs / instructions. Conceptual levels of the computer.
Unit 2: Problem solving: introduction to algorithmics and programming.
Introduction to problem solving. Algorithm concept Phases in the development of algorithms. Programming as an engineering discipline. Software life cycle. Basic elements of an algorithm. Tools for the representation of algorithms. Programming languages. Classification. Language translators: Compilers and interpreters.
Unit 3: Basic concepts and control structures
Definition of variables and constants. Type of fundamental data. Sequential structure. Selection or conditional structures. Iterative or repetitive structures.
Unit 4: Data structures
Unidimensional arrays: strings, tuples and lists. Search and traverse.
Unit 5: Subprograms
The concept of subprogram as an abstraction of operations. Location, nesting, scope and visibility. Definition of functions and procedures. Calls to functions and procedures. Modular design descending.
Unit 6: Files
Basic Definitions. Input / output of data in files. Types of access to files.
Unit 7: Prevention and detection of errors
Types of errors. Exceptions and asserts. Preventive programming. Debugging programs.
Unit 8: Introduction to object-oriented programming
Classes and objects. Attributes and methods. Encapsulation. Definition of classes.
Unit 9: Complex data structures
Lists: iterators, generators, functional paradigm, and list comprehensions. Sets. Dictionaries.
Activities and Methodology
| Title | Hours | ECTS | Learning Outcomes |
|---|---|---|---|
| Type: Directed | |||
| Laboratory classes | 11 | 0.44 | 1, 2, 3, 4, 5, 6, 7 |
| Problems classes | 26 | 1.04 | 1, 2, 3, 4, 5, 7 |
| Theory classes | 10 | 0.4 | 1, 2, 3, 4, 5, 7 |
| Type: Supervised | |||
| Programming projects | 30 | 1.2 | 1, 2, 3, 4, 5, 6, 7 |
| Type: Autonomous | |||
| Classes preparation and personal work | 20 | 0.8 | 1, 2, 3, 4, 6, 7 |
| Solving self-assessment problems | 48 | 1.92 | 1, 2, 3, 4, 5, 7 |
The management of the teaching of the subject will be done through the documentary manager Caronte (http://caronte.uab.cat/),which will serve to see the materials, manage the groups of practices, make the corresponding deliveries, see the marks, and communicate with the teaching staff, etc. In order to use it, it is necessary to do the following steps:
- Register by giving the name, NIU, and a photo in JPG format. If you have already registered for another subject, you do not need to do it again; You can go to the next step.
- Enroll in the type of teaching "Programació en Python", giving as a subject code the one provided on the first day of class.
The teaching of the subject takes place in two sessions of two hours each in a computer classroom. In these sessions, the following teaching activities can be differentiated:
MD1 Exhibition of contents in class: Presentation of the theoretical contents to work in the class. Some of these contents must have been prepared before the class from reading texts, viewing videos, searching for information, etc. The contents presented will be directly related to the problems proposed in other teaching activities, so that they will be the basis on which other activities of the course will be developed.
MD2 Participative lectures: Joint resolution of the set of problems proposed to students. All topics will be accompanied by a list of problems that the student must solve. In this sense, and as the student progresses in the depth of their knowledge, these problems will be little by little more complex, allowing in this way to clearly appreciate the advantages of using the methodological tools taught during the course. All the problems developed in class and others that can be proposed can be found on the Caronte platform, and will be self-evaluable. These activities should allow the student to deepen understanding and personalize knowledge. The fact that they are self-evaluable allows us to adjust the pace of consolidation and reflect on our own learning.
MD3 Tutoring sessions: Hours freely available for questions about aspects in which students need additional help from the faculty.
MD4 Programming short projects: Realization of short practical projects to deepen the applied aspects of the theory. These projects will be resolved in small groups, where each member must do a part of the work and put it in common with the rest of the group to have the final solution.
MD5 Evaluation activities: See evaluation section of this teaching guide.
Transversal competences
Competences T06 and T08 will be worked on and evaluated throughout the course in the following activities:
|
Competence |
MD1 |
MD2 |
MD4 |
|
T06 - Make a critical evaluation of work carried out |
Personal work of preparation of materials Evaluation: Theoretical Exam (Tp and Tf) |
Evaluation: Problem Solving (P) |
Evaluation: Practical projects (PPg and PPi) |
|
T8 - Plan and manage the available time and resources |
|
|
The guide of the project will give indications of how to do the planning. Evaluation: Group practical projects (PPg) |
Annotation: Within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.
Assessment
Continous Assessment Activities
| Title | Weighting | Hours | ECTS | Learning Outcomes |
|---|---|---|---|---|
| 1. Partial theory exam | 15% | 2 | 0.08 | 1, 2, 3, 4, 5, 7 |
| 2. Final theory exam | 35% | 2 | 0.08 | 1, 2, 3, 4, 5, 7 |
| 3. Delivery of problems | 20% | 0 | 0 | 1, 2, 3, 4 |
| 4. Programming projects (group assessment) | 20% | 0.5 | 0.02 | 1, 2, 3, 4, 6 |
| 5. Exam Programming projects (individual assessment) | 10% | 0.5 | 0.02 | 1, 2, 3, 4, 5 |
Scheduled evaluation process and activities
Throughout the course the following evaluation activities will be carried out:
|
Activity |
Date |
Recovery |
Percentage |
Minimum note |
|
Theory Partial Exam (Tp) Individual |
Check Planning |
Check Planning |
15% |
No |
|
Final Theory Exam (Tf) Individual |
Check Planning |
Check Planning |
35% |
Tf >= 5 |
|
Delivery of Problems (P) Individual |
Each Week |
No |
20% |
No |
|
Programmin Projects (PPg) Group |
Check Planning |
Check Planning |
20% |
PPg >= 5 |
|
Programming Projects Exam (PPi) individual |
Check Planning |
Check Planning |
10% |
PPi >= 5 |
To be able to pass the subject, the result of the weighted sum of the evaluation activities must be greater than or equal to 5, and a minimum grade of 5 must be obtained in activities Tf, PPg and PPi.
Programming of evaluation activities
The dates for evaluation and submission of works will be published in the documentary manager Charon and may be subject to programming changes for reasons of adaptation to possible incidents. Always be informed by the document manager about these changes as it is understood that this is the usual platform for exchange of information between teachers and students.
Recovery procedure
The student may apply for recovery whenever he has submitted to a set of activities that represent at least two thirds of the total grade of the subject.
The theoretical exams (Tp and Tf) will be able to be recovered in a single exam of recovery in the dates fixed by the coordination of the Degree. The exam of recovery will have a percentage of 50% on the final grade. The mark of the exam of recovery, in case of being realized, will substitute to the marks of the partial examinations (Tp) and final (Tf) realized during the course.
In accordance with the coordination of the Degree and the direction of the School of Engineering, the Individual Delivery of Problems (P)activity can not be recovered.
Grade review procedure
Students will have the right to review the theoretical exams (Tp and Tf). The place, date and time of revision will be provided on the day the marks are published. If thestudent does not appear in this review, this activity will not be reviewed later. Only in justified cases may a review be made after the date set and always up to a maximum of 7 calendar days.
There will not be review of the marks of the programming projects (PPg and PPi) because the evaluation is done in front of the students.
"Unique evaluation" system
This subject offers a "unique evaluation" system.
The unique evaluation system will be composed of the following assessment activities:
|
Activity |
Date |
Recovery |
Percentage |
Minimum mark |
|
|
Final Theory Exam (Tf) Individual |
Check Planning |
Check Planning |
50% |
Tf >= 5 |
|
|
Programming Projects (PPg) Group |
Date of the Final Theory Exam |
Date of the recovery exam |
30% |
PPg >= 5 |
|
|
Programming Projects Exam (PPi) Individual |
Date of the Final Theory Exam |
Date of the recovery exam |
20% |
PPi >= 5 |
|
To be able to pass the subject, the result of the weighted sum of the evaluation activities must be greater than or equal to 5, and a minimum mark of 5 must be obtained in activities Tf, PPg and PPi.
The recovery system will be the same as for the continuous assessment.
The review of qualifications will follow the same procedure as for the continuous assessment.
Qualifications
Non-Evaluable (NA): Any student who delivers a practice or a scheduled assessment will have a grade. It will only be considered not evaluable in the case of not delivering any evaluable activity.
Final Mark: Is obtained with the weighted sum according to the criteria set in the section on evaluation activities. If in any activity the minimum grade is not reached, the grade will come out of the following formula:
Minimum (weighted sum of grades , 4.5)
Honors (MH): To award a grade of honor is the decision of the faculty responsible for the subject. The regulations of the UAB indicate that MH can only be granted to students who have obtained a final grade equal to or greater than 9.00. You can grant up to 5% of MH of the total number of students enrolled. If the number of students with a mark greater than orequal to 9 is more than 5% of the total enrollment, students were prioritized according to the following rules (in order):
- Students who have achieved the mark equalor greater than 9 with fewerrecoveries of activities (becausethey failed the activity or because they tried to improve their mark).
- Students with more marks equal or greater than 9 in activities Tp, Tf, and PPi.
- Students with the best overall mark.
Irregularities on the part of the student, copy and plagiarism
Without prejudice to other disciplinary measures that they deemappropriate, will be scored with a zero the irregularities committed by the student that may lead to a variation of the rating of an evaluation act. Therefore, copying, plagiarism, cheating, letting copy, etc. in any of the evaluation activities will involve suspending with a zero. The evaluation activities qualified in this way and by this procedure will not be recoverable. If it is necessary to pass any of these evaluation activities to pass the subject, this subject will be suspended directly, without the opportunity to recover it in the same course. In this case, the numerical grade of the file will be the lower value between 3.0 and the weighted average of the marks.
Evaluation of repeating students
The repeating students who the previous course have passed the subject "Advances Programming" and correctly presented the review exercises proposed in that subject, will be able to pass the subject presenting some exercises of synthesis of the course. The final grade in this case will be equal to 5. Students who want to take this way must inform the faculty of the subject the first week of class.
The rest of the repeating students must take the completecourse. No marks from previous courses will be maintained.
Bibliography
J. Guttag. Introduction to Computation and Programming Using Python: With Application to Understanding Data. Second Edition. MIT Press. ISBN-10: 9780262529624
S. Chazallet Python 3. Los fundamentos del lenguaje. Eni, ISBN-10: 2409006140
E. Matthes. Python Crash Course: A Hands-On, Project-Based Introduction to Programming. No Starch Press ISBN-10: 1593276036
M. Myers. A Smarter Way to Learn Python: Learn it faster. Remember it longer. Createspace Independent Pub ISBN-10: 1974431479
A. Prieto, A. Lloris, J.C. Torres. Introducción a la Informática. Mc Graw-Hill ISBN-10: 8448146247
A. Prieto, B. Prieto. Conceptos de Informática. Mc Graw-Hill, Schaum ISBN-10: 8448198573
L. Joyanes Aguilar. Fundamentos de Programación: Algoritmos, Estructuras de Datos y Objetos. Mc. Graw-Hill. ISBN-10:8448161114
Software
We will use the latest version of Anaconda which includes Python 3.x and Spyder (https://www.anaconda.com/products/individual).
Language list
| Name | Group | Language | Semester | Turn |
|---|---|---|---|---|
| (PAUL) Classroom practices | 81 | Catalan | first semester | morning-mixed |
| (PAUL) Classroom practices | 82 | Catalan | first semester | morning-mixed |