Sunday, April 29, 2018

Metasyntactic Boolean Riddles

I just completed my first in-depth and comprehensive computer programming course on Udemy! The course consisted of 149 unique lectures. I'm going to take a short break (coffee) and dive into another course. Here's to moving ever forward!


Saturday, April 28, 2018

Local Guides Summit 17

Last year, I was among the 151 blessed souls fortunate enough to attend the Local Guides Summit in Mountain View, California. For two and a half days, we met and worked with a wide variety of Googlers. When we were not engaged in all things related to Google Maps, we were set free to explore San Francisco. To say that it was a life-changing event would be a travesty. 






Friday, April 27, 2018

Pointers

Spending the evening focusing entirely on C. Just finished a fun tutorial on pointers.

// Using pointers in C/C++

#include <stdio.h>

void main()
{
    int a = 14;
    int* p = &a;    //Declares int pointer (p) pointing to (a)

    // Where does (a) live in memory?
    printf("Address for a is %p\n", &a);
    printf("Address inside p is %p\n", p);
    if (p == &a)
        printf("P is point to a!\n");
    else
        printf("P is NOT pointing to a!\n");
}


Tuesday, April 24, 2018

Polymorphism is starting to make sense...

I'm about 65% of the way through a Java course via StackSkills and polymorphism is starting to make sense.

One of the slides from the course taught me the following;

A superclass type can always be cast to the type of one of its subclasses. This is called “downcasting”.

The ultimate root class in Java is Object. An object of type Object can be downcast to any type (class) that descends from Object.


The ability of a class to be cast to the type of one of its subclasses or descendants is terms polymorphism.

Saturday, April 21, 2018

My first game in Java!

I found an amazing tutorial for writing a brick breaking style game in Java. I walked through the video, typing all of the code, and was able to fully reproduce the game! In some respect, I suppose it's similar to tracing a drawing, but either way, I am so happy with the results. My first hello world app took me about 90 minutes to finish. I finished the game in about two hours.

Code written by Austin Craver


// Main.java

/*
 * This amazing Java game was written by Austin Craver
 * by following and coding along with a 57 minute tutorial.
 * Special thanks to Awais Mirza for taking the time to create
 * and share such a helpful and informative video!!! *
 */

package breakerGame;

import javax.swing.JFrame;

public class Main {

    public static void main(String[] args) {
        // Creates frame for game
        JFrame obj = new JFrame();
        Gameplay gamePlay = new Gameplay();
        obj.setBounds(10, 10, 700, 600);
        obj.setTitle("Breakout Ball");
        obj.setResizable(false);
        obj.setVisible(true);
        obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        obj.add(gamePlay);
    }
}

Friday, April 20, 2018

Scanner Friday

Another zany Friday night learning more about the fine art of computer science. Tonight I am focusing heavily on Java. For fun, and to "take a break" I'm taking a course in video production through Udemy. Despite being a very introductory course,  I was able to learn a few things and that was nice. More coffee, please.


Wednesday, April 18, 2018

IntelliJ and Variables

I'm really starting to enjoy using IntelliJ. The design is elegant and intuitive, and the functionality is top notch. Coupled with a complimentary course from Microsoft, I am learning the Integrated Development Environment as well as Java. Such a lovely combination.


Tuesday, April 17, 2018

Hello Java

I am currently enrolled in a variety of computer science courses, one of which is focused entirely on Java. I'm writing this post to serve as a digital mile marker.  As with so many other courses, one of the first tasks was to write, build, and run a Hello World app. The build went fine, however, I could not run the program. I am new to IntelliJ and had to configure the Java Runtime Environment (JRE). It took me longer than I would like to admit. Just the same, here I am, publically admitting it. Why? Because I am a passionate life-long learner, and mistakes are great teachers. That, and I'm really happy that I was able to figure it out. And now, I know how. It's now and forever one more thing that I've learned on my path to becoming a computer scientist. The feeling that I get from those moments of success is a large part of the reason that I am on this current path. I love overcoming such challenges. I cannot wait to be able to envision something and take it from my mind, through the computer, and into cyberspace.





Convos with SlackBots

I just discovered Slack and SlackBots. My introduction was brief and I will have to return to the API later on. Here's to the continual pursuit of knowledge!


Sunday, April 15, 2018

Merge Sort - Pseudocode

Merge Sort
Merge sort is a recursive algorithm that continually splits a list in half until each half is either empty or one item, at which point the two halves are merged together in natural order, back up the division process until the entire list has been sorted.


Merge Sort Pseudocode

void mergeSort( pass-by-reference int [] list) //method for initial call
  int n ← list.length  int[] temp ← new int[n] //creates a temporary 
utility array
  mergeSortHelper(list, 0, n - 1, temp)
end mergeSort
void mergeSortHelper ( pass-by-reference int[] list, int front, 
                       int back, pass-by-reference int[] temp )
  if (front < back) //if front and back are not equal and have not

Saturday, April 14, 2018

Holistic Serendipity

Being on the right path and doing the next right thing has brought me to an amazing place in life. My experiences are stacking up at such a rapid pace that I need to remind myself to stop and document more of them. For example, I volunteered to assist with the Visual Performing Arts (VPA) interviews at the school where I teach. That was last night. Today, I am attending training for redesigning and rewriting the curriculum for my school district. At one point we broke into small groups. Two of the three people in my group were at my school last night, also helping with the VPA audition process. At lunch just now, I stop to get gas and some pizza. The clerk at the gas station also works as a bus driver, and my campus is where he picks up. While enjoying my pizza, I decided to drive around and listen to the radio. There's a local group I've been wanting to check out and had only heard of where they meet. As I'm driving, a building caught my eye, and the sign revealed that it was the exact building where the meetings take place.


