Friday, October 24, 2014

Little by Little

I have made very little progress since my last post.  I have spent a lot of my time repairing a computer; all of the programs I previously installed and all the code I had previously written were erased.  Starting back at square one wasn't all bad.  I got to solidify some of the basics and I organized my files and programs a better way the second time around.

Most of my progress in java programming this week came in the form of user input.

System.out.println("Enter your name please.");

String line1 = input.nextLine();

System.out.println("Hello " +  line1 + "! My name is Jarvis.");

System.out.println("What class are you doing this for?");

String line2 = input.nextLine();

System.out.println("Do you love " +  line2 + "?");

String line3 = input.nextLine();

The code above is a simple conversation the user can engage in with the program.  The user enters information in based on a question and that triggers a new line.  In the end, the user would see something similar to

Enter your name please.
Jared
Hello Jared! My name is Jarvis.
What class are you doing this for?
Learning theory
Do you love Learning theory?
Yes

I tried using the "if" java command to make it possible for more that one answer.  For example if I entered "yes" I love learning theory have the program respond with "good", and if I entered "no" have the program respond with "what is the matter with you" but my code had errors and wouldn't run.  I'll keep pluging along... maybe next week.

Learning Theory Application

I was thinking about Artificial Intelligence while I was coding this week.  In media there are so many movies about AI.  As you can see from my Jarvis reference one example for that is the Avengers.  The trailer for Avengers, age of Ultron was released this week.  The main story behind this movie is that Tony Stark makes an AI to protect people, it becomes uncontrollable, and the Avengers have to fight him.

It takes so many lines of code to program a simple fake conversation between my program and its user.  How is AI possible?  Chapter 4 mentions how progress during the last 50 years has been slow with AI.  I can see why.  Java is a production system, it has if/then statements similar to if red, stop; if green, go.  But It would be very difficult to write if/then statements about all aspects of life.



Saturday, October 11, 2014

A sea of Learning

I had been waiting nine months for that Android Development Coursera class to be offered again.  How perfect, I thought, that it was going to be offered during learning theory... a perfect fit for my learning blog assignment. With that sort of anticipation you can imagine my disappointment when I learned that the class was too advanced for me.

Last week I tried to find good websites and YouTube videos that would help me learn the java programming language.  I found a good resource in Codecademy learning the language but I was still struggling with the concept.

To my fortune I saw an advertisement for eight online programming classes on a "name your price" basis.  I was about to pay for them, seeing it as a good long term investment as well as a solution to my current predicament, when I figured out they were all classes on an online learning site called Udemy.  Udemy, like Coursera and Kahn Academy offer classes online; the benefit to Udemy for me is that classes are always offered whereas Coursera had a specific start date and timetable of eight weeks.  I searched through the catalog of classes and found three free courses that fit well into my goal of learning how to program Android applications.

Following the instructions of the Java Tutorial for Complete Beginners, I downloaded the three programs I needed and wrote my first java class.

The first thing I was introduced to were Strings.  This is a familiar word to me because of some technology sites I follow.  Whenever a new or update application is released they look at the source code and try to discover what hints to upcoming features are buried in it.  To do that they look at the strings.

 I learned that in Java you give strings names and attributes.  Once that is done when the string name comes up, the attribute is substituted for it.  For right now it seems like a lot code on the top just to get the results on the bottom but I know a basic understanding will be helpful moving forward.


Learning Theory Application

Motivation -
I am amazed at the learning resources available through the internet to those who continually make the choice learn.  Udemy's courses, YouTube's videos, Home Depot's DIY articles, and so many more resources are available to anyone with access.  The internet gives us access to a sea of learning if we have continuing motivation.

I was with a colleague during the week that home-schools their six children.  Their goal with the kids is to simple instill a love of learning.  Their school day is pretty unstructured, each kid has to do the basic reading, writing, and arithmetic.  Outside of that they can learn whatever they want.  One of his sons is really into science experiments right now, he has an genuine excitement for them that is a fruit of intrinsic motivation.  I talked to him about Dan Pink's TED talk about motivation and how some successful companies give their employees self-directed time to do what interests them and have seen great products come from it.


Operant Conditioning - 
There is a strange form of negative punishment at play with my desire to learn the skills necessary to assist in the development in the LDS Gospel Library application.  I spent most of this week at a seminary teacher training.  As I sat next to some teachers that were using the LDS Gospel Library app on iOS devices I notices the content of the app is more visual appealing than it is on Android, especially when it comes to pictures.  Because iOS was adopted first, content on the app is optimized for it.  Android developers then take the code and alter it for Android.  It is a flawed process because some things don't get altered correctly.  The fact that the teacher sitting next to me had a picture on his page and I didn't bothered me a little.  That is a negative stimulus that I want to remove.





Thursday, October 2, 2014

No hablo java...o

What is all this stuff???
In his introduction to my coursera class Programing Mobile Applications for Android Handheld Systems my instructor said "this is a class for juniors and seniors majoring in computer science who are already familiar with the java programing language". My immediate reaction... what have I gotten myself into? After watching the first three lectures of the course it was clear that I was in over my head. I took my first class about a programing language three months ago where I learned the basics of html and css. I was happy with how fast I picked it up and thought to some extent that knowledge would transfer easily into java. I was wrong!

I was able to install the programs needed to get started (the java development kit and android studio), followed instructions and created my first android project, I set up a virtual device so I could run the apps I create and see how they look and perform on various android devices. However, after the instructor went through install and set up he started talking a different language... one I did not understand. The most overwhelming part of this was the file tree that is automatically created when you create an android project. It was like being stuck in the middle of the Alps with no map or directions.

By the end of the lectures it was evident my learning goals needed adjustments.

  1. Find a resource for learning the basics of Java.
  2. Learn what the files in an android app do and how they interact with each other.
Java tutorial at codecademy.
To solve the first problem I went to a familiar tutor: codecademy.  This website was really helpful in getting extra practice in html and css.  It has been good to help understand the basics of java.

I have not found a great way to achieve my second goal.  I did watch about two hours of youtube videos on android programing but none of them have explained the basic relationship to the files created by default in my android project.


I made two connections to my experience this week and the content of my Learning theory class at Utah State.  The first was Csikszentmihalyi's concept of flow--his name is a good example of what java is to me... a bunch of jumbled letters that don't compute :) . Flow can be described as being so consumed by an activity that everything else drops away and all your attention is on the task at hand. "Flow is experienced whenever there is a good match between the difficulty of the task and the ability of the performer... and an optimal level of challenge."  I had experienced flow over the summer in my html class.  I had a few nights where I was up til 4am and didn't realize it.  This didn't happen until I got to a good understanding of html basics. As I gained ability the website I was creating was enjoyable yet challenging and I reached somewhat of a state of flow as I designed it.  There was no flow this week because of my lack of ability.

A second connection was Bandura's self-efficacy, which in this case relates to my self-assesment of my ability to accomplish the task of android app programing.  Bandura points to four things that can influence our self-efficacy one of them being verbal persuasion--encouragement from a mentor.  One reason why learning html was a great experience for me was because of a great teacher.  Travis was awesome at communicating, providing feedback, and answering questions.  That verbal persuasion helped motivate me as I learned something new.  My coursera teacher is no where near as accessible; he has 700 students enrolled from all over the world and has little authentic stewardship over our learning because it is a free class and the lectures are pre-recorded from some time ago.

My journey is taking a detour.  I will have a few more stops along the way but my destination remains.