Maker Journal #1 – Tinker at Home - CodeAcademy

OVERVIEW

For my first Maker Journal, I chose Code Academy.  My objective was to gain experience with the HTML (Hyper Text Markup Language) and CSS (Cascading Style Sheets) software development tools using the two segments offered shown thru Code Academy, see below:
  • Learn HTML (3 Hours)
  • Learn CSS (9 Hours)

HTML is a programming language that powers the web, which provides a means of communication to others in the form of webpages.  Like any other language, once you master it, you can begin to create content, whether that is simple websites or more complex web applications.  HTML provides the structure of the webpage, outlining the elements each webpage will contain.

CSS (Cascading Style Sheets) provides the layout and design of the webpages by providing functions to create visually engaging webpages.

GOALS

My goal with selecting this technology is to update my toolbox with more modern tool-sets and to consider as part of the Maker Journal how this tackles two of the four course outcomes:
  • Model innovation, iteration, and reflection through personal practice, and engagement with existing research.
  • Demonstrate the ability to use a variety of mediums and tools to engage and communicate with stakeholders.

MY EXPERIENCE


I started my professional career in state government as a programmer/analyst, using programming languages including, COBOL, Pascal, SQL, and UNIX scripting, to develop and support user data entry systems, reporting, etc.  Additionally I designed and supported large enterprise databases including Oracle and SQL.  My more recent experience (last 10 years) includes project management, team management, and strategic sourcing. 

From my previous experience with programming languages, I know that each language has the following basics:
  • Guidelines for code structure, which includes functions, parameters, etc
  • Style guide that tells you in great detail how to indent your code, where to put spaces and braces, how to name stuff, how to comment and the good and bad practices. 
At the start of this Maker Journal exercise, my expectation was that the initial two courses would provide this foundation using a descriptive narrative, examples and coding exercises.

LEARN HTML

This was the first of my two courses.  The instruction provided deeper insight into HTML.  The following provides the basic coding structure and a description of the usage:
  • The <!DOCTYPE HTML> declaration defines the document to be HTML, and aides browsers to display web pages correctl
  • The <html> element is the root element of an HTML page.
  • The <head> element contains meta-information about the document.
  • The <title> element specifies a title for the document.
  • The <body> element contains the visible page content.
  • The <h1> element defines a large heading.
  • The <p> element defines a paragraph.
  • The <br /> is a self-closing tag which provides a line break.
The following provides quick overview of the course content.  These pages images are presented side by side on the screen, allowing the student to view the instruction descriptive narrative, coding area and result on the same screen.  Formatting the images was difficult they do not allow print screens while using the tool, but I was able to snap a picture to show the pages.

CodeAcademy Screen Shot - Instruction Descriptive Narrative
CodeAcademy Screen Shot - Instruction Descriptive Narrative
CodeAcademy Screen Shot - Coding Area
CodeAcademy Screen Shot -Coding Area
CodeAcademy Screen Shot - Result
CodeAcademy Screen Shot -Result


LEARN CSS

My second course, the instruction provided deeper insight into HTML and where CSS fits into website and webpage development.

As I mentioned in my overview, CSS stands for Cascading Style Sheets.  CSS describes how HTML elements are to be displayed on screen, paper, or in other media.  CSS can define the color, font-family, font-size, order, padding and margin, etc. Essentially, a single CSS can control the layout of single or multiple web pages.

CSS can be added to HTML elements in 3 ways:
  • Inline, using the style attribute in HTML elements.
  • Internal, using a <style> element in the <head> section.
  • External, using an external CSS file.  Using this approach you can modify the look of the entire website through this one CSS file.

The most common way to add CSS, is to keep the styles in separate CSS files. However, the course used inline and internal styling, to demonstrate the association between HTML and CSS.  I found this particularly helpful to be able to move between the HTML and CSS coding pages.

The following provides quick overview of the course content.  These pages images are presented side by side on the screen, allowing the student to view the instruction descriptive narrative, coding area and result on the same screen.  Formatting the images was difficult they do not allow print screens while using the tool, but I was able to snap a picture to show the page.