Friday, April 13, 2018

JavaScript and jQuery

Progress! My ever-growing to-do list now has one more thing checked off, a brief introductory course in JavaScript and jQuery. It was designed well and tasked the user with coding along. I can't wait to see how much progress I am able to make this summer. Ever forward!


Syntax Diagrams

I dedicated some time this afternoon to studying syntax diagrams. I love the aesthetics of them, and find them so fascinating. 




Thursday, April 12, 2018

Object Oriented Programming

I was really surprised to have finished week 4 of the Foundations of Computer Science for Teachers through UT. Week five promises to further elucidate Object Oriented Programming (OOP).  After week six, there are mini lessons on digital forensics, games, and mobile programming. Here's to moving in one direction, ever forward!


Wednesday, April 11, 2018

Hugging the Branches of a Binary Tree

After spending some time learning about stacks, queues, and linked lists, my computer science course brought me to traversing binary trees and hugging the branches.


Monday, April 9, 2018

Sorting out Arrays...

As I am at the very beginning of my adventures in coding, the following may seem simple to the more advanced coder. Nonetheless, it is where I am in my journey. The task as a whole is starting to make sense, but as I'm working my through the quizzes, I'm still missing several questions. At any rate, I am really enjoying this adventure and will be continually reflecting upon my learning. 

---------------------------------------------------------------------------------
Assume that there is a function len that returns the length of a given array. Now consider the following definition for the function combine:
int[] combine( int[] list1 , int[] list2 ) int[] result ← new int[ len ( list1 ) + len ( list2 ) ] for (int i ← 0; i < len ( result ) ; i ← i + 1) // loop body end for return result end combine
Which of the following loop bodies will result in the combine returning a new list with the contents of list1 preceding the contents of list2?

if ( i < len ( list1 ) ) result[i] ← list1[i] else result[i] ← list2[i - len( list1 )] end if
Explanation
When copying the contents of list2, each element must be copied from list2 starting at its first index. However, to achieve that first index we must "remove" the length of list1 from the current index where we are storing the copied values in order for the array index to artificially "start over" at index 0 in list2
The sample question from above was copied/pasted from https://courses.edx.org

Sunday, April 8, 2018

Common Data Structure Operations

I dove into the rabbit hole, and once inside, discovered that there an infinite number of additional rabbit holes awaiting my arrival. One of them found me studying the ideas behind the Big-O.


Image from: http://bigocheatsheet.com

Saturday, April 7, 2018

Keywords for a Resume / CV

Success Profile Keywords for IT/CV



Adaptable
Analytical
Collaborative
Communicator
Creative
Curious
Insightful
Organized
Persuasive
Problem-solver
Relationship expertise
Results-driven
Team player
Technologically savvy
Enthusiastic

JavaScript - Reserved Keywrods

Saturday morning. Temperatures outside are near freezing and there's a chance of snow. I'm enjoying cinnamon coffee and an introductory course in JavaScript and jQuery.



Reserved words in JavaScript

Question: What reserved words are there in JavaScript?

Answer: Reserved words of the JavaScript language are listed below. (Some of these words are actually used in the Java language, and are reserved in JavaScript for compatibility purposes or as possible extensions.)

When choosing names for your JavaScript variables, avoid these reserved words!


abstract  else  instanceof  super  
boolean  enum  int  switch  
break  export  interface  synchronized  
byte  extends  let  this  
case  false  long  throw  
catch  final  native  throws  
char  finally  new  transient  
class  float  null  true  
const  for  package  try  
continue  function  private  typeof  
debugger  goto  protected  var  
default  if  public  void  
delete  implements  return  volatile  
do  import  short  while  
double  in  static  with 

Friday, April 6, 2018

Computer Programming Errors



I got the following information from a lesson on Udemy, from the course Foundations of Computer Science for Teachers.


Bug/Error
A bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result.  This can be a program situation that indicates a flaw in the source code, either syntax-based (punctuation or grammar), run-time (occurs during execution, such as file not found, or division by zero), or logic based where the program runs but does not produce the desired results.
Lexical Error
An error in programming that is characterized by the misspelling of a word, capitalization errors, or reserved words listed out of order.
Syntax Errors
An error associated with punctuation, indentation, or mismanagement of braces and parentheses in a computer program.
Run-time Errors
An error that occurs during the execution of a program, such as missing files or faulty input.
Logic Error
An error that causes the program to run incorrectly, but does not prevent the program from running.

Thursday, April 5, 2018

Teaching Certification

I registered to take the Computer Science teacher certification exam today. Having viewed the study guide, I can clearly see that it is going to be intense and comprehensive. Here's to moving in one direction, ever forward!


Monday, April 2, 2018

Checking Blood Pressure code...

I'm really enjoying learning to write code. Thanks to a video that was less than ten minutes, a few missing semicolons, and about 30 minutes, I was able to produce the following code!





*/This code was written by Austin C.as part of
following along a video tutorial in a course through Udemy.
I'm just now learning to code.
*/

Sunday, April 1, 2018

Brand Name Overload - Simplified

I found a great article explaining the various aspects of development. In a succinct way, the author explains source code management, text editors, application development products, and Integrated Development Environments (IDEs). Being new to the art of computer programming, it's easy to fell overwhelmed. 

Follow the link below for the full article.



Gratitude Unending

Yesterday I was gifted a technological super gift beyond my highest hopes and expectations. Sitting at the top of the list of awesome is an Acer Nitro 5 gaming laptop. I did a full install of Visual Studio 2017 and holy cow, is it amazing!!! Here's to moving ever forward into the future!




SQL

I've hit a wall in my SQL studies via the Khan Academy, and as such, I am engaging in additional studies prior to attempting to move for...