Monday, May 6, 2019

I Can Be Anything

Now that I am working much slower and reading into the text much more carefully I am finally starting to understand what I am in need of accomplishing. Coding is not meant to be overly complex but rather simple and easy to understand, at least for an outsider.

In one of my project, I was required to make a program that simulates a field harvester. The way that it was made is so that is able to harvest rows of Beepers and collect all of them. The trick was that the number of rows can be different each time which meant that the program had to be easily modified depending on the number of rows, which is why I had to make two main actions in order to be able to harvest the beepers.

The two needed numbers of beepers that were efficient to use were 1 and 2 rows. This allowed harvesting rows in both odd and even numbers while being able to return in order to harvest the next row.


The code was created in a way so that it is simple to use by typing in a single command in order to either execute a Single or a Double command which allows a variety of different ways to utilize them while all the subcommands are working the background making sure that the simple ones that are visible can work properly.

All of this strengthens my current goals that I have been trying to achieve in recent times. I needed to learn how to make my code simple and understandable, which is the area where I'm currently improving. This is something that I need in order to finally do what I am trying to, get into the advanced class that I was aiming for.

Thursday, April 4, 2019

Type, Check, Repeat

As I started learning the new material of coding and progressing through the book at a proper speed instead of rushing through and not reading, I started to understand the material that I am learning. Everything now was making sense and becoming partners that I was typing and repeating after some modifications.

I was progressing through the different project and was achieving different tasks now. I was able to make a bot climb up a mountain or make a "dog" bring a beeper to a "human" as if it was a newspaper. Now I am able to work independently and complete the tasks I have set as a goal in mind by utilizing Java as a tool to achieve my goal.
I had some issues with understanding new material from time to time, it was bound to happen. Probably the biggest one was for me to understand how to make a world that was completely custom and created for a specific task to be completed. I needed to make two specifically, a house and a dog and a mountain that the bot needed to climb. I had to use a specific program that worked like a lego puzzle that I needed to build. 

This allowed me to realize how creative I can get with the program if I tried to make something. It is limited but only for now as I will be exploring more ways to achieve my tasks through new methods. Now I must proceed on learning in order to achieve my goal of reaching a specific class where I will be able to challenge myself.

Tuesday, March 26, 2019

Learning is not Hacking

After learning the basics of how Karel works and operates I started practicing on a problem that was given to me through the textbook. It seemed very simple and I thought that I would try to jump ahead which was a big mistake that I made through this learning process.


As soon as I finished learning the basics I started to explore the code and tried to go through the material at an accelerated pace. That was a big mistake that I made as I started realizing that I was struggling as nothing worked. As soon as I asked for help from the teacher my mistake was quickly revealed. It became obvious that I was trying to rush through the material without learning which was almost like hacking but very poorly.

I had to go back through the entire textbook instead of just skimming through the slide show. This made me realized how much I actually missed when I decided to be arrogant and rush through the material instead of learning properly.

The entire issue started from me trying to create a sperate bot in a different class which could move around and turns better than a generic UrRobot. I had to create a public void command which made the bot turn 3 times to the left in a single line of code instead of having to type out 3 of them.

The mistakes I made while working on this project were an excellent learning experience for me and allowed me to understand the fact that I mustn't try to find short cuts in this class. I had made a goal for myself to improve as a learner and actually work through it properly and not skip majority of the material in order to progress faster.

Deja Vu in Learning

After finally getting over the struggle of installing Karel the Struggle Robot I had reached the point of where I needed to start learning. I had to use the sources I was provided with which were slideshows and a very good textbook that was given to me. It was obviously going to be difficult and would require some learning in order to progress through it and understanding all the basic commands and properties of Karel, Karel's commands and Karel's world.


Firstly I had to start by learning the basic objects that were always present in the world and had to be there in order to control the robot. There are Alleys, Avenues, 4 Directions, and walls. The first three are used for the bot to orient and the walls can be manipulated through the world editor in order to limit the space of movement or create a specific path that needs to be followed.

The second thing in the process of introduction was that I had to start by learning what were the objects present in Karel's world. Those objects included walls, beepers, and robots. Those objects were directly manipulated by commands that were coded into the robot. Those programs allowed to Karel to move and pick up/drop beepers that it carries. It was rather difficult to notice all the little details about it and small mistakes that can be easily made: Caps, punctuation and etc.

After observing all of this I now see how Java is very similar to what I learn in its learning method. It's a puzzle that I must learn in order to be able to go deeper into the code itself which is my goal. To be able to learn how to learn better and dive deeper into Java in order for me to be able to achieve my goal.

Monday, March 25, 2019

Karel the Struggle Robot

In order to begin my work on learning Java as a language, I had to begin learning in a program called Eclipse. Despite the fact of how easy it sounded to start this, it wasn't. The installation of the software was the first issue before actually learning and exploring the program.

As soon as I started attempting to progress, or so I thought, I ran into an issue of installing the software to starting the programming. The first issue that appeared was the installation of Eclipse. I needed to request help from some students that were in a class above me, AP Comp. Science, in order to install this.

As soon as I finally managed to install the application that gave me such a surprising amount of trouble I ran into a different issue, the fact that I needed more. I had to install specific add ons for Java in order to actually be able to install Karel and begin coding as well as trying to figure out how to use the application in general.

After just seeing how much difficulty I had during the installation of the software before even starting my learning I saw how I was struggling. This is able to give me a bit of a foreshadow into how difficult it will be for me to prepare for the course that I am aiming for in the future and this means that I will have to keep my goals clear and continue to work hard in order to be able to achieve the results I am aiming for.

Monday, February 4, 2019

Time to Make Things More Complex

Today is the day I decided to return back into the Computer Apps class. This year, I came with a very special goal for myself. I want to prepare myself for the future. Now, after learning python a year ago, I want to expand my knowledge of coding languages. I am planning to advance through the school levels of Computer Apps and move on to my first AP class.

Well, the first step on my way towards being able to advance is to expand my language. To be more specific, learn one of the most commonly used by beginner programmers, Java. I had begun to work by reading the textbook on Java that starts from the very start and now I am planning to work on Karel the Robot now.

I needed to install the Java Development Kit and Java itself in order to start working, that's where my first issue occurred when I couldn't find it in my applications. That was bothering me until I asked for some help and discovered that I need to download another application, Eclipse. I'm glad I didn't struggle any longer and just asked for help, this saved me plenty of time.

My goals, for now, are to learn how to use at least the basic Java through Karel before I can finally move on. I want to grow in order to be able to use coding in the future, more specifically the army and to go to a technology university somewhere in Europe.

Friday, May 18, 2018

Its too dangerous to go alone... take some lists!

After finishing the equations, I had finally moved on to a new topic... Lists and Dictionaries! Unlike the previous lesson this one was much more fun and quiet a bit easier to understand than the one before. Making a list of variables that were either added or subtracted and listed in different order was extremely satisfying to me personally.

While working one the lesson I had started to notice something, especially in the last exercise, that the lists would work very well for making a video game inventory. It would be a great way to design the way how to manage certain objects in an rpg style video game such as money, weapons, tools, statistics of the player and etc.

From this point on I will start taking a better look at the code and actually notice some details that I can relate to video gaming. It might actually start something new to brew in my mind if I will start seeing more patters and decide for myself if it is something I might research a bit more.

For now my short term goal had been renewed. I will start to analyze the code much more and not just try to remember it for later on to get dusty in my head. My long term goal meanwhile will be changed too. I will start to learn python and when I will be done I will move on to Java to start learning basic video gaming programing that I think will be something for my future career.