WSQ06 – Greatest Common Divisor

--Originally published at finntc2016

Doing WSQ06 took some time, since it was the first WSQ where I actually needed to write object oriented code. I didn’t only rewrite my non object oriented Python code from last semester to Java but really create a number-class that has its fields and members and accomplishes its responsibilities.

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


WSQ06 – Greatest Common Divisor

Project update 01

--Originally published at finntc2016

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:


Project update 01

WSQ04 – Flipped Learning / #AbolishGrades

--Originally published at finntc2016

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

--Originally published at finntc2016

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

--Originally published at finntc2016

This post is not complete yet

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. more

[link to repository]


WSQ02 – Hello World

WSQ03 – Object-Oriented Basics

--Originally published at finntc2016

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