OVERALL EXPERIENCE

The tool, Code Academy;

My initial assumption at the start of this Maker Journal exercise was that the initial two courses would provide this foundation using a narrative, examples and coding exercises. 

Post course instruction I found the first two units covered what I would expected for the initial module.  My opinion of Code Academy has remained the same, I would strongly recommend this site and the training offered.  They ease you into the technology, providing a quick start, foundational course, which allows you to get your feet wet and then for those more serious about learning the toolset they offer Codeacademy Pro Intensive program.  The tool also provides ‘Stuck? Get a hint’ option and access to community forums.

The programming language, HTML;

HTML provides some similarities to previous coding languages I have used:

  • Ability to add history and comments which serve to document the program and remind programmers of complicated code or just why a change was introduced.
  • Provides a specific coding structure.
  • IO Modules (Input-Output Modules) provide a common program to read and write data and
  • Copybooks used by the IO Modules to outline the format for passing of data in one file


HTML however is different from COBOL or Pascal in that it is not compiled (translated) into a binary program for a computer to read and interpret.  HTML is a markup language that uses declaratives (blocks, heading, etc) which are saved and executed in the browser.  HTML used as intended essentially provides instructions to a browser on what to do with each part of the webpage for that job I found it easy to use and understand.  What it does not do well is provide a common area to use repeatable code to, for example, allow you to focus on the look and feel of the website, this is where CSS comes in.

The programming language, CSS;

The CSS approach is very similar to options when programming using COBOL. 

In COBOL; both of these options in COBOL create a one-stop place to modify code.  What that means is it saves the programmer a lot of work when modifications are needed.  If I need to modify how dates are edited or calculated, in COBOL you could use the copybook to handle how that is done once, instead of separately in each program.  This ensures uniformity between programs and when a change is needed, we do it once not multiple times.  Developing a consistent look to a webpage or site in one CSS, ensures that the look and feel is consistent (same font, color, etc.), and when it needs to change it is done in the single CSS not separately in the HTML programs. 

Additionally, using CSS properly can’t help but speed up the webpage for the end-user, essentially because you are using less code so the pages load faster. 

I would highly recommend this approach too anyone developing webpages.

CodeAcademy Screen Shot - Instruction Descriptive Narrative
CodeAcademy Screen Shot - Instruction Descriptive Narrative     

CodeAcademy Screen Shot - Coding
CodeAcademy Screen Shot - Coding 

CodeAcademy Screen Shot - Result
CodeAcademy Screen Shot - Result

CONNECTION TO ESSENTIAL QUESTIONS

So, “How might we design learning to embrace principles of computational thinking?”,  well three things come to mind concerning the learning to code approach:
  1. First this approach to learning is more than just a textbook or test, computational thinking practices developed from writing and debugging programs (test, debug, revision; loop) instills a certain level of confidence.  This was also described as a three-stage progression ‘Use-Modify-Create’ in What is Computational Thinking? , used to support students development of computational thinking
  2. Secondly, although the learning is centered-around programming and debugging with this method, it also provides an opportunity to the student to become clear about problem solving strategies and more purposeful about improving them. Exploring Issues of Computational Thinking in Higher Education, “computational thinking enables individuals to become more efficient problem solvers by teaching them to recognize computable problems and approaching the problem-solving skillfully”.
  3. Finally, it supports the ISTE NETS standard for students; they learn individual skills and collaborate, Bringing Computational Thinking to K-12 (article from ISTE

REFLECTION

My personal practice of learning to code, helped me better understand course outcome ‘model innovation, iteration and reflection’.  The Learn HTML and Learn CSS courses reminded me that although languages may have different purpose, syntax and structure, their foundation is built upon what has worked in previous programming languages, at least the popular and most used.  Although this is not a hard concept, I believe it helps to reinforce the concept from time to time, so that you might add the greater understanding to allow you to approach “problem-solving skillfully”.


Comments

Popular posts from this blog

Maker Journal #4 – Speaker Call - Google Expeditions with Eric Lawson

Maker Journal #5 – Visit to UMaine Makerspace