Sunday, December 16, 2018

Data Analysis Checklist

I've spent the evening and early morning hours reading The Elements of Data Analytic Style - A guide for people who want to analyze data by Jeff Leek (This book is for sale at http://leanpub.com/datastyle), and wanted to post this amazing data analysis checklist here so that I may continually refer back to it. 

The data analysis Checklist -- A way to evaluate the quality of a reported data analysis.

14.1 Answering the question
1. Did you specify the type of data analytic question (e.g.
exploration, association causality) before touching the
data?
2. Did you define the metric for success before beginning?
3. Did you understand the context for the question and
the scientific or business application?
4. Did you record the experimental design?
5. Did you consider whether the question could be answered with the available data?

Saturday, December 15, 2018

Half a Year Later...

Wow, I can't believe it's been nearly half a year since I worked on my computer science studies. I've spent the last three months or so developing wood burning skills, which I have greatly enjoyed. I've also been missing my time in the ether. I'm going to attempt to divide my extracurricular endeavors between crafting and coding.

Monday, August 6, 2018

I'm learning R, in R

I've recently discovered an amazing package for R called Swirl. I realize it's been around for some time now, but it's new to me, and I love it. Swirl() is a straight-forward, user-friendly approach to diving right into R. Each lesson is delivered interactively and in short bursts. The lessons are succinct and detailed, and leave the user feeling informed. For anyone looking to get started with R, I strong recommend Swirl().

library(swirl)
swirl()




Sunday, July 29, 2018

R Programming by Johns Hopkins University

I am about to begin R Programming from Johns-Hopkins by way of Coursera! This is course 2 of 10 that I am working through on my way to becoming a Data Scientist.

In this course, I will learn how to program in R and how to use R for effective data analysis. I will learn how to install and configure software necessary for a statistical programming environment and describe generic programming language concepts as they are implemented in a high-level statistical language. The course covers practical issues in statistical computing which includes programming in R, reading data into R, accessing R packages, writing R functions, debugging, profiling R code, and organizing and commenting R code. Topics in statistical data analysis will provide working examples.


Sunflow Data Science & Analytics

My name is Austin Craver and I am a budding Data Scientist. 

I just launched www.SunflowData.com to act as a repository for my progress and work.

It is called Sunflow Data.

Discovering new ways to take raw data and turn it into meaningful results. We strive to continually ensure that the analysis is relevant, and we are committed to providing clean, in-depth datasets.


Sunday, July 15, 2018

Data Science Specialization = My New Focus

I am focusing entirely on Data Science for the next year. I really liked studying HTML5, CSS, JavaScript, jQuery, SQL, C, and more, but alas I must focus. I must focus on one thing and learn to do it well. That thing is Data Science.

I recently received a scholarship that covered the $50.00 required to take The Data Scientist's Toolbox from Coursera via Johns Hopkins, for which I am truly grateful. However, it was just an intro to the comprehensive specialization and I finished what was presented as a four-week course in two sittings. I am trying to accept that it will all be a joyful uphill journey from here and just have fun with the process as a whole. Never before have I so thoroughly enjoyed the learning process.

The following excerpt is from a free lesson via DataCamp:


Wednesday, July 4, 2018

At a minimum, a data scientist should...

I wish I could remember where I copied and pasted this from, but alas, I cannot. Just the same, here's a great overview of what a data scientist would benefit from understanding.

At a minimum, a data scientist needs to be proficient with concepts such as probability, correlation, variables, distributions, regression, null hypothesis significance tests, confidence intervals, t-test, ANOVA, and chi-square. At an advanced stage, data scientists need concepts and algorithms such as logistic regression, support vector machines (SVMs) and Bayesian methods. Common statistical analysis tools such as Excel, R and SAS are very famous among data scientists.



Friday, June 29, 2018

Telling Stories With Data

I'm moving through some great data science material via Cognitive Class (Big Data University) via a course titled (appropriately) Introduction to Data Science. One of the modules discussed one of the many areas in which a great data scientist must possess strength, storytelling.


1. Tell readers, at the outset, what they might gain by reading your paper.
2. Make the aim of the work clear. 
3. Explain the significance of your contribution.
4. Have you set your work in the appropriate context by giving sufficient background (including a complete set of relevant references) to your work?
5. Have you addressed the question of practicality and usefulness?
6. Have you identified future developments that might result from your work?
7. Have you structured your paper in a clear and logical fashion?

Original version of the cited text...

Sunday, June 24, 2018

Harvard University...

I just completed three full days of on-site continuing education at Harvard University. (The $1,200 fee was waived by the Computer Science department.) We engaged in 22 hours of in-person instruction and I completed 15 hours (closer to a hundred?) of preparatory work.



Sunday, June 17, 2018

2D, 360 Degree, Virtual Reality...

A long-time friend of mine is in a local band called THE HORRiFiCS and I am pleased to be doing a blended photo shoot with them in 11 hours. I've been focusing my photographic efforts almost entirely on local businesses for several months, so it's a nice change of pace. I'm taking my portable photo studio for more traditional shots, then we're going on-location, and along the way, I'll be capturing some 360° photos and possibly videos!!!


Friday, June 15, 2018

My Tableau Public Profile

I am super excited (and tired (it's 3:09 AM)) to be diving further into the boundless world of Data Science. One of my best friends was in town a few days ago and he introduced me to Tableau. A couple of days later, I had a fully licensed copy installed on my machine. Two days after that, I got to attend a roundtable discussion at Gleneagles Country Club in Plano, Texas. I was surrounded by a small group of community leaders in Data Science. The cities of Plano and Dallas had representatives there, as well as a variety of Data Scientists from a broad range of companies. It was a great experience, and I can't wait to attend other such events.

Austin Craver - Data Analytics

I have spent the last several hours pouring over datasets and doing my best to produce something meaningful, all while telling a story.



I have since created two original data visualizations. One shows male and female life expectancies around the world. The other shows Internet usage by country.

Tuesday, June 12, 2018

Tableau/Prep

As I continue my journey, things continue to fall into place. For example, I was just granted a one-year research and education license of both Tableau and Tableau Prep!!! I cannot wait to grab a dataset and dive into the next chapter of my data science life.

I just download, installed, and registered Tableau and Tableau Prep! 

Saturday, June 9, 2018

Tensors Flowing

In approximately 12 hours, one of my best friends will be arriving from Houston and we plan on spending the day coding. I am starting Chingu's Voyage 6 and look forward to gleaning as much as I can from his boundless programming expertise. In the meantime, since he mentioned TensorFlow, I have read up on it, which lead me to study tensors in general. The more I learn about machine learning and data science, the more confident I am that I will be learning much more.


Friday, June 1, 2018

Python Programming

I'm studying intermediate programming in Python and the DataCamp course I'm taking is using Google Sheets. All of the following information was copied and pasted entirely for me to easily locate in the future. ---

DATEDIF

Calculates the number of days, months, or years between two dates.

Sample Usage

DATEDIF(DATE(1969, 7, 16), DATE(1969, 7, 24), "D")
DATEDIF(A1, A2, "YM")
DATEDIF("7/16/1969", "7/24/1969", "Y")

Syntax

JavaScript Variables

Going to spend some time this weekend studying JavaScript. The image below was extracted from a screenshot of a course I'm taking via SoloLearn.

According to the website:

Naming Variables


There are some other rules to follow when naming your JavaScript variables:

- You must not use any special symbols, like my#num, num%, etc.
- Be sure that you do not use any of the following JavaScript reserved words.



Join the learning adventure: Learn JavaScript



Sunday, May 27, 2018

Your Code Are Dumb

I was reading a great article from Hacker Noon (link at the bottom of the page) and there was a paragraph about a variety of acronyms and phrases related to software engineering. For the sake of remembering them, I'm going to use Google to track down their respective meanings and copy and paste them below.

According to Wikipedia, YAGNI, or, you aren't gonna need it is a principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary.  XP co-founder Ron Jeffries has written: "Always implement things when you actually need them, never when you just foresee that you need them." Other forms of the phrase include "You aren't going to need it" and "You ain't gonna need it".

Again, from Wikipedia, the single responsibility principle is a computer programming principle that states that every module or class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class.

DRY simply stands for Don't Repeat Yourself. Whereas WET is short for We Enjoy Typing.  Both of which suggest that well thought out code should be succinct and avoid unnecessary repetition.

The Single Level of Abstraction (SLA) or the Single Level of Abstraction Principle (SLAP) states that "each method should be written in terms of a single level of abstraction."


Thursday, May 24, 2018

Immutable Tuples

Python + SoloLearn = Awesome! I'm currently learning about lists, dictionaries, and tuples. I can't wait until June when I'll be able to focus full time on computer science.


Saturday, May 19, 2018

White Hat Kali Linux

I just completed a brief introductory course via StackSkills covering various aspects of ethical white hat hacking. The course covered such things as;

basic terminologies, operating systems and tools, reconnaissance, NMap, Shodan for scanning, Metasploitable, Armitage, Aircrack-ng, Man-in-the-middle-attacks (MitM), and more.

Friday, May 18, 2018

SQl + SoloLearn = Amazing

I've spent the last several hours studying Structured Query Language (SQL) and I am really enjoying the straightforward syntax and ease of use that it offers. Having studied PHP previously is also helping.


Course = JAVA // Complete!

I've just recently finished an introductory course in JAVA. I'm currently studying PHP and plan to finish that course this weekend.


Saturday, May 12, 2018

Monadic and Dyadic Operators

Monadic and Dyadic Operators
Operators can be monadic or dyadic A monadic operator operates on a single simple statement. Other operators will all be dyadic operators because they operate on two simple statements. Any time you use an operator with a simple statement, even a monadic operator, you create a compound statement.

Compound Statements and Truth Function
All the compound statements we'll look at are called "truth-functional" compound statements. This means that the truth value of the entire statement is determined by the truth value of the individual simple statements that make it up and the function of the operator on those statements.

If you write computer programs, you can think of the simple statements as inputs and the operator as the function that accepts those inputs and does something with them. The output of the entire function is determined by the value of the inputs and the specific operation of the function. Consider this simple program written in pseudocode which will take a string value and change the value to all caps and then print it to the screen:
Function PrintCaps (string A)
{
    A = AllCaps(A);
    Print A
}

Sunday, May 6, 2018

React and Team Tree House

I just invested several hours of time and ample mistake correction and produced an interactive scoreboard program using React.  Team Tree House is a stunning online education platform that offers a rich and diverse array of course offerings that span a wide range of topics related to computer programming. I seriously wish there was more time for learning!


The *.jsx code =

var PLAYERS = [
  {
    name: "Player 1",
    score: 0,
    id: 1,
  },
 
  {
    name: "Player 2",
    score: 0,
    id: 2,
  },
 

Saturday, May 5, 2018

Python and Matplotlib

Spending Cinco de Mayo learning about the seemingly endless amazing features of Matplotlib in Python!!! I'm currently studying Data Science via DataCamp, which is a comprehensive online education platform that focuses entirely on data science and programming via Python and R. The screenshot below is of a simple histogram that I created by following a series of Python tutorials.


Friday, May 4, 2018

Computer Science Teaching Certification Exam...

As I'm getting ready to take my 8-12th grade Computer Science teaching certification exam, I have to remind myself that although I once learned HTML, I am still really new to the world of programming. Just the same, I'm studying for several hours a day, every day. In fact, I haven't missed a day of learning in two and a half months.


Special thanks to Soumil Kumar for the amazing stock photo!

Wednesday, May 2, 2018

Python...my introduction

I've spent the last few days focusing entirely on Python and Pycharm. The following is code that I typed up by following along with a tutorial. There's a bit of code toward the end that I copied and pasted. I did this because the video was formatted/recorded in such a way that I couldn't see all of the code and continued to encounter errors. Just the same, I'm really enjoying the learning process thus far!



import random
import sys
import os

print("Hello world")

name = "Austin"
print(name)

print("5 + 2 =", 5 + 2)
print("5 - 2 =", 5 - 2)
print("5 * 2 =", 5 * 2)
print("5 / 2 =", 5 / 2)
print("5 % 2 =", 5 % 2)
print("5 ** 2 =", 5 ** 2)
print("5 // 2 =", 5 // 2)

print("1 + 2 - 3 * 2 =", 1 + 2 - 3 * 2)
print("(1 + 2 - 3) * 2 =", (1 + 2 - 3) * 2)
print('\n * 3')

quote = "\"Always remember, you are awesome!!!"
multi_line_quote = '''Beans is super awesome!!'''
print("%s %s %s" % ('I like the quote', quote, multi_line_quote))

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!


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...