WSQ10 -College Advice

--Originally published at JAVALIO

Well I was kinda lost the first time I see those advices, I mean three or four I already expected by there are some that I did not see coming.

Let’s review some of the most important advices Joel Spolsky gave us.

  1. Learn how to write before graduating.
  2. Learn C before graduating.
  3. Learn microeconomics before graduating.
  4. Don’t blow off non-CS classes just because they’re boring.
  5. Take programming-intensive courses.
  6. Stop worrying about all the jobs going to India.
  7. No matter what you do, get a good summer internship.

This list is the whole advices, I will talk about Learn how to write before graduating, Learn C before graduating,  and Take programming-intesnsive courses.

I wasn’t aware about the importance of writing. I mean, I have been in some competitions and always seems like the documentation is an important thing,  but I never expected to be that important, but I could see why, is like the presentation to the world of your product, that product must sell, and attract to anybody.

Learning C before graduating, I guess is one of the most important things to do in my life, I have to many doubts about the how the low level programming happend, how os are build, how drivers work, so this is very important.

This is a important point I have learned with flipped classroom, you should always look for improving for yourself, taking courses, intensive course will help any programmer to be proactive and do more things by himself.


WSQ10 -College Advice

Course Review

--Originally published at Alan TC201

Another semester has gone by and is time to do our last projects, exams and more, but first I’m going to do a review about the Object orientated programming course.

Course Review

This class was very interactive and different from other, you have a lot of freedom but at the same time you have to use that freedom wisely, you can’t go around doing nothing in this course.

Course Review

You need to do all the work, investigate for yourself and learn for yourself, because that’s the way of learning nowdays, you have the internet with all the information you need. So the Ken is there to help you and guide you in tings you are not understanding, the wsq’s and the masteries are there to practice your abilities the project is there to show your abilities, and your blog, github, Lynda.com and twitter is there to teach you to be connected and find information. All in the course is extremely put together to work.

Course Review

And then you have extras, for example sometimes we receive from Ken some information about history of programming, this things had nothing to do with the course but where very interesting, we used different programs like python or java like if they have been there forever, but no, those things also had its history, and that was the grate about kens class this semester, you could have everything as long as you were responsible, but you also received more, like extras.

Course Review

So in conclusion, this class is very good, but only if you adapt to it.


Course Review

WSQ13 – James Gosling

--Originally published at Alan TC201

In this video of the Triangulation Podcast the men invited is James Gosling one of the inventors of Java. His passion in the computers came in a very yong age, when his father show him an old computer and James got fascinating with the device. He started to get information about that, and then in school he discover programing he started to work in satelital programing and he used to skip school a lot of times, but their teachers where happy that in such a yong age we could be gaining money in something very new in those days.

WSQ13 – James Gosling

He worked in IBM, their first projects was software, the idea of JAVA came from a small group that saw how everything was changing hardware to software, they saw that they run with problems that people that were not preper to program did.

WSQ13 – James Gosling

This podcast was more difficult to understand than the past one. It was mor tectician, but the core, the story of Java was very interesting, the highs, the lows, the conflicts with google, oracle and everythins,

WSQ13 – James Gosling

You can see how everything happend and what is know teaching kids to learn java, in this case Minecraft.

WSQ13 – James Gosling

 

 

 


WSQ13 – James Gosling

WSQ 12 – Ward Cunningham

--Originally published at Alan TC201

I used to herd podcast about video games in the past, but right know I’m to busy for that kind of luxuries. I’m going to be sincere, I was hoping to get bored with this video, Ward Cunningham, the creator of te Wiki! the goddamn Wiki!

WSQ 12 – Ward Cunningham
It is very incredible how a man so simple could have contributed in such a big way in computer programming, in the internet and in sharing information in general. Yes the Wiki was the main topic, but in the podcast they also talk about how were the school days of Ward, how he started to get interested in this big and noise devices that where the first computers.

WSQ 12 – Ward Cunningham

Then the conversation turn to small talk the Object oriented program, that is exactly that purely object oriented.

WSQ 12 – Ward Cunningham

Then the more important part was the creation and life of the wiki, how it was created, why it was created, its influence to the distribution of online information, menciona Wikipedia and how is the biggest representation of this type of data, etc.

WSQ 12 – Ward Cunningham

PD: Something wird was that the advertisements where actully fun to watch, I don’t know way.


WSQ 12 – Ward Cunningham

Project advancements – Hangman done!

--Originally published at oscarlopez95blog

So our project as you already know will be an arcade machine simulator, with different games, a credit system and 2 players.

We’ve already finished the hangman game and we’re almost done with the other two.

We just need to implement the game logic into a graphic environment.

Here’s the code for the game.

If you have any questions about how we did it feel free to comment on this post.


Project advancements – Hangman done!

Partial 2 masteries

--Originally published at oscarlopez95blog

What are inheritance and polymorphism? (Specification and implementation)
Inheritance is the process where one class acquires the properties (methods and fields) of another. The information is managed in hierarchical order.
The class which inherits the properties of other is known as subclass, and the class whose properties are inherited is known as superclass. It uses the “extends” keyword.

class Mammal{

}

class Cat extends Mammal{

}

