Project update

For the project of this course, I’m in a team together with David, Luis and Ricardo. Have a look at their blogs:

We decided to build a little robot that takes fotos every few seconds in oder to ceate a timelapse videos for the user, utilizing a raspberry pi (RP). After setting up and installing the raspberry software, we started experimenting with java on the RP.

Ricardo found some good sources of similar projects that might help us:

After that we started to create the UseCases in class. We got those four:

12903816_997885020265517_1069176269_o

But we noticed soon that we might break down those UseCases into more simple ones.

Project update

WSQ04 – Flipped Learning / #AbolishGrades

In this post I will share my ideas about the concept of abolishing grades for students.
My opinion about flipped learning you can find here on an old blog of mine.

These sources gave me information:
A Lecture From the Lectured
An A+ student regrets his grades
Should grading systems be abolished?
The Day I Abolished Grading

In general I find that this way to teach a good thing. What I don’t like is how the students in the first source argue. It sounds like they go to class with zero motivation and no discipline and blaim the teacher afterwards for not making it entertaining enough for them. It is good to give feedback to teachers, but it’s still your choice to get educated or not, which is why you should definitely learn to have some discipline if you want to go to school.

Anyways, if you want to realize an abolish grade system on a big scale, you should take two things into consideration:

  • Not only school would need to change, but also the whole industry. At the moment grades are being asked if you want to start working at a company directly after leaving from school, all over the world.
  • In some situations (e.g. in courses with 1200 people) it’s just not possible to abolish the grading system.

Things like this are obstacles on the way to get rid of the current grading system.

Nevertheless, I find it a good idea. In Finland the system is less evaluation-driven and PISA confirms a better education there. (But there are other important factors as well, that improve the quality of education in Finland. E.g. the average amount of students in one class is far smaller and teachers get different trained than in other countries.)

WSQ04 – Flipped Learning / #AbolishGrades

WSQ03 – Object-Oriented Basics

After watching this video I know a lot more about the concept of object-oriented programming (OOP).

Working with objects is quite different from procedural programming. In many cases it’s more useful for developers since it’s closer to real life problems.

Furthermore I learned about some terms and concepts such as:

  • Static / dynamic typed languages:
    • static: Do type checking at compile-time (e.g. Java, C#, C++).
    • dynamic: Do type checking at run-time (e.g. Python, Javascript).
  • Classes: Basically a data type definition, made of its members, the fields and the methods
  • Objects: Instances of classes
  • Encapsulation: The fields of an object should only be read and written by invoking the methos of this class. If you follow this principle, the code gets easily modifiable. If not, you soon get «spaghetti code».
  • Public / private members of a class:
    • Public members can be accessed by methods from other classes.
    • Private members can only be accessed by methods of the same class. If you want to follow the concept of encapsulation strictly, all fields of a class should be private.
  • Inheritance:
    • If the class a  inherits from class b, and b inherits from the class c, then b contains all members of c and a all the members from b (and therefore also the members of c).
    • a and b are subtypes (or descendants) of c. b and c are supertypes (or ancestors) of a.
    • Direct subtypes are called childs. Direct supertypes are called parents.
    • Inheritance is used between classes that have a is-a relationship. Not a has-a relationship. (E.g. a cat is a kind of a mammal.)
    • Some programming languages allow multiple inheritance.
    • If an ancestor has the same method than one of his ancestors, it get overwritten, so that the methods  can be made more specific for the subclasses.
  • Polymorphism: The choice of the method being invoked depends on the object which is chosen as an argument.
  • Class members: Members of the class itself and not of its instances. In Java they’re called static members. There are reasons for them to exist, but using a lot of those members is not object-oriented.
  • Constructor: Method which is run in order to set up an instance of a classes. How he looks like is context dependent.
  • Interface: If there are different classes which are not related but share the same set of methods in common, an interface can be created to form a bundle of methods which can be used by those classes.
  • Abstract class: A class that just serves as ancestor for other classes and which is not meant to be instanciated itself. (E.g. it doesn’t make sense to instanciate the class «mammal» because there is no «the mammal».)
WSQ03 – Object-Oriented Basics

WSQ02 – Hello World

Managing to run my first Java program in Eclipse was easy with the help of this tutorial.

More complicated was connecting Eclipse to GitHub. On my way to this I found out several things:

I downloaded EGit here (thanks for the help, Ken). Then I used this great video tutorial to get the connection between Eclipse and GitHub working. There are five videos in the playlist. The first three explain the basics while the last two are a bit more in depth. I’m sure I’ll watch them again when I start to code seriously with my mates on our project together.

Here you can find the corresponding repository:
https://github.com/finntec/wsq02.git

WSQ02 – Hello World