
Fundamentals of Programming II
Code: 108256Credits: 9
| Degree programme | Type | Course |
|---|---|---|
| Bachelor in Artificial Intelligence | OB | 1 |
Contact lecturer
- Name :
- Abraham De la Rosa Ibarra
- Email :
- abraham.delarosa@uab.cat
Group languages
You can consult this information at the end of the document.
Prerequisites
The course doesn’t have any official prerequisites. Nevertheless, it builds on top of Fundamentals of Programming I. Therefore, it is recommended for students to have a good knowledge of the basics of programming and Python.
Objectives
This course is the continuation of Fundamentals of Programming I, and the general objectives are:
- Understanding different data structures such as stacks, queues, and lists.
- Understanding different more complex data structures such as hash tables, trees, and graphs.
- Understanding dynamic memory and pointers.
- Understanding different algorithms for sorting and searching, and the limitations of those algorithms.
- Be able to analyze a complex problem, design an efficient solution, implement it, calculate its cost and test it.
- Introduce the concept of recursion and its application, as well as being able to analyze the complexity of recursive algorithms.
Learning outcomes
- CM01 (Plan and implement software projects in the field of artificial intelligence, which fit the requirements of the application, addressing all phases of project development and following the standard principles and methods for the management and development of software projects.) Plan and implement software projects in the field of artificial intelligence, which fit the requirements of the application, addressing all phases of project development and following the standard principles and methods for the management and development of software projects.
- CM02 (Organise the tasks for the development of a software project demonstrating the leadership and cooperation skills necessary for the success of the project.) Organise the tasks for the development of a software project demonstrating the leadership and cooperation skills necessary for the success of the project.
- KM07 (Describe the methodologies and procedures for the analysis, design, validation and management of software development projects.) Describe the methodologies and procedures for the analysis, design, validation and management of software development projects.
Contents
The contents of the course are:
- Dynamic memory: Pointers
- Dynamic data structures (lists, stacks, queues)
- Sorting and search algorithms
- Analysis of the complexity of algorithms
- Nonlinear data structures. Hashing techniques: Hash arrays and hash lists
- Recursion
- Graphs
- Trees
Advanced programming of different dynamic data structures in C language.
Learning activities and methodology
| Title | Hours | ECTS | Learning outcomes |
|---|---|---|---|
| Study of the subject, preparation and implementation of problems and practices | 144 | 5.76 | CM01, CM02, KM07 |
| Problems | 18 | 0.72 | CM01, CM02 |
| Theory | 39 | 1.56 | KM07 |
| Practice | 18 | 0.72 | CM01, CM02 |
We will use the moodle platform (Caronte or Virtual Campus) to share materials, deliver projects and other administrative activities. All the details will be published at the beginning of the course.
The teaching methodology will be mainly focused on practical work. Classroom sessions will be organized to discuss the theoretical contents of the subject, followed by exercises and programming problems. More specifically, the different types of teaching activities are the following:
- Theoretical classes: Explanation on the board of the theoretical part of each topic of the program. The typical structure of a class will be the following: in the first place an introduction will be made where the objectives of the class and the contents to be discussed will be briefly presented. Next, the contents of a topic will be covered, including narrative expositions, formal developments that provide theoretical foundations, and intercalating practical examples, which illustrate the application of the exposed contents. Finally, the professor will present the conclusions of the discussed contents. The theoretical classes, in spite of being mainly an explanation by the teacher, will be participatory for the students giving them the opportunity to ask those points that they do not finish understanding. The students will be constantly asked questions and problems to check the good understanding of the exposed subject. There will be 2 exams to evaluate this part of the subject.
- Problem-solving classes: Joint resolution of problems. All the topics will be accompanied by a set of problems that the student must try to solve. In this sense, and as the student progresses in and deepens in their knowledge, these problems will be gradually more complex. The classes will be the natural forum in which the development of practical work can be discussed in common, contributing the knowledge that the student is lacking tocarry it forward. The mission of the problem-solving classes is to bridge between theoretical classes and classes in the laboratory, which will promote the ability to analyze and synthesise, the development of critical reasoning, and that will train the student in the resolution of problems. During the course, students (in groups of 2 persons) will do various short and basic exercises that will be evaluated. Each group will solve these basic exercises and make the delivery within the corresponding short period. This exercise seeks to enable students to solve theoretically the concepts worked in theoretical classes and then be able to apply them to the practical laboratory case.
- Practical projects: Students will work in pairs, and go through the different steps of the software development life cycle to implement the solution to a problem. This practical projects will complete the theoretical subjects, where the student will develop several programs and will have to try to solve a specific proposed problem. These projects will have to be delivered at the indicated dates. There will be 2 practical projects.
This approach to work is aimed at promoting active learning and developing competencies of organizational and planning skills, oral and written communication, teamwork and critical reasoning. The quality of the exercises carried out, of its presentation and of its operation will be valued especially.
All the details of the subject, the calendar and the evaluation dates will be informed at the beginning of the course and will appear on the communication platform.
Note: 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
Continuous assessment activities
| Title | Weight | Hours | ECTS | Learning outcomes |
|---|---|---|---|---|
| Practice | 30 | 2 | 0.08 | CM01, CM02, KM07 |
| Theory/Problems Control 1 | 35 | 2 | 0.08 | CM01, KM07 |
| Theory/Problems Control 2 | 35 | 2 | 0.08 | CM01, KM07 |
a) Scheduled assessment activities
Theory / Problems Control 1: 35% of the final grade;
Theory / Problems Control 2: 35% of the final grade;
Practices: 30% of the final grade;
It is mandatory tha the weighted average of the three type of training activities be at least a grade of 5 in order to pass the subject. In addition, a minimum grade of 5 is required in the average of the two controls and a minimum grade of 5 is also required in the Practices.
Important Note: The teaching staff may request an interview or proof of validation of the Practices (lab) submitted by the student, when they consider it necessary. The result of the interview or validation test may invalidate the delivery, leaving a zero as a grade in that section and therefore the failing the course.
Regarding controls, reassessments and any evaluable activity, no student will be allowed to enter after 5 minutes from the start of the test/activity. Mobile phones cannot be used in the evaluative tests.
If the student does not pass the subject, the numerical grade of the record will be the lowest value between 4.5 and the weighted average of the grades.
b) Training activities schedule
The scheduling of the evaluation activities will be given on the first day of the subject and will be made public through the Virtual Campus. These dates may be subject to programming changes for reasons of adaptation to possible incidents; these changes will always be informed through the virtual campus since it is understood that this is the usual mechanism of exchanging information between lecturer and students.
c) Retake Process:
Those students who, having done the continuous assessment, have not achieved the minimum necessary to pass the subject, will have the option to retake one or two of the controls of the Theory / Problems part. The part of Practices, given its nature, cannot be retaken. The grades obtained in the retake(s) will be the final grades to be considered for the final grade of the course.
d) Procedure for qualifications review
For each evaluation activity, students who wish to do so may request a date and time to review the evaluation with the corresponding teaching staff. The request for review will have to be made on the days indicated for each activity, outside of that time the review cannot be scheduled.
e) Qualifications
In order to pass the course with honours, the final grade must be a 9.0 or higher taking into account the number of students enrolled in the course and bearing in mind the regulation of UAB.
Given that evaluation methodology is continuous assessment, the fact of presenting any training activity (exercises, tests, problems, control, practices ...) is interpreted as the intention of being evaluated on that subject and, therefore, the grade will be different than Not Avaluable (NA). An NA grade can only be obtained by not delivering evaluable evidences throughout the course
f) Irregularities by the student, copy and plagiarism
Notwithstanding other disciplinary measures deemed appropriate, and in accordance with the academic regulations in force, assessment activities will receive a zero whenever a student commits academic irregularities that may alter such assessment. Assessment activities graded in this way and by this procedure will not be re-assessable. If passing the assessment activity or activities in question is required to pass the subject, the awarding of a zero for disciplinary measures will also entail a direct fail forthe subject, with no opportunity to re-assess this in the same academic year. Irregularities contemplated in this procedure include, among others:
• the total or partial copying of a practical exercise, report, or any other evaluation activity;
• allowing others to copy;
• presenting group work that has not been done entirely by the members of the group;
• the unauthorized use of AI (for example Copilot, ChatGPT or equivalent) to solve any evaluable activity;
• presenting any materials prepared by a third party as one’s own work, even if these materials are translations or adaptations, including work that is not original or exclusively that of the student;
• having communication devices (such as mobile phones, smart watches, etc.) accessible during theoretical-practical assessment tests (individual exams).
For this subject, the use of Artificial Intelligence (AI) technologies is permitted exclusively in support tasks, such as bibliographic or information searches, text correction or translations. The student must clearly identify which parts have been generated with this technology, specify the tools used and include a critical reflection on how these have influenced the process and the final result of the activity. The lack of transparency in the use of AI will be considered a lack of academic honesty and may lead to a partial or total penalty in the grade of the activity, or greater sanctions in serious cases.
In summary: copy, let copy or plagiarize (or attempt) in any of the evaluation activities, is equivalent to grade NO PASS, not compensable and without validation of parts of the subject in subsequent courses.
g) Single evaluation
This course does not contemplate the single evaluation system.
h) Rescheduling evaluation tests
In accordance with the regulations, students who cannot attend a Theory/Problem Control since it represents more than 20% of the final grade of the subject, are entitled to an assessable alternative test or activity in the following cases:
- Supervening medical situations that make it impossible to carry out the evaluation activity.
- Judicial matters with official summons.
- Attendance at official competitions.
- Death of a family member up to the second degree on the day of the exam or within four days prior to the exam date.
- Attendance at meetings of the collegiate bodies of university representation or other reasons provided for in the respective regulations.
- Participation in UAB mobility programmes.
As indicated in section 6 of the Regulations, the request for rescheduling must be sent to the Academic and Services Management of the School of Engineering, together with all the necessary documentation, within five calendar days prior to the date of the test and up to five calendar days immediately after.
Bibliography
- Mark Allen Weiss: Data Structures and Algorithm Analysis in C (2nd Edition). Pearson, 1996.
- Mark Allen Weiss: Data Structures and Algorithm Analysis in C++. 4 th edition. Pearson, 2014.
- Kernighan, Brian; Ritchie, Dennis M., The C Programming Language (2nd edition). Englewood Cliffs, NJ:
- Prentice Hall. 1988.
- K.N. King: C Programming: A Modern Approach. 2nd edition. W.W. Norton & Company. 2008
- http://www.cplusplus.com/ : The C++ Resources Network
Software
Windows/Linux
Microsoft Visual Code
Linux or Windows compilers
Course groups and languages
The information provided is provisional until November 30. After this date, you will be able to consult the language of each group through this link. To access the information, you will need to enter the course CODE
| Type of teaching | Group | Language | Semester | Shift |
|---|---|---|---|---|
| (TE) Theory | 1 | English | second semester | afternoon |
| (PAUL) Classroom practices | 1 | English | second semester | afternoon |
| (PLAB) Practical laboratories | 1 | English | second semester | afternoon |
| (PLAB) Practical laboratories | 2 | English | second semester | afternoon |