Polymorphism is the ability of an object to take many forms, the most common use is when a parent class reference is used to refer to a child class object.
Any object that can pass more then one “is-a” relationship is considered polymorphic.

public interface Vegetarian{}
public class Animal{}
public class Deer extends Animal implements Vegetarian{}

By this logic, Deer is-a animal, vegetarian, deer and object.

What is delegation?
Inheritence uses the java compiler’s type system to implicitly include code from elsewhere, with delegation you explicitly implement the callout.

Inheritance is limited to a single parent class (and ancestors) but it can sometimes be non-obvious where your code is going; delegation is less elegant, but you can bring in functionality from multiple other classes and the flow is clearly visible.

What are CRC cards and how do we use them?
CRC cards are usually created from index cards. Members of a brainstorming session will write up one CRC card for each relevant class/object of their design. The card is partitioned into three areas:

On top of the card, the class name
On the left, the responsibilities of the class
On the right, collaborators (other classes) with which this class interacts to fulfill its responsibilities

Using a small card keeps the complexity of the design at a minimum. It focuses designers on the essentials of the class and prevents them from getting into its details and implementation at a time when such detail is probably counter-productive. It also discourages giving the class too many responsibilities. Because the cards are portable, they can easily be laid out on a table and re-arranged while discussing a design.

What are overloading and overwriting? How do we implement those in Java?
Method Overloading is a feature that allows a class to have two or more methods having same name, if their argument lists are different. To overload, you have two or more methods with the same name, but different arguments.

The benefit of overwriting is: ability to define a behaviour that’s specific to the subclass type which means a subclass can implement a parent class method, but with different arguments. To overwrite, you re-write a method from the super class, with different arguments.

What do you feel are the benefits to object-oriented programming?
Code Reuse and Recycling: Objects created for Object Oriented Programs can easily be reused in other programs.

Encapsulation (part 1): Once an Object is created, knowledge of its implementation is not necessary for its use. In older programs, coders needed understand the details of a piece of code before using it (in this or another program).

Encapsulation (part 2): Objects have the ability to hide certain parts of themselves from programmers. This prevents programmers from tampering with values they shouldn’t. Additionally, the object controls how one interacts with it, preventing other kinds of errors. For example, a programmer (or another program) cannot set the width of a window to -400.

Design Benefits: Large programs are very difficult to write. Object Oriented Programs force designers to go through an extensive planning phase, which makes for better designs with less flaws. In addition, once a program reaches a certain size, Object Oriented Programs are actually easier to program than non-Object Oriented ones.

Why do you think your change to object-oriented programming is difficult or what makes it difficult for the standard student?
I think it’s difficult to start because it requires more planning than other ways to program. To create an object-oriented program you need to design it very well, and even though it gets easier as the program gets more complex, the beginning of the program is hard, and by consequence, the learning curve for object-oriented programming tends to be harder at the start.


Partial 2 masteries

WSQ10 – Advice

--Originally published at Hell Yeah

Recently we got assigned to read this article, where Joel Spolsky gives advice to Computer Science students. He gives seven great tips for CS students, which are the following:

  1. Learn how to write before graduating.
  2. Learn C before graduating.
  3. Learn microeconomics before graduating.
  4. Don’t blow off non-CS classes just because they’re boring.
  5. Take programming-intensive courses.
  6. Stop worrying about all the jobs going to India.
  7. No matter what you do, get a good summer internship.

Most of these tips (2, 4, 5, 7) are the staple tips of every programming forum ever (/r/learnprogramming comes to mind), but the other three are quite interesting to me, and to be honest I never thought about them.

Number 1 talks about the importance of written and spoken language in this area. One might say “But why should I worry about this?”. There was a movie called The Wolf of Wall Street in 2014, and there’s two scenes that popped back into my head when I read this tip. The first one is when Jordan Belfort sells stocks of a really small company to a guy over the phone as if it was the next East India Trading Company. The second one is the last scene, where Jordan gives a seminar about sales, and asks the people at the seminar to sell a pen. The points these scene try to get across is the same as the tip on Joel’s post. It doesn’t matter how big or small your project is, the difference is when you present it to other people. Speaking and writing excellently is necessary.

The third one talks about microeconomics. I couldn’t explain a lot about what he wrote because I frankly don’t understand about economics. Which is exactly why this advice is important. There is no job you could take in this area where economics will not be handy. And as he says, a programmer that understands business is automatically worth more than one who doesn’t.

The last tip  speaks about not worrying about outsourcing to countries like India. but in this day and age, that is no longer a problem. There is an increasing demand for excellent programmers. If the effort is spent towards this goal, jobs going somewhere else is not a problem, there will always be more.


WSQ10 – Advice

Inheritance and polymorphism

--Originally published at Alan TC201

Inheritance is when a ‘class’ derives from an existing ‘class’. So if you have a Person class, then you have a Student class that extends Person,in other words everything that the class person has is in the student person as well.

Inheritance and polymorphism

 

Polymorphism deals with how the program decides which methods it should use, depending on what type of thing it has. If you have a Person, which has a read method, and you have a Student which extends Person, which has its own implementation of read, which method gets called is determined for you by the runtime, depending if you have a Person or a Student.

Inheritance and polymorphism

Cuando una subclase extienede de otra pero esa subclase tiene su propio parametro


Inheritance and polymorphism