A PBL-Based, Integrated Learning Experience of Object-Oriented Programming, Data Structures and Software Design
A PBL-Based, Integrated Learning Experience of Object-Oriented Programming, Data Structures and Software Design
Abstract—This innovative practice full paper presents an still no consensus on the subject, as reference curricula show
experience report of an approach integrating the teaching and [4]. Kölling has thoroughly researched OOP as the initial
learning of Object-Oriented Programming, Data Structures and paradigm for apprentices, leading to requirements for both
Software Design in the second term of a Computer Engineering
undergraduate program. Learning object-oriented programming OOP languages and environments for novices [5]–[8].
requires acquiring high-level skills, which is negatively affected
by present curricula and pedagogies. Isolated courses with Regardless of language or paradigm choice, academic tra-
teacher-centered approaches do not allow for the appropriate ditions in higher education typically maintain a learning order
practice of such skills. For 15 years, our Computing Engineering based on two initial programming courses, usually named
undergraduate program has been pursuing an effort of curricu- CS1 and CS2, that leave advanced OOP issues to the CS2
lum integration and active learning practices based on problems
and projects. This paper presents an experience report of our
course. In our opinion, part of the issues with the typical CS2
approach. This experience led us to important lessons learned course are related to: i) the lack of proper space and time
with our approach: the acquisition of personal, interpersonal to practice high-level OOP skills, and ii) the use of teacher-
and technical skills provided by the approach; the benefits of centered learning approaches that do not let students acquire
knowledge integration through more authentic experiences and autonomy to practice those high-order skills.
a more disciplined practice of software production; the need
for careful problem planning; the main difficulties faced by There have been initiatives to promote more active, learner-
instructors to manage the course; and the challenges faced by
students to develop their skills. centered approaches to teach OOP, such as problem-based
learning (PBL) [9], peer learning [10] and flipped classroom
I. I NTRODUCTION [11], among others. Those initiatives are relevant, but, as we
mentioned, are usually based on isolated courses inside a
Object-oriented programming (OOP) is central to software
segmented curriculum, with different courses competing for
development in modern software industry. And learning it is
student attention. This work tries to fill this gap, using a PBL
hard since it requires more than mere concept understanding.
approach together with an integrated curriculum. In the second
Instead, it requires mastering high-level skills of analyzing, de-
term of our undergraduate program on Computer Engineering,
signing, implementing and validating software. Coupled with
students take an integrated course of object-oriented program-
high-level skills, learners need to master language syntax, ab-
ming, data structures and software design aimed at acquiring
straction, data structures, integrated development environments
and practicing high-level software development skills.
and problem domain. To make matters worse, the object-
oriented paradigm represents a different way of thinking, un- The goal of this work is to report our experience in the
familiar to apprentices that learned to code under a procedural present integrated advanced programming course, based on a
imperative paradigm. Transitioning between paradigms leads PBL teaching approach. It is based on 15 years of experience
to cognitive conflicts, which take time to solve [1]. with PBL and an integrated curriculum.
Researchers have thoroughly researched the difficulties to
learn programming. Robins describes those difficulties in The main learned lessons with our experience were: i) PBL
terms of knowledge, strategies and mental models that work allows acquiring both technical, personal and interpersonal
in three different levels of design, generating and evaluat- skills; ii) the benefits of an authentic experience based on
ing programs [2]. Other researchers have focused on the integration of knowledge; iii) the impact of problem planning
advantages and disadvantages of particular paradigms and on student learning; iv) the difficulties faced by instructors;
languages as the first to be learned [3]. However, there is and v) the challenges faced by students with the approach.
II. BACKGROUND Students are autonomous to analyze and choose paths towards
solving the problem [17].
This section presents the essential background to better
In PBL, students are encouraged to find solutions by them-
understand this experience report.
selves. They are in charge of searching information sources
A. Learning Object-Oriented Programming for learning. The instructor prepares the environment, helps
students to relate to the problem, arranges a work structure,
Robins et al. analyze the differences to learn programming addresses issues between students, re-equates the problem,
using the object-oriented and the imperative paradigms [2]. facilitates product or performance production and encourages
They conclude by stating that novices have more difficulties self-assessment [17]. He or she acts as a facilitator, posing
to solve a long problem with the object-oriented paradigm questions, so that students are in charge of the process of
compared to the imperative paradigm. They state that these knowledge creation. This process generates learning for both
difficulties are caused by a longer learning curve peculiar to students and the instructor [18].
the object-oriented paradigm itself. With PBL, not only are students constantly encouraged to
Learning OOP as a second paradigm is thoroughly discussed learn, but they also play an active role in the process of
in the literature. The difficulties may be associated with aspects building knowledge [19]. A problem in PBL is a trigger to
such as the natural complexity of these languages or the motivate study. Generally, it follows a learning cycle, repeated
complexity of professional development environments. Some over the duration of the problem: 1) Students are presented
defend starting with the imperative paradigm, following with with a problem before any preparation or study; 2) Students
the object-oriented paradigm [12]. Some authors argue that come together in groups to organize ideas and recall previous
introducing paradigms such as object orientation in the CS1 knowledge related to the problem; 3) Through discussion,
course is not backed up by significant evidence of facilitating students pose questions known as learning issues that deal
learning [13]. In contrast, Kölling (2003) suggests that object- with aspects of the problem that they do not understand; 4)
oriented concepts must be taught from the beginning, arguing Learning issues are ranked in order of importance, and students
that the difficulties are in the tools used for teaching, not in set learning goals for independent and group study [19], [20].
the paradigm itself [7]. PBL values deep understanding more than rote learning,
Kölling cites some important requirements for a program- even though the latter is important for learning. The greater
ming language for novices [5]. It should be simple and easy the understanding of a particular subject, the easier it is to
to understand, purely object-oriented, secure, and high-level. It memorize and, consequently, to learn. However, learning that
should allow an intuitive transfer of learned concepts to other is only at the level of memorizing has little value for both
languages. Some issues such as efficiency, often considered social and professional lives. This is one of the main issues of
important for industrial programming languages, are of little lectures that emphasize content only. With PBL, it is different
value to a language of instruction. It is more important that because this approach allows students to observe and analyze
the language can be supported by an appropriate teaching attitudes and values that are not present in the typical teacher-
environment. In addition, there must be a proper development centered approach. As problems are presented in a real context,
environment, allowing programmers to focus on what is really they favor transfer of both knowledge and skills learned in
important: programming itself. Researchers have developed class to professional lives [17], [21]. PBL allows students to
environments to facilitate learning of OOP, to minimize the adapt to changes, encourages critical thinking, teaches learning
difficulties found and, thus, to increase the engagement level. how to learn as well as to work as a team [22].
Tools such as Greenfoot [8], Alice [14] and BlueJ [7] are
examples of environments that promote a playful experience, C. PBL in Computing Education
making programming fun and simpler for students. O’Grady carried out a systematic review to investigate how
PBL has been used in computing curricula [23]. The study
B. Active Learning and PBL found 63 papers in computer science, computer engineering,
Active learning is defined as any educational method that information systems, information technology and software
involves students in the learning process [15]. Prince discusses engineering undergraduate programs. In these programs, a
three popular approaches to active learning: collaborative wide variety of courses have used PBL as teaching approach:
learning, cooperative learning, and problem-based learning. software engineering, computer programming, software qual-
Problem-Based Learning (PBL) is an active learning ap- ity and operating systems, among others. They conclude that
proach developed by the physician Howard Barrows. It had its PBL penetration in computing curricula is still superficial. In
genesis between the late 1960s and early 1970s at McMaster many cases, faculty members are working in isolation and are
University, Canada [16]. Initially idealized for medical educa- faced with the challenge of introducing PBL into curricula,
tion, the approach has gained acceptance and is increasingly which remain essentially instructionalist. In some cases, PBL
present within a variety of disciplines in higher education. In is a last resorted measure to improve either retention or
PBL, students are responsible for building their own learning performance.
in a process of problem solving. Instructors act as a facilitators In Brazil, PBL experiences in computing are still very
and are responsible for choosing problems to be solved. restricted. In the literature, PBL has been used in six courses
in the Software Engineering program at the Federal University broader communication, teamwork and self-directed learning
of Pampa (UNIPAMPA). These courses integrate different skills; Software maintenance problems should be avoided for
contents within problem scenarios similar to professional they can reduce motivation when accumulated deficiencies
practice in an interdisciplinary and cross-cutting way [24]. arise; the dosage of new concepts in the proposed problems
Another experience that has integrated the PBL approach to must respect a gradual process and students’ assimilation
the curriculum is the Computer Engineering program at the capacities [26].
State University of Feira de Santana (UEFS) [25]. Ferreira et al. (2007) describe an active project-based learn-
ing approach in an introductory laboratory course on object-
D. Related Work oriented programming and their experiences as instructors. In
Vihavainen et al. describe an evaluation of an active learning this course, students must implement a small to medium-sized
approach for teaching introductory programming [10]. This interactive computer game in one semester using the Java
course lasted one semester and used the Java programming language. Authors conclude by stating that students performed
language. The approach was split into two units: introductory well with this approach, and that learning based on a practical
programming, where they introduced basic OOP concepts, and project enriches students’ interactions with interdisciplinary
advanced programming, where knowledge learned in the initial content from the theoretical course, and it helps them realize
phase was deepened. The approach reduced the number of the relevance of a practical course to real life issues [27].
lectures from five hours a week to only two hours, so that they
could invest in classes focused on practical activities of incre- III. M ETHODOLOGY
mentally growing difficulty. In addition, there was constant
We use the experience report as our methodological strategy.
support from experienced instructors. Authors conclude that
In this section, we describe the educational scenario, study
the use of their extreme learning method, combining assistance
participants, planning of the theoretical modules and the
by experienced instructors with a set of values and practices
integrator module, and student assessment.
yields positive results. The results pointed to reduced dropout
and failure rates as well as an increase in course acceptance. A. Scenario
Herala et al. report the use of an active learning, flipped
classroom approach in an object-oriented programming course The State University of Feira de Santana (UEFS) offers the
[11]. This approach proposes the full inversion of the teaching Computer Engineering program since 2003. This program uses
model, with less lectures, and more productive and participat- the PBL approach as its main teaching and learning strategy,
ing discussions. In addition to the teaching approach, they and is based on a flexible curriculum, favoring constant updat-
also changed the programming language, learning materials, ing of course content [28]. The program is also characterized
weekly exercises, programming projects and assessment. They by the integration and interdependence between curricular
switched the programming language from C++ to Java, and components that groups courses with related contents in a
assessed students through online exams instead of written same academic period, particularly evidenced by the curricular
exams. To support the flipped classroom approach, the course components named Integrated Studies.
had several mini-lecture videos, each lasting from 15 to The Integrated Study (IS) is an integrating component fo-
30 minutes. Authors conclude by stating that the flipped cused on a given theme and is organized into modules. During
classroom approach is suitable for teaching object-oriented the integrated study, students are introduced to given compre-
programming. hensive problems. To solve problems, they need to acquire
Active problem-based learning (PBL) approaches to teach new knowledge, which is grouped into modules. Presently,
object-oriented programming (OOP) have been used in some nine integrated studies are offered during the program.
universities. Kay et al. report the evaluation of a pioneering Programming concepts are present in two integrated studies
PBL approach where they redesigned the syllabus of a CS1 in this program. The Algorithms IS is a curricular component
course, moving from an imperative programming language offered in the first semester, integrating introductory ideas of
(Pascal) to an object-oriented one (Java), facilitated by the algorithms, basic data structures (arrays and registers) and
BlueJ environment [9]. Authors conclude by summarizing structured programming in an imperative language. In the
their three-year experience with some achievements. Students second term, the Programming IS integrates object-oriented
acquired OOP skills, independence, autonomy, ability to work programming, advanced algorithms and data structures, and
in groups, and developed critical thinking, problem-solving software design. Activities build on the experience gained in
and communication skills, among other relevant soft skills. the Algorithms IS.
An experience of integrating object-oriented programming,
data structures and systems design is reported in an integrated B. Participants
course based on a problem- and project-based learning ap- Our study took place in the second half of 2017 with
proach. The experience lasted two academic terms, and the students from the Programming IS. Classes were heteroge-
main lessons learned were: integration of knowledge enables neous, composed by 46 freshman and sophomore students: 44
more authentic experiences and practices of more disciplined male and 2 female. All of them had previous experience with
software production; the PBL approach allows to acquire programming since they had passed the Algorithms IS.
The theoretical modules were taught by two instructors:
one instructor led the Software Design module and a sec-
ond instructor led both the Data Structures and the Object- Table I
C OURSE P LAN FOR THE O BJECT-O RIENTED P ROGRAMMING
Oriented Programming modules. Not all students who take THEORETICAL MODULE
the theoretical module take the integrator module, and vice-
Unit Skills Concepts
versa, because of previous dropouts or failures. However, when
taking the IS for the first time, a student is registered in 1. Programming Paradigms
Understanding object-oriented 2. Object-oriented programming
all component modules. The integrator module (IM) had 25 modeling and programming, 3. Objects and Classes
students, distributed in four tutorial groups, each composed I and writing basic object- 4. Fields and State
oriented programs. 5. Methods, Messages and
by at least five and at most ten students, with one tutor for Behavior
each tutorial group. Tutors can either be faculty members or
teaching assistants. 6. Encapsulation
Being able to write, compile, 7. Inheritance
C. Planning debug and test programs in 8. Polymorphism and Dynamic
Java programming language. Binding
The general goal of the Programming IS is that students be II
9. Relationships and Composition
capable of designing, developing and testing object-oriented Applying object-oriented 10. Coupling and Cohesion
data structures for modeling 11. Class and Object
software, using appropriate algorithms and data structures, simple and complex data Implementation
mastering the concepts and fundamentals underlying the meth- from real world problems. 12. Final Classes, Fields
and Methods
ods, techniques and tools used. Specific goals are derived from
the general goal and from the desired skills (e.g., being able 13. Abstract Classes and Interfaces
to write, compile and debug object-oriented programs in Java; Handling errors and 14. Static Attributes and Methods
being able to choose and implement data structures appropriate exceptions in programs 15. Handling Exceptions
in Java. 16. Basic Data Structures
to a search problem). III (Collections)
The Programming IS consists of three theoretical modules Creating simple graphical 17. Graphical user interfaces and
user interfaces in Java. event-oriented programming
and the integrator module (IM). The theoretical modules 18. File Handling
entail 30 hours each and are composed by three modules:
Object-Oriented Programming, Data Structures and Software
Design. In these modules, classes are typically in the form of
lectures. They happen in ordinary classrooms, and instructors
use whiteboard, projector and computer as support materials.
The Programming IM happens in parallel, with two weekly Table II
sessions of PBL tutorials with two hours each, and a total C OURSE P LAN FOR THE DATA S TRUCTURES THEORETICAL MODULE
workload of 60 hours. Sessions take place in tutorial rooms Unit Skills Concepts
where small groups of students gather, aided by a tutor. In
Knowing how to compute 1. Complexity of algorithms
these sessions, students use the whiteboard and their laptop complexity of basic 2. Memory allocation
computers. Source code in Java is typically produced in IDEs algorithms. 3. Arrays (tables)
I 4. Simple and linked lists
such as Eclipse or NetBeans. Designing basic data 5. Queues
Tables I, II and III respectively present the course plan for structures such as lists, queues 6. Stacks
and stacks 7. Linear search
the theoretical modules of Object-Oriented Programming, Data
Structures and Software Design. Theoretical modules are di-
vided into three units. The order of theoretical concepts in each 8. Binary Search
9. Sorting algorithms (HeapSort,
unit is usually planned to follow the order of acquisition of BubbleSort, SelectionSort,
the needed concepts in the solution of the proposed problems, Knowing the main search MergeSort, InsertionSort,
II and sorting algorithms QuickSort)
although there is no strict correspondence between them. 10. Binary trees in arrays
11. Heaps
The course plan for the Programming IM follows a format 12. Priority queues
where problems are drawn from a real world scenario. Prob- 13. Bucket Sort
lems follow a spiral of increasing complexity. Four problems
were proposed and distributed over a semester. For each Designing and implementing
problem, students need to learn new concepts and acquire advanced data structures 14. Binary Trees
like trees and hash tables. 15. Balanced Binary Trees (AVL)
practical programming skills, as shown in Table IV. 16. B Trees
III Knowing how graphs work, 17. Hashing
D. Student Assessment their representation and 18. Hash Tables
and developing search 19. Graph representation
The second academic term of 2017 lasted between four and algorithms in directed 20. Graph algorithms
and undirected graphs. 21. Shortest path algorithms
five months. Each theoretical module had three written exams,
which correspond to the grades of Units I, II and III. Written
exams had both multiple-choice and essay questions. Grades
Table III acted as a non-participant observer that observed both instruc-
C OURSE P LAN FOR THE S OFTWARE D ESIGN THEORETICAL MODULE tors and students in class, both in the theoretical modules and
Unit Skills Concepts in the IM. After the course, we interviewed two instructors
and three students, using different semi-structured interview
1. UML: Class diagram
2. Domain models: guides for instructors and students. We analyzed the textual
(concepts, associations data using an open coding protocol based on content analysis
and attributes
3. Building domain models to derive findings directly from the data.
Knowing, understanding and 4. Design class diagrams In this paper, to respect anonymity, instructor interviews
applying methods, 5. Operations
I techniques and tools to 6. Association Attributes are identified with the letter I and a number, while student
design OO software. 7. Collections interviews are identified with the letter S and a number.
8. Relationship
Navigability
9. Design of Relationships IV. O UR E XPERIENCE
10. Mapping design to
source code Here we present the results of our experience, using the
proposed problems as our narrative thread.
Producing documentation for 11. Unit Tests The tutorial sessions follow established rules, obeying the
designs based on essential 12. JUnit Framework dynamics of the PBL approach. At the beginning of the
diagrams of the Unified 13. Generalization and
Modeling Language (UML) Specialization session, students choose among them a session coordinator, a
14. Supertypes and subtypes board scribe and a reporter. The session coordinator must lead
Knowing and using software 15. Polymorphism
II requirements artifacts, 16. Abstract types: abstract the group, foster participation, keep the appropriate dynamics,
conceptual analysis, classes and interfaces and direct discussions on possible problem solutions. The
source code and tests 17. Polymorphism with
in order to design abstract types reporter takes notes on the issues discussed, and orders ideas
software systems 18. Multiple inheritance in a session report. The board scribe takes notes on the
with an integrated view 19. System tests
of the software life cycle. 20. Acceptance tests whiteboard, expressing ideas, facts, questions and learning
goals raised by the students. In the first problem session, a
21. Interaction diagrams problem is presented to students, who read and interpret the
Choosing general patterns in UML scenario together, and raise relevant facts and ideas to solve
to assign 22. Communication Diagrams
responsibilities and 23. General responsability it. After this phase, they raise learning issues that may lead to
III design patterns to assignment software solving the problem. Finally, they establish an action plan to
solve problems of patterns (GRASP)
OO software design 24. Observer design pattern solve the issues raised, deriving explicit learning goals. At the
25. MVC design pattern end of the tutorial session, the reporter generates the session
report and shares it with the group.
Problem 1 was presented to students in the first class of
vary between zero and ten and the arithmetic average of the the Programming IM. In this problem, students designed and
exams is the final module grade. Students pass with an average implemented a system to schedule electoral bio-metrics regis-
grade of seven or higher. tration. The problem presented the scenario with a narrative,
In the Programming IM, both student performance in tu- user stories and a conceptual model. Students had to design
torial sessions and delivered student products account for the and develop a solution in three weeks. To solve it, they needed
grade of each proposed problem. Performance is measured to acquire introductory concepts of classes and objects, linked
by attendance, punctuality, participation and effective contri- lists, and the Iterator and MVC design patterns.
bution. A student product is usually a software system and, We observed that despite the large number of new concepts
at times, its Javadoc documentation and a written technical in Problem 1, most students were able to deliver the product
report. Products are assessed through assessment criteria given in a timely manner. Understanding the conceptual model and
to students during the course of the problem, and take into class diagram seemed relatively simple. However, designing
account the knowledge and use of software design, object- the system from these documents proved more difficult. Stu-
oriented programming and data structures concepts and skills. dents learned concepts in the theoretical modules concurrently
Product assessment may also include a written report, with par- with problem discussion in the tutorial sessions, which aided
ticular assessment criteria for technical writing. The product to clear students’ doubts. However, students frequently needed
delivered accounts for 70% of the problem grade and student to seek additional materials to achieve learning.
performance accounts for the other 30%. Final IM grade is the Problem 2 was given to students after Problem 1’s dead-
average of the problem grades. Students pass with an average line. In this new problem, students developed a tool for
grade of seven or higher. electronic auction. From the problem scenario, user stories,
given functional tests and a class diagram, students designed
E. Data Collection and Analysis and implemented a system. To do so, they needed to use
We followed a qualitative protocol based on observations new concepts of data structures, software design and object-
and semi-structured interviews to better understand our expe- oriented programming, such as inheritance, priority queues,
rience and derive learned lessons. The first author of this paper sorting algorithms and the JUnit framework.
Table IV
C OURSE P LAN FOR THE P ROGRAMMING INTEGRATOR MODULE (IM)
1. Constructors
2. Method overload
3. Object Composition
Designing, implementing and testing 4. Simple inheritance
a small software system based 5. MVC design pattern
02 Electronic Auction Tool on basic code reuse, basic data structures 6. Domain model
and disciplined software design from 7. Design class diagram
given software requirements and analysis. 8. Unit Tests
9. Stacks, Queues, Priority Queues
10. Sorting Algorithms
1. Text files
2. Binary files and serialization
3. Handling Exceptions
Designing, implementing and testing 4. Façade design pattern
a software system based on advanced code 5. MVC design pattern
03 Stock Portfolio Manager reuse techniques, advanced data structures 6. Unit Tests
and disciplined software design from 7. System and Acceptance tests
given software requirements and analysis. 8. Design Class Diagram
9. Binary trees: representation and algorithms
10. Balancing Binary Trees
11. Documentation with Javadoc
Problems are designed with increasing complexity. In the In Problem 3, students designed and implemented a stock
second problem, students had to write their code to pass portfolio manager. This problem only contained informal
given functional tests, build a design class diagram, implement specifications in a narrative, besides user stories. Students
and use priority queues, choose a sorting algorithm and, learned concepts of balanced binary trees, file reading and
ultimately, write their product report. We noticed that students writing, Javadoc documentation, interfaces and the Façade
had difficulties to understand the requirements and to elaborate design pattern. Unlike previous problems, students had to
the design class diagram. They needed tutor advice at times, implement all unit tests for the classes used, except for the
especially to redirect discussions to avoid moving away from Façade. All classes and tests had to be documented using
the proposed problem core. Javadoc. In addition to source code, students also had to
deliver a design class diagram for the system.
We observed difficulties to choose the sorting algorithm and
to pass functional tests. On the other hand, we perceived that In this problem, we observed that students had difficulties
students grasped the relevance of the concepts worked, espe- to interpret the problem, which we blame to the lack of
cially the concept of inheritance and the possibility of code familiarity with the problem domain. Lack of knowledge
reuse. Passing functional tests also gave them more confidence, about the stock market and stock exchange were the main
by allowing systematic flaw identification in the product under reasons identified, in addition to difficulties related to technical
development. Most students delivered the project within the concepts. Most students had difficulty implementing the bal-
stipulated four-week deadline. ancing of an AVL binary search tree. Nevertheless, the greatest
difficulty was to understand and use the Façade design pattern. the opportunity to practice, to code, to write, to test recursion,
Most students either did not finish Problem 3 in a timely to see a larger real problem. I can feel that they are being
manner or delivered an incomplete product. One of the pos- stimulated in the IM, which consequently leads to learning
sible explanations is the high complexity and the unknown in the theoretical course.” (I2). This allowed students to
domain. undertake more authentic projects by gaining experience in the
Finally, with Problem 4, students designed and implemented various stages of the software life cycle. They also learned a
a travel management application. Unlike previous problems, it more disciplined way of working, which will be useful in their
only presented a problem scenario and the informal specifi- following courses and professional lives. “The PBL method is
cations from the scenario, but no user stories. To solve it, challenging, and it is closer to real life. It seems to detach
students needed to develop a graphical user interface (GUI), from something strictly academic, approaching very much the
and learn the concepts of hash tables and graphs. In addition to real world.” (S2).
implementation, they had to provide unit tests for all classes, Careful problem planning has a relevant impact on learn-
system tests and documentation in Javadoc. They also had ing. A well-crafted problem can raise motivational levels,
to write their own user stories and deliver a design class while a poorly planned problem can have catastrophic out-
diagram for the system. This information had to be included comes. The quality of PBL problems is among the biggest
in a technical report, in addition to the source code. challenges of the approach. Excess of concepts, problem
On this last problem, students had the best results. They did domain and the required complexity are issues that must be
not show difficulties with concepts of OOP or data structures. considered. Concepts in the proposed problems must follow a
We noticed particular issues with software design. Students gradual learning process, so that students can better assimilate
had difficulties to build the design class diagram, especially or accommodate them. The choice of problem domain should
associations and class navigability. On the other hand, Problem take into account student reality, and it is a strategy to make
4 proved to be a stimulating experience for students. One of the problems more attractive and motivating. Problem complexity
possible explanations is the use of a GUI, allowing immediate must ensure that students can solve the problem with cooper-
visual feedback, and the chosen domain, since the problem ation. “This is what I see... it is better when you’re able to
dealt with an application similar to existing apps for travel design a problem closer to students’ experiences. Then, for
planning. instance, the smartphone travel app that simulates touristic
routes was the most well received by students.” (I1).
V. L EARNED L ESSONS The difficulties faced by instructors are related to different
The main learned lessons of our experience were: acquisi- issues. One of them is when to intervene in tutorial sessions.
tion of personal, interpersonal and technical skills; benefits Another is how to appropriately handle issues with interper-
of knowledge integration; need for careful planning of the sonal relationships. Student assessment is yet another. Instruc-
problems; and the difficulties faced by instructors and students. tors play the role of facilitators and are responsible for guiding
The PBL approach characterizes a learning strategy, and monitoring group work. They must have the capacity to
whereby students are confronted with contextualized and ill- play different roles in the various stages of the process. At first,
structured problems for which they strive to find meaningful they should be able to realize how a person behaves when he
solutions. The path towards solutions allows acquisition of or she has limited knowledge of a given content. Then, they
personal, interpersonal and technical skills. Personal skills must adopt strategies where their collaboration is relevant to
are related to autonomy, ability to solve problems and to the process. On the other hand, their interventions can not
make decisions. Interpersonal skills involve abilities to work be exaggerated, otherwise they would invade students’ roles
in groups, leadership and communication. “What is best in as advocated by PBL proponents. Appropriate intervention
the PBL method for students is their knowledge construction, requires empirical skills, and instructors must be sensible to
they try to learn on their own, incentive, creativity, autonomy, the process of knowledge development. In addition, instructors
development of interpersonal skills, which do not happen in the must know how to deal with interpersonal relationships. They
traditional approach. Communication is fully stimulated in the must know how to manage conflicts, be flexible, check incon-
PBL approach” (I1). Technical skills are related to the very sistencies, consider alternatives, and always lead the group to
dynamics that the PBL approach advocates. The experience greater productivity and cohesion.
allows the improvement of technical skills acquired with the Assessment in PBL is also a difficult task. Some of the
practical experience provided during problem solving. “The main difficulties are: assessing student performance, checking
PBL method is good because it makes us learn in practice.” the authenticity of student products and setting up appropriate
(S1). assessment criteria. Student performance is measured by their
The benefits generated by knowledge integration are one participation in tutorial sessions. Student participation in the
of the main contributions of our approach to learn software sessions is extremely important to exchange ideas and de-
development. Students experienced object-oriented program- velop hypotheses for problem solution. Nonetheless, students
ming, data structures, and software design concepts and skills have a diversity of psychological profiles. Various are shy,
in a pedagogical framework where theory and practice walk introverted and silent while others are participant, extroverted
together. “The IM helps with practice. In the IM, they have and communicative. One can not say that the quiet or shy
students are not studying or participating. Sometimes a short, We realized that the path taken by students to solve prob-
yet precise, contribution can be significant. Understanding the lems allows the acquisition of personal, interpersonal and
diverse subjectivity of student profiles and finding a balance technical skills. Among them, we highlight autonomy, problem
during assessment are some of the greatest challenges for the solving, decision making, working in groups, leadership, com-
instructor. “In the PBL method, students that have a hard munication, and technical programming skills. Furthermore,
time to communicate, sometimes introverted, shy and the like... the designed integration of knowledge enables more authentic
they have an opportunity to develop important communication experiences and more disciplined software production prac-
skills... to at least improve those important communication tices. We also realized that problem planning directly interferes
qualities, in different ways, learning how to participate in a with student learning, and that a poorly crafted problem may
meeting, expose ideas and opinions.” (I1). lower motivational levels.
Ensuring authenticity of student products is another issue Instructors face difficulties to assess student performance
encountered by instructors. This is typical of work performed because of its subjectivity and the need to take into account
outside class. Ensuring that there is no plagiarism is not students’ psychological profiles. They also have issues with
an easy task. Individual technical reports try to cope with plagiarism and to devise assessment criteria. Intervention dur-
this issue, but they are not always enough. Moreover, when ing tutorial sessions requires empirical skills, and sensibility to
assessing products, instructors need to develop assessment the process of knowledge development. In addition, instructors
criteria. In order to assemble criteria, instructors need feedback must know how to deal with interpersonal issues. Students
from the other tutors, and this is not always as simple as it also face difficulties, ranging from the transition between
seems. The greatest difficulty lies in finding the right balance programming paradigms to the autonomy required by the PBL
of assessment criteria for each problem. approach.
Students face difficulties during the transition between pro- In future work, we plan to evaluate the data collected in this
gramming paradigms, both with their abstraction skills and in integrated course both qualitative and quantitatively to provide
developing their autonomy. The transition from the imperative further insights on the PBL approach in our scenario. We also
to the object-oriented paradigm raises a cognitive conflict in intend to measure motivation levels in the theoretical modules
students, often time-consuming. On the other hand, learning of Data Structures, Object-Oriented Programming and soft-
object-oriented programming is not easy. The difficulties may ware Design, and in the Programming integrator module that
be caused by the complexity of the concepts to be learned in make up this integrated study.
a short period of time, by the intrinsic complexity of these
languages and also by the professional development environ- ACKNOWLEDGMENT
ments. “In the beginning, there is the shock of changing from The authors would like to thank both the students and
an imperative language to an object-oriented language, but faculty members of the State University of Feira de Santana
when you learn, you notice that it is way better”. (S1). Finally, (UEFS) that took part in this experience.
the PBL approach requires development of student autonomy.
Those who are not self-directed learners face difficulties in R EFERENCES
this new context. “The Programming IM has a very large
[1] T. Jenkins, “On the difficulty of learning to program,” in Proceedings
strength to involve students, but not all of them. Students that of the 3rd Annual Conference of the LTSN Centre for Information and
have difficulties with programming, with the profile of our Computer Sciences, vol. 4, no. 2002, 2002, pp. 53–58.
program, that have personality issues, maybe do not remain [2] A. Robins, J. Rountree, and N. Rountree, “Learning and teaching
programming: A review and discussion,” Computer Science Education,
much motivated.” (I1) vol. 13, no. 2, pp. 137–172, 2003.
[3] A. Pears, S. Seidman, L. Malmi, L. Mannila, E. Adams, J. Bennedsen,
M. Devlin, and J. Paterson, “A survey of literature on the teaching of
VI. C ONCLUSIONS introductory programming,” ACM SIGCSE Bulletin, vol. 39, no. 4, pp.
204–223, 2007.
This work presented an experience of integrating the courses [4] ACM/IEEE-CS Joint Task Force on Computing Curricula, “Computer
of object-oriented programming, data structures and software science curricula 2013,” ACM Press and IEEE Computer Society Press,
design into an integrated study of a Computer Engineering Tech. Rep., December 2013.
[5] M. Kölling, “The problem of teaching object-oriented programming,
undergraduate program. The experience happened in the sec- Part 1: Languages,” Journal of Object-oriented programming, vol. 11,
ond half of 2017, and used a problem-based learning (PBL) no. 8, pp. 8–15, 1999.
approach. This report presented the scenario, participants, [6] ——, “The Problem of Teaching Object-Oriented Programming, Part II:
Environments,” Journal of Object-Oriented Programming, vol. 11, no. 9,
planning and assessment, as well as the main results of the pp. 6–12, 1999.
experience and important lessons learned. [7] M. Kölling, B. Quig, A. Patterson, and J. Rosenberg, “The BlueJ System
Results are described as a temporal narrative of the problem and its Pedagogy,” Computer Science Education, vol. 13, no. 4, pp. 1–
12, 2003.
scenarios and the tutorial sessions. We describe the theoretical [8] M. Kölling, “The greenfoot programming environment,” ACM Transac-
concepts needed and how they were used in the integrator tions on Computing Education (TOCE), vol. 10, no. 4, p. 14, 2010.
module (IM) for each of the four proposed problems. We [9] J. Kay, M. Barg, A. Fekete, T. Greening, O. Hollands, J. H. Kingston,
and K. Crawford, “Problem-Based Learning for Foundation Computer
also highlight students’ difficulties in the different steps of Science Courses,” Computer Science Education, vol. 10, no. 2, pp. 109–
the tutorial sessions. 128, 2000.
[10] A. Vihavainen, M. Paksula, and M. Luukkainen, “Extreme apprentice-
ship method in teaching programming for beginners,” in Proceedings of
the 42Nd ACM Technical Symposium on Computer Science Education,
ser. SIGCSE ’11. New York, NY, USA: ACM, 2011, pp. 93–98.
[11] A. Herala, E. Vanhala, and U. Nikula, “Object-oriented programming
course revisited,” in Proceedings of the 15th Koli Calling Conference
on Computing Education Research, ser. Koli Calling ’15. New York,
NY, USA: ACM, 2015, pp. 23–32.
[12] R. A. Baeza-Yates, “Teaching algorithms,” ACM SIGACT News, vol. 26,
no. 4, pp. 51–59, 1995.
[13] P. J. Burton and R. E. Bruhn, “Teaching programming in the oop era,”
ACM SIGCSE Bulletin, vol. 35, no. 2, pp. 111–114, 2003.
[14] S. Cooper, “The design of alice,” ACM Transactions on Computing
Education (TOCE), vol. 10, no. 4, p. 15, 2010.
[15] M. Prince, “Does Active Learning Work? A Review of the Research,”
Journal of Engineering Education, vol. 93, no. 3, pp. 223–231, 2004.
[16] H. Barrows and R. Tamblyn, Problem based-learning: An approach to
medical education. Springer Publishing Company, 1980, vol. 1.
[17] R. Delisle, How to use problem-based learning in the classroom. Ascd,
1997.
[18] J. R. Savery and T. M. Duffy, “Problem based learning: An instruc-
tional model and its constructivist framework,” Educational technology,
vol. 35, no. 5, pp. 31–38, 1995.
[19] C. da Silva Cintra and R. A. Bittencourt, “Being a PBL teacher in
Computer Engineering: An interpretative phenomenological analysis,”
in 2015 IEEE Frontiers in Education Conference (FIE), Oct 2015, pp.
1–8.
[20] D. M. B. Santos, G. R. P. R. Pinto, C. P. P. Sena, F. C. Bertoni, and
R. A. Bittencourt, “Aplicação do Método de Aprendizagem Baseada
em Problemas no Curso de Engenharia de Computação da Universidade
Estadual de Feira de Santana,” in XXXV Congresso Brasileiro de
Educação em Engenharia, 2007.
[21] M. A. Albanese and S. Mitchell, “Problem-based learning: a review
of literature on its outcomes and implementation issues.” Academic
Medicine : Journal of the Association of American Medical Colleges,
vol. 68, no. 1, pp. 52–81, 1993.
[22] J. A. M. Ortiz, A. G. González, A. P. Marcos, M. Victoria, and
A. Nardiz, “Aprendizaje basado en problemas: una alternativa al método
tradicional,” Revista de Docencia Universitaria, vol. 3, no. 2, 2003.
[23] M. J. O’Grady, “Practical problem-based learning in computing educa-
tion,” Trans. Comput. Educ., vol. 12, no. 3, pp. 10:1–10:16, Jul. 2012.
[24] J. F. P. Cheiran, E. de M Rodrigues, E. L. de S Carvalho, and
J. P. S. da Silva, “Problem-based learning to align theory and practice
in software testing teaching,” in Proceedings of the 31st Brazilian
Symposium on Software Engineering, 2017.
[25] M. F. Angelo, A. C. Loula, F. C. Bertoni, and J. A. M. Santos,
“Aplicação e avaliação do método PBL em um componente curricular
integrado de programação de computadores,” Revista de Ensino de
Engenharia, vol. 33, no. 2, pp. 31–43, 2014.
[26] R. A. Bittencourt, C. A. Rodrigues, and D. S. S. Cruz, “Uma Experiência
Integrada de Programação Orientada a Objetos, Estruturas de Dados e
Projeto de Sistemas com PBL,” in XXXIII Congresso da SBC – XXI
WEI., 2013.
[27] G. M. Ferreira, M. Z. Nascimento, K. D. R. Assis, and R. P. Ramos,
“Teaching object oriented programming computer languages: Learning
based on projects,” in Proceedings of the ICSEA, 2007.
[28] R. A. Bittencourt and O. A. Figueiredo, “O Currı́culo do Curso de
Engenharia de Computação da UEFS: Flexibilização e Integração Cur-
ricular,” in Anais do XXIII Congresso da SBC. Campinas, São Paulo:
SBC, 2003, pp. 171—-182.