Transcript
This transcript was autogenerated. To make changes, submit a PR.
Hello guys. I'm here to talk with
you about Pyto as an
oop, oop, oop, oop, oop, oop, oop,
oop, oop, oop, oop, oop, oop, oop, oop, oop,
oop, oop,
oop, oop, oop, oop. Teaching tool
in the information to thank you for the opportunity for
this opportunity to talk a little bit about education.
To talk a little bit about Python.
So, I've been teaching
since 2010 here in Brazil
in a small university called wengi.
I teach at information systems
course. I live in a small town named
Ituyutaba.
Well, during my master's
degree, I studied a little
about gamification and how
we can use these mechanics of gamifications,
these mechanics that is used in games,
and how we can use this in other ways.
For example, in education, how can we
teach in a better way using games
mechanics? So, in other words,
the concern of teaching and how
to teach better, how to teach in a
profitable way for students has always
been in my goals as a teacher.
Of course, English is not my main language,
so I apologize in advance if I make any
mistakes. Well,
our goal is to share the
experience of using the Python language to teach
objectoriented programming to difficult found pedagogical
approach that I used exercise practice
performed with our students. This is
our goal here, to share with you a
little experience of what I've
been doing to teach in a better way. We will
talk a little about the difficulties we encountered,
how we conduct all this work with our students,
and how we are
always aiming on real world activities.
Well, one of the biggest problems
found here in Brazil in technology courses,
mainly in technology course, is the high level of
evasion. Many students, a lot
of students of eight, start studying
computer science or any other course
in this area, for example,
system information.
But they end up being disappointed by
the difficulties found on the course
on the first year, on the second year.
Here in our country, here in Brazil.
Unfortunately, the early years of school
and what we here call high school do
not provide a strong foundation in math,
for example, in other areas too,
but specifically in math,
the students don't have a strong
foundation. And this way,
many students arrive here in the college with
difficult in math and logical thinking,
with difficult also in writing.
So these lead a lot of students.
This lead many students to drop out or
changing curse to a different curse that don't
have a strong emphasis in math,
just in the first few months of study.
Well, here we have, for example,
some data taken from a survey carried out
here in Brazil, that shows a drop
rate of 69%
among technology curses students. This is
a high number. This is a high number.
Even more considering the number of slots available
for work here in Brazil and around the world. With tech,
there are a lot of slots. There are a lot of
opportunities on work
careers to work with technology here
in Brazil and all around the world. But despite
this, even considering this,
our students are dropping out.
So it's also worth remembering that
with the pandemic that we are living, still living right
now, in 2022, many vacancies
that previously existed only in large
shopping centers, in large
centers like Sao Paulo, became remote work.
A lot of companies that in
the past used to have slots available
just on their cities,
we have now remote work or work
from home. As a result, the number of slots available
to people who live in small towns like minas has increased
significantly. Basically, it's possible to
work in any company in the country, here in Brazil,
or around the world. And even with
the end of pandemic, most of these slots
will remain remote.
A real transformation has taken place in the
labor market.
Here again, we have another research.
Sorry, it's written in Portuguese,
but this research is showing that the
greatest difficulty for students in subjects
involving logic and programming,
just to make the most of the time, I want to read it all.
By the way, it's also in Portuguese, but I will
supply all sources in the presentation and
will be published on the speaker deck after our
talk.
Ah, one more survey here,
this is another from 2018,
also shows academic performance as a possible
source of evasion from the curses. Of course,
there are many factors. Of course there are many factors,
such as financial. We have also a
lot of students that have to work
during the day to support themselves,
to support their families.
Even the location where they stud,
most of times are far from the university, far from the college.
But it's also worth remembering that the difficults,
if logic and math are there,
they are always there. And the scheduling.
And the scheduling is an important factor.
Well, all of us in the field
of programming technology know that it
always starts with the hello word.
Whether it was done in the past, in Clipper,
in basic, Delphi,
Java, or python. It turns
out that for years, for many years
here in Brazil, college teachers,
professors use c.
They always, in the past, used also
Java as the first contact language
for students. And by
the way, part of the problem,
maybe the main problem, is here,
these two code snippets have the
same goal. Here we have the same goal to
make the hello word example for those who have
never had contact with programming. Which of
these, the first one or the second one is
easier to understand? The first piece of code that
you can see here above,
if I need to teach these students, I have
to teach them what is a class,
what is the meaning of the void word,
why we have a main word
here, and what is a string
in the Python code, everything is more
direct. We have a less verbosed
code and therefore easier for the student to understand.
It's also easy to teach
them why this code is here,
why we have print, and why
this is nipped of code. This way it's easier.
I really like this phrase
because it focuses on experience.
In other words, to learn you
need to effectively do and
experiment. There is no
easy way to learn, just reading a
book for examples. You can't clear how
to program just reading, you can't learn
how to program. Just listen to somebody
give a talk about programming, about classes,
about how to make a program
that reads a data set on an SK lite,
for example. No,
we have to actively experience,
we have to
training a lot to make a practice on
daily and a weekly basis.
Of course, we all know that
in the university, the university itself
is based on theoretical knowledge,
but it is also important in this preparation
of career for the study of technology course that
we really focus on the practical part
precisely for this reason, experimentation and
practicing both of them is
a fundamental part of learning,
mainly on programming. So basically on
this scenario, basically on these difficults,
found the objective of the work.
The objective of my work in the past three,
four years ago, when I began to teach object
oriented programming, programming was to develop
a pedagogical approach,
a way that
would make easy to the
student learning. Starting always
started on a simple way and gradually increasing
the challenge and gradually increasing
the involvement, making it hard on
small steps.
So the first
part about lectures, we know that in
the university we have a lot of teachers,
a lot of professors with extensive academic
careers,
and we have teachers also that have work
experience in the technology field.
We have teachers that have experience in
programming and project management,
working on an it company.
This is very, very nice. And this makes
the difference to the students because we are
able to work on a more
practical class aimed at a professional development.
It's often remembering also that the teacher
is always, and the teacher is still the
central role in the teaching and learning process.
We have books, we have programming, we have lecture,
we have a student with a fox to learn.
But the main subject,
the central role on this process of
teaching and learning is the teacher.
So the
first step we must found a
way that is easy to get started.
Instead of focusing on a process where the
student would have to install IDE
libraries, MySQL and the other software
just to start developing, we chose
to use an online tool that allows the student
from the first minutes of the class to start working
with that language. So we
chose to use repo software that allows
the student to work from anywhere. Start development
almost immediately. You can also start programming at
home on your lunchtime
and then access your entire portfolio
from college. We always
encourage students to keep their codes on this platform
and solve all activity, all lists of exercises
to make all their practices using
ripple using the repo software. So I
do not work at repo, but it's a
great tool to teach.
So on the right side we have the python interpreter,
and on left side we have the code. Here is
one of the first exercise lists.
The second point that we are always aiming is
to have a clear problem definition.
We notice that many times these students
start trying to solve certain problem, started trying
to program without even having
understood all that needs to
be done. They even understanding what
they have to do. And just no, I have to program, I have to start
typing. No. The most important step here is
to make the proposal problem easy to understand.
They must really know, they must really
understand what they have to do.
And the exercise lists are also a start with
very, very basic and simple activities.
Here, for example, we are talking about
an activity where we start with the
first list, a program to add two numbers,
just this, you get one number,
you get another number, a second number,
and you must sum them. There we
go. On the next exercise, the number two,
where we have to convert meters to millimeters.
This is also an easy task.
It's also an easy exercise. But we are
increasing the difficult step by steps.
Because the third point,
this is increasing difficult.
In the beginning is very easy. In the beginning it's very easy.
Yes, it is easy, but we always work with activities with increasing
difficulty in order to always keep the
challenging. This is a kind of mechanic
from gamification. I cannot work only with
his exercise because the student will
lose his motivation. At the same time,
if I create something extremely demanding at
the beginning, the chance of giving up is very
high. So the increasing difficult
is the point. We start easily.
We always increase in the difficult. The first exercise
in python is to add two numbers, just this.
But in the end we will develop a crude create,
retrieve, update, delete code.
Here, for example, we have some exercise with Heidegger.
Difficult. They are in Portuguese, but basically we are
asking for some complexes, exercises, tasks involving
time, monetary values, temperature,
conversions and some others. With each new list
of exercise, the difficult increases. There are total
of nine exercise lists. I just want to point out
that this same approach that
we use for teaching programming, we are
using the same approach to teach, for example,
SQL. It's not necessary
to install anything. We are using just
an online tool. We are using just increasing
difficult, starting small step by step.
The four point is collaborative work.
Activities are not developed individually.
Students always work in groups, they are always
working and even encouraged to research,
to google it, to talk about activities and
discuss the best solutions with their colleagues.
Always collaborative work.
When they go to work on development
team on an IT company, they will
always work with you, other people, they will always
do pair programming and they will ask
a question when they are not understanding something.
That's why here in the college there
is no problem on working that way. Here they
can discuss, they can talk, they can research,
they can Google, no problem.
So we always work together
using online tools and always with teacher
supervision. Teacher follow up is important, it's very important.
Students look for solutions, but we as
teachers must always guide their
work.
The next point that we have on this
pedagogical approach is to as
far as possible, we chose to work with tools and the practices
that are used in companies around the world.
So lattice
is a brazilian system where students register
their data as researchers and academic life.
It's important to keep use it by those who want to
in the future do a master degree or
a PhD. And of course
we ask that they also always published
their code to repose stories on GitHub.
So everyone is encouraged to use
GitHub from the first week. Guys, drink your
water. Always.
So all students created GitHub accounts.
A lot of people didn't know how to use it, but we went through a
process of encouraging a little by little.
And all the teachers on the college do the same.
Multidisciplinary our goal was to teach object
oriented programming. That's it. This was clear from the start.
But our goal is also to get as possible to
what happened when students start to work with development on IT
company IT team. We know that in addition to a language,
it involves knowledge of database, project management,
agile, software engineering. We use
software engineering, for example,
to understand the scope and the requirements,
the database we store and the project managed to track development.
So that's the challenge.
Find a way to mix all these concepts and deliver something.
In the end. Our goal is always in the end to deliver
the software running and serve the customer.
But for that to happen,
just my cam.
But for that to happen there is a lot of work
behind the scenes. After initial concepts
and list of exercise with primary concepts, we move
on to some more practical examples
and the last is all
open and publish it all source code
for activities available on GitHub. The exercise
lists and slides are also there. The classes
were recorded and made available through YouTube channel.
The most interesting is that later I published a post
on my blog explaining this entire process and
a few weeks later I received emails from students asking for help
with activities and exercise. Students from another
states here in Brazil. That's this. They effectively
followed the classes recorded on YouTube,
available on YouTube and performed the exercise.
People from other cities, from other states who studied at the other
college also followed this
project and this was very
rewarding.
We had recorded lessons and some live lessons
too and these classes were also available
on YouTube. The pandemic forced us
to adapt our process and the way of learning and the way of
working, the way of teaching. But in the end it seems that
we management. We extracted the best of
this situation.
This is the page where I published on the blog and had
a lot of visits. Several people asking help
and using our proposal.
This is one of the YouTube lists from the last year.
There are many classes divided by section,
organized by sections.
One of the intermediate exercises develop a tic tac
toe. Here in Brazil we call Jogu d'velia.
There is no intelligence here in computer decisions,
only a
position, but even it required
to use the vectors, conditionals and the other language resources.
This is another activity aiming to use a brazilian
public web server to search exchanged
quotes. This activity was simple consultation
only. But in the final activity, later in
this type of query you'll be using in other contexts.
So here we are consuming using
a web service, a public web service.
So this
is a crud why it
is used? It's used to create, retrieve data,
update or delete.
I am always saying that
building a crude is a way to show
proficient in a technology, in a language by joining a
programming language with a database system and be
able to being able to record,
to retrieve information, to list, to update
the data they studied. We have the basic
knowledge of data manipulation.
So that's it.
Here we have some books. My books are
available on Amazon.
We have four books.
And here
is my website where I have all
my network,
Twitter, LinkedIn,
GitHub, YouTube channel and
that's it. Our main point here
was to share with you all our
work as a teacher where we use a
lot of python to teach her in a better
way. So our main point here in this talk
was education, but education with Python
always trying to solve the problem using
a professional approach,
using tools that are always
used in it teams, it companies.
That's it. I would like to thank
you again for the opportunity to
talk here at Conf fourty two, and thank you for
your patience to be listening
me and sorry for any mistake I made in this
process, because English is not my main
language. That's it. My name is Chiago Basiochi
and I'm here to help you if you need any
doubts, if you have any questions,
please reach me out.
We can share more knowledge, we can
learn with each other, and especially to
that teachers, college teachers, school teachers
that have some help. Our main
objective, our focus is to always
encourage the use of gamification mechanics,
encourage the use of a better pedagogical approach
to teach aiming
that our students will always
have a better understanding on
a practical way, but also with
a theoretical base. This.
That's it. Thank you very much
and I hope that you always
like this content, the content of this
talk. Thank you guys.