This course has been something really new to me.
I learned the more fundamental concepts of Object Oriented Programming, as well as putting most of these into practice. Classes, objects, attributes and methods. APIE: Abstraction, polymorphism, inheritance, encapsulation and delegation. Has-a, is-a relationships. Visibility modifiers. Overloading and Overriding. Also I learned about software development tools and practices like UML and CRC cards. I still have to learn about the metaobject protocol. I also learned a lot about the Unity game engine and about video game networks and protocols, the Authoritative Server approach, latency compensation, client prediction, server reconciliation and other interesting concepts. this and this are some really nice articles about the subject.
First off, I thought I wasn’t doing a lot of things, the course was really relaxed, doing the assignments whenever I wanted and learning whatever I wanted. A lot of people coursing OOP with Salinas told me that I was learning nothing, because the way the class works. But at the end of the first partial I realized I had learned more than my fellows from the class of Salinas, and they are still saying “you didn’t learn about Java user interfaces”, but honestly, I don’t give a duck about user interfaces. I was learning all the theory and doing the programming wsq’s by, which is quicker than having the teacher trying to put the concepts in everyone’s head in one class, because I think everyone has it’s own learning rhythm.
I personally think this teaching method is really good and could work really well, but first, ken has to polish some aspects of the course:
First, there must be more emphasis on doing the assignments, because people (at least most I know) is not very interested in self-education, they don’t do the things they should until they realize they have one or two days left for finishing everything. They don’t manage their time correctly, they prefer to procrastinate all the time instead of focusing in what is really important.
Second, I think there should be more programming assignments, sometimes I learned the concepts, did the posts about what I learned and everything but never put these concepts into practice, making me feel like I did not master the topic completely, and I don’t mean learning Java, I mean reinforcing the concepts learned with something practical, because I definitively think that this class (and every programming class) should be language agnostic, focusing on learning the theory and putting these concepts in practice in whichever language the student wants.
I think that if ken really efforts improving his course in these aspects he will have a really, really good course, keep the good work!