Last week we started to break the surface of computer coding a bit, and we introduced you to some free sites that allow you to learn the basics.

Some of you may be wondering, 'so how do the pros do it?' This week we will explore that question and give you the tools that you need to make and distribute your own apps.

Workflow Basics

Now that you have had a bit of time to key around with different programming languages, let's talk about what to do with the skills that you have begun to develop. We will discuss putting your skills to work through computer and mobile app development, but keep in mind that your skills are not limited only to building apps.

Apps are typically self-contained programs that perform a series of tasks related to the same overall function. Apps all have some sort of graphical user interface (GUI)--which is a fancy way of saying the buttons on the screen that the user pushes and the content being displayed.

Operating systems for devices have evolved to include easy access to a marketplace (Apple App Store, Google Play, and the growing Windows Store) rich with free and low-cost apps.

There is currently quite a bit of free software available designed to create apps for a variety of marketplaces, and the software is aimed at professional developers and hobbyists alike.

Though development varies across platforms, the basic concepts are all the same. Each platform has a specific set of tools called a software development kit (SDK) for creating apps. Those tools usually include the following: code editor, interface builder, frameworks (prefab code libraries), code debugger, a simulator that gives you a live test of your app, and some way of measuring how your app performs on a specific device.

To integrate all the tools, programmers utilize an integrated development environment (IDE). It may be helpful to think of the SDK as the tools necessary for building an app, and the IDE functions like the workbench keeping all the tools together and at close reach.

Many apps also require an application programming interface (API) to communicate to an operating system, a database, or some other piece(s) of software.

Below is a list of resources broken down into three popular development platforms Android, iOS, and Windows. Getting started can be a bit tricky, so I have included getting started resources and tutorials. The image above features an infographic detailing the general workflow for building an app. In the tutorials below, you will find similar charts more specific to your needs.

Windows

Visual Basic Express - Microsoft's IDE and apps are typically written in C# or C++SQL Server Express - Microsoft provides you with a free database engine to power your appsC# Tutorials - to get you started making apps with VSMDSN - Microsoft's developer network with all the resources you need

Hello and welcome back to the blog for a giant two-parter. This time we are looking at computer coding and free resources that you can use to learn various programming languages to create computer and mobile applications, video games, and build websites.

Computer code is all around us and powers every electronic device. As an exercise for those who may have never seen a code before, hit F12 (Internet Explorer), Ctrl+U (Firefox and Chrome), or Cmd+Opt+U (Safari) to see the source code for this webpage.

In an increasingly digital age, learning computer skills is a fundamental necessity, and learning programming is like learning the language. Learning to code has never been easier, and everyday more resources are popping up to teach you how. Currently, there is a high demand for programmers in the job market. This post is dedicated to giving you some of those resources.

Learning to Code

Codecademy is a great place to start learning the nuts and bolts of various programming languages: HTML/CSS, PHP, jQuery, Javascript, Python, Ruby and information on API's. There are dozens of projects that allow you to put your skills to use designing games and personalized web applications.

Python is a great place to start programming. This scripting language is expressive and easy to understand. The Python community has come together to create tons of libraries and tutorials to get you started and beyond.

Scratch is a graphic programming language that teaches users the basics of object-oriented programming (OOP). This program was created by MIT and teaches you to create games and animations. Check out Learn Scratch to get started. Teachers interested in including Scratch into curriculum may be pleased to note the 'Lesson Plans' section.

Alice Developed by Carnegie Mellon University, Alice is similar to Scratch and teaches users OOP in a 3D environment through the use of storytelling.

Happy Nerds Want more? Happy Nerds has put together a fairly comprehensive site with more resources for learning to code for various platforms.

SmallBasic is based on Microsoft's .NET programming language. The SmallBasic language editing software (called an integrated development environment, IDE) allows you to break problems down into small steps and test each one along the way, in other words: teaching you how to think like a programmer.

The library has a Code Club for teens who are interested in learning more about coding and meeting others who share the same interest. Click Here for more information.

Click here to check out programming books that the library has in its collection.

Check back next time for part two where we teach you the skills to design and implement your own computer and mobile apps.

Welcome back! This week we have an exciting topic at hand, mostly because of how powerful the tools are. In this post you will learn how to make interactive maps to study and compare geographic information.

Take some time to let this map load, and be sure to check out all its features. This week's topic is a rather difficult one, so take some time and explore all that it has to offer.

View Larger Map(Map relating the proximity of farmers markets to the types of crops harvested in each region. NOTE: Click Legend in the top right corner and give the map a moment to load)

What is GIS?!

Geographic Information Systems, or GIS, are systems that store, analyze, and graphically present geographic data, called spatial data. Map presentations (like the one featured above) are created by adding layers of data onto a base map.

In the example above, I started with a map of the US, and then I added a shapefile containing a map of all the counties of KY. Next, I added a layer containing all of the farmers markets in the US and a final layer that shows the diversity of crops harvested per county in the US. This simple map shows the relationship between the density of farmers markets and the agricultural productivity of KY counties.

Maps like this one can be analyzed to better understand that relationship, and information like this may be important to farmers looking to corner new markets. In fact, GIS is a very large field that encompasses many disciplines of study like science, the environment, infrastructure, business, social studies, history, geography, and geology. Many jobs are available to people with strong GIS skills, as well.

Below are some resources to get you started in this exciting field.

Free Map Making Software

Here are some free applications that allow you to access data and make maps:

Data Sources

Your map is only as good as the data that you have to display. Whether or not you realize it, KY is in the top 5 states in the nation for GIS data! Here are bunch of great place for fast, free data:

KY Geological Survey - offered through the University of KY, the KGS is the repository for a wide range of KY Geospatial data

Geospatial Data Library - this is the KGS library of data including links to the KY Geonet, Office of Geographic Information Systems, KY Dept Fish and Wildlife, University of Louisville GIS, the US Geological Survey, and more.

Tutorials

You've got all the tools you need, now what?! Watch some of these videos to get you started:

Interested in auditioning for the role of a guinea pig?? What if it were for a good cause, like science?

Amateur researchers and science enthusiasts have aided in scientific research projects for quite a long time. For example, members of the John James Audubon society have participated in bird counts to aid in conservation efforts for over a century.

This method called 'citizen science,' or 'crowdsourcing,' is the systematic collection and analysis of data. It can work in several different ways, like citizens collecting data for researchers to analyze or citizens analyzing the data that researchers have collected.

Below are some web applications that let you be the guinea pig and help science--consider it micro-volunteering!

EteRNASolve puzzles by shaping RNA nucleotides and help scientists unlock the secrets of genetics.

Polymath BlogThis one is for all you math-letes out there. This project posts mathematical equations and relies on the crowd to solve them.

Welcome back to the blog. We took a week or so off to wrap everything up with the Louisville Young Filmmakers Festival, and we had a blast! This week we are looking at some cool sites that allow you to make you own video games.

Game Makers

Here are some websites that allow you to make and share games with friends: