Algorithmics and OOP 2 Course Overview
Algorithmics and OOP 2 Course Overview
Undergraduate
ISIS-1205 – Algorithmics and Object-Oriented Programming 2
[Link]
Semestre: 2015-10
Course Program
General information
Course websiteo: [Link]
The information about teachers and course sections is available at the following link:
[Link]
The student support model must be agreed upon between the teacher and students in the first week of
classes.
Pedagogical objectives
At the end of the course, the student will be able to:
1. Use simple search and sorting algorithms as part of the solution to a problem.
2. Build the automated unit tests of a program.
3. Use sequential files, both as a means to persist the state of the world model and as a
way to recover and save information from secondary memory.
4. Study linked structures as a dynamic way to model features of the elements of
world with a variable cardinality.
5. Use recursion as a technique to write an algorithm.
6. Study recursive structures as a way to represent hierarchical models and manage sets of
objects in an orderly manner.
7. Study some mechanisms for class reuse (such as inheritance) and contract definition (such as the
interfaces).
8. Study the elements involved in the construction of a user interface that uses graphical elements.
9. Study the algorithms and technology that support some simple non-functional requirements associated with
the persistence of information and distribution.
Methodology
The course is organized into 6 levels that correspond to specific pedagogical objectives and a set of
knowledge and skills that are introduced or reinforced. For each level, the teacher will work during the class
using examples that demonstrate the concepts of the level and in the lab sessions, reinforcement material will be provided
I saw it in class. Additionally, as part of their individual work, the student must develop an exercise. A
exercise corresponds to the solution of a simple problem, using the knowledge and skills developed in
the level.
Topic plan
6
7 9 15% Linked linear structures Exercise 3
8
9
10 10 15% Reuse and decoupling mechanisms Exercise 4
11
12 11 20% Recursive structures and algorithms Exercise 5
13
14 12 20% Databases and basic distribution Exercise 6
15
The detailed schedule for each section is published on the CUPI2 website and is an integral part of it.
program:[Link]
Generalities
The course consists of 3 hours of weekly in-person class with the teacher, 1½ hours of supervised work in the
laboratory and 4½ hours of individual work outside of class.
During class, the teacher will keep a log of student attendance as a record.
A student who does not attend at least 80% of the classes and supervised work sessions will not be able to pass the course.
course, in accordance with article 42 and 43 of the General Regulation of Undergraduate Students.
The recording, by any means, of this course is NOT authorized. If you need it, please make a request.
Letter addressed to the course professor justifying the reasons.
The course has official communication channels including the uniandes email, the course mailing list, the
SICUA+ teaching support system ([Link] and the course website
([Link]
Course evaluation
During the semester, the student must develop 6 exercises, one for each level. The evaluation of each exercise
it has 3 parts:
I. The individual solution of the proposed exercise (functional evaluation and inspection of all elements
orders)
II. An individual written test on the developed exercise.
III. An individual practical exam in which each student extends in the laboratory what they did in the exercise.
with new requirements. Only the students who submitted the exercise and who are present in the
The laboratory can deliver this part of the evaluation (attendance will be taken each time).
For the presentation of each part of the evaluation, the following rules will be taken into account:
I. The evaluation is based on the exercise submitted individually. According to this, if the
The student does not comply with the rule that the exercise was developed individually, the full grade.
for the respective level is 0.
II. Each exercise must have as a final result a program that works, that can be used and that can be
verify through tests. Exercises with compilation errors will not be evaluated, their respective grade is 0.
III. Only submissions of exercises and practical exams are accepted through SICUA PLUS within the deadlines.
established.
IV. The distribution of the percentages depends on the grades obtained in the written exam and in the exam
practical, in the following way:
The delivery dates for the assignments, as well as for the theoretical and practical exams for levels 7 to 11 are
specified in the activity schedule of each section. The dates for level 12 will be announced at the end of
semester, since these are determined by the Admissions and Registration Office of the University. The date of
the submission of the exercise at level 12 will correspond to the date of the first evaluation (theoretical or practical) of the same level,
as defined by the Office of Admissions and Registration.
Bibliography
Jorge Villalobos, “Introducción a las Estructuras de Datos: Aprendizaje Activo Basado en Casos”, Editorial Prentice-
Hall, 2008. (For sale at the University bookstore and at the Panamericana bookstore)
The distribution of course evaluation percentages, which ranges between written and practical exams (e.g., 15% or 20% for each level) influences a student's strategy by necessitating proficiency in both theoretical understanding and practical application. If students fail to score adequately in either component (less than 50% of the grade obtainable in the exercise), their overall level grade is compromised, thus requiring balanced preparation across both practical and theoretical domains .
The APO2 course ensures students' understanding of algorithmic implementation in solving complex problems by introducing new elements to model problem world entities and by employing pedagogical objectives such as using simple search and sorting algorithms. It teaches students to construct automated unit tests and use recursion. This emphasis is important as it equips students with practical skills to design efficient and effective solutions for real-world problems, effectively bridging theoretical knowledge with practical application .
The use of sequential files as a pedagogical tool in the APO2 course contributes to students' skills by teaching them to persist the state of the world model and save/retrieve information from secondary memory. This practice enhances their understanding of how data storage and management are integral to software development, allowing them to handle data efficiently in practical applications .
The APO2 course's evaluation scheme fosters individual responsibility and accountability by requiring students to complete exercises individually, with a significant proportion of their grade depending on functional evaluation and inspection of each element per the proposed exercise. This method ensures that students cannot rely on others' efforts and must independently demonstrate their understanding and capabilities. Additionally, non-compliance with the rule that exercises are developed individually results in a grade of 0 for that level, further emphasizing personal accountability .
The APO2 course integrates the teaching of recursive structures and algorithms through a specific focus on studying recursive algorithms as a method to represent hierarchical models and manage ordered sets of objects. Pedagogical approaches include organizing the course into levels, with each level aligning with specific objectives such as recursive structures, supported by examples demonstrated during class and lab sessions. Students are provided with reinforcement material seen in class and must develop exercises to solve simple problems using their acquired knowledge .
The course website and communication channels, including the official uniandes email and SICUA+ system, play a crucial role by providing accessible information about the course, such as the schedule, teacher details, and pedagogical materials. These platforms ensure that students can reliably reach instructors and access necessary resources, thereby supporting a more organized and accessible learning environment .
The course policies regarding attendance require students to attend at least 80% of classes and supervised lab sessions to pass the course, reflecting academic rigor by ensuring consistent participation. The submission policy mandates exercises and exams be submitted through SICUA PLUS within established deadlines, emphasizing the importance of meeting academic standards and deadlines .
Studying mechanisms for class reuse and contract definition through inheritance and interfaces enhances students' comprehension by teaching them to create more modular and flexible code. Inheritance allows for code reuse, reducing redundancy and simplifying maintenance, while interfaces enable contract-based design, ensuring consistent implementation across different classes. This deepens students’ understanding of object-oriented principles and their application in software development .
The APO2 course emphasizes the study of elements involved in constructing user interfaces that employ graphical elements. This includes understanding and utilizing various graphical user interface (GUI) components and technologies. These strategies contribute to the development of programming skills by enabling students to connect programming logic with user experience design, enhancing their ability to build interactive applications .
The purpose of studying linked structures in the APO2 course is to introduce dynamic methodologies for modeling features of elements in the world with variable cardinality. This knowledge applies to modeling problems where the number of elements can change, such as managing collections of data dynamically, thus enhancing students' ability to create more flexible and efficient data structures .