Michael Smith's Project Page

A photo of me.

General Information

About Me

I have been programming in various languages for many years. I am interested in all aspects of computer technology and computer programming. My first programming experience was with a Commodore PET computer in the early 80s. I tried to make what would now be known as an AI but ran out of memory. I have been interested in computers ever since. One of the largest projects I did was a custom database program using Watcom C++. It even required programming our own extended memory routines back then. These days it would be much easier done with a little VBS in Excel.

About This Page

This page can serve three purposes.

  1. Keep track of the stuff I have done for easy reference.
  2. Allow other people to see things I have done.
  3. Help other people find interesting information.
About The Courses

Most of the courses I have encountered on both edX and Coursera have been fairly well done. Most of them do have same minor errors like typos but very few have major issues. There are some that are of higher or lower quality than others. Some are very exceptional.

Some of the courses have graded material that cannot be shared publicly but most do not. I will share what I can below.

I have been programming for many years so a lot of the concepts in some of the courses are just a good refresher. However, most have at least some tips, tricks or styles that are new and interesting. The most interesting courses for me have been the ones that cover newer technologies as well as Agile and DevOps practices. The logic course was also quite interesting as well as the game design and project management courses.

Completed Courses and Related Projects

Front-End Web Developer Professional Program (13 Courses) - Microsoft

This program consists of the following 13 courses plus the orientation course.

DEV237x - Front-End Web Developer Orientation - Microsoft

Brief Description - This is a brief orientation of some of the things that will be covered in the program.

Brief Review - A pretty good introduction to technologies and tools.

Other Info - Completed with 100%. There were no real projects to display for this course.

DEV211.1x - Introduction to HTML and Javascript - Microsoft

Brief Description - This is a Microsoft course on edX. It includes information on the most common HTML and CSS concepts. It also covers many of the new things in HTML5. Some of what is included is Semantic Elements, SVG, Canvas and Media Controls. It covers basic and advances JS including callbacks and the HTML5 APIs. It then gives a brief introduction to external libraries such as jQuery, AngularJS, Bootstrap, Typescript and Sass.

Brief Review - The first part of the course was very good. The last part may be a steep climb for beginners. A few minor issues throughout but overall it was pretty good.

Other Info - Completed this course with 100%.

CSS.0x - CSS Basics - W3Cx

Brief Description - This is a W3Cx course on edX. It starts with really basic CSS information and advice. It moves on to some more advanced concepts and provides a lot of goog guidelines.

Brief Review - The course is pretty easy but contains a lot of good information. A great course for beginners.

Other Info - Completed the course with 98%. Each project fro module 2 on was adding stuff to the previous project. The module 5 project was just doing a little cleanup of the module 4 project. The only requirement that my module 4 project didn't comply to was the excessive use of colors.

DEV218x - Advanced CSS Concepts - Microsoft

Brief Description - This is a Microsoft course on edX. It focuses on responsive design using both grid and flex. It provides design sheets including style gudes, wireframe, redline and high fidelity design to work from. It covers a lot of real world information and a lot of advanced CSS techniques. Later in the course it goes into modularizing your css with Sass/Scss and breifly covers Less. They also look into multiple ways of testing and validation for different browsers and devices.

Brief Review - There was a lot of good information in the course. There were also many issues with incorrect or incomplete instructions which would be very confusing to beginners. The course should be designed so you have a complete page by the end of it but it does not. With some work this could be a very good course.

Other Info - Completed the course with 92%. Live link below is of the most complete page of the course.

JS.0x - Javascript Introduction - W3Cx

Brief Description - This edX course covers a good range of information to get started with Javascript.

Brief Review - Mostly well put together. Didn't encounter any real issues.

Other Info - Completed with a 96%. There were several optional projects which are listed below.

DEV273x - Introduction to Typescript - Microsoft

Brief Description - This edX course covers a good range of the capabilities of Typescipt 2.

Brief Review - Mostly well put together. Only a few minor issues.

Other Info - Completed with a 93%. There were several labs, some of which are listed below. Some use node.JS, Express and RequireJS and thus are not listed below except for source in the project repository.

DEV203x - Introduction to Bootstrap - Microsoft

Brief Description - This edX course covers a basic introduction to Bootstrap.

Brief Review - The course does a good job of providing a brief introduction to Bootstrap. There were no real issues.

Other Info - Completed with a 100%. Thers is a demo and 3 labs listed below.

DEV208x - Introduction to jQuery - Microsoft

Brief Description - This edX course covers a wide range of jQuery benefits.

Brief Review - This course covered a good amount of jQuery syntax and did so in a good way. The labs were helpful and there were no real problems.

Other Info - Completed with a 100%. Labs were part of the course grade and therfore not shared publicly below. The link below shows an overview of the course concepts.

DEV220x - AngularJS Fundamentals - Microsoft

Brief Description - This edX course covers a lot of introduction AngularJS.

Brief Review - This course does a good job of hands on learning wih lots of labs.

Other Info - Completed with a 91%. Labs done in the course are listed below.

DEV221x - AngularJS: Advanced Framework Techniques - Microsoft

Brief Description - This edX course covers more advanced AngularJS concepts.

Brief Review - The course has a lot of innformation and hands on labs. It is quite well done.

Other Info - Completed with a 93%. This course had many labs, some of which are listed below. Others use nodeJS.

DEV222x - Using Open Source Web Tooling to Improve Dvelopment Proficiency - Microsoft

Brief Description - This course covers a wide range tools for professional development.

Brief Review - The concept of the course is great and it has quite a bit of useful information. A fair amount of the information and some of the tools are deprecated so it will be much better once it is updated.

Other Info - Completed with a 96%.

DEV212x - Introduction to DevOps - Microsoft

Brief Description - This edX course covers the major conncepts of DevOps.

Brief Review - This course does a good job of covering the major concepts of DevOps.

Other Info - Completed with a 97%. All lab work was done with Visual Studio Team Services and Microsoft Azure. The link below shows an overview of the course concepts.

DEV224x - Building Your Azure Skills Toolkit - Microsoft

Brief Description - This edX course covers some more of the features of Microsoft Azure.

Brief Review - This course covers some interesting concepts and most issues are fairly easy to work around.

Other Info - Completed with a 89%. All work was done in VSTS and Azure, thus the link below only shows an overview of the course.

DEV238x - Front-End Web Developer Capstone - Microsoft

Brief Description -

Brief Review -

Other Info - I have not started this course.

Front-End Web Developer Professional Program (5 Courses) - W3Cx

This program consists of the following 5 courses.

HTML5.0x - HTML5 and CSS Fundamentals - W3Cx

Brief Description - This course is a fairly good overview of a lot of the most important tags, attributes and techniques of HTML5 and CSS.

Brief Review - The course is fairly well put together and doesn't have many issues.

Other Info - Completed the course with 98%.

CSS.0x - CSS Basics - W3Cx

Brief Description - This is a W3Cx course on edX. It starts with really basic CSS information and advice. It moves on to some more advanced concepts and provides a lot of goog guidelines.

Brief Review - The course is pretty easy but contains a lot of good information. A great course for beginners.

Other Info - Completed the course with 98%. Each project from module 2 on was adding stuff to the previous project. The module 5 project was just doing a little cleanup of the module 4 project. The only requirement that my module 4 project didn't comply to was the excessive use of colors.

HTML5.1x - HTML5 Coding Essentials and Best Practices - W3Cx

Brief Description - This edX course covers a wide range of HTML5 concepts.

Brief Review - This course provides a lot of information and does so fairly efficiently. I found no major issues.

Other Info - Completed with a 99%. The course only had optional projects for some concepts so I created my own project listed below. It covers a lot of the concepts in the course and links to a couple of optional projects it shares with the JS.0x course.

JS.0x - Javascript Introduction - W3Cx

Brief Description - This edX course covers a good range of information to get started with Javascript.

Brief Review - Mostly well put together Didn't encounter any real issues.

Other Info - Completed with a 96%. There were several optional projects which are listed below.

HTML5.2x - HTML5 Apps and Games

Brief Description - This edX course covers a good range of advanced HTML5 concepts.

Brief Review - This course does a good job of covering the concepts and I did not encounter any major issues.

Other Info - Completed with a 93%. This course had a few optional projects. The two largest projects are featured below.

Computer Science Fundamentals Professional Curriculum (13 Courses) - Microsoft

This program consists of the following 4 sub programs cosisting of 13 courses.

Introduction to Computer Science - Professional (3 Courses)

This program consists of the following 3 courses.

DEV262x - Logic and Computational Thinking - Microsoft

Brief Description - This edX course covers formal logic and critical thinking.

Brief Review - This course seems like it may be hard and boring but it was actually quite interesting.

Other Info - Completed with a 95%. There were no labs associated with this course.

DEV236x - Introduction to Python: Absolute Beginner - Microsoft

Brief Description - This edX course is an introduction to Python.

Brief Review - This course is as it says "Absolute Beginner"

Other Info - Completed with a 99%. Labs were done on Microsoft Azure Notebooks. Since I have previous Python experience I only did the Required labs as the practice labs would have been pointless.

DEV274x - Introduction to Python: Fundamentals - Microsoft

Brief Description - This edX course covers more advanced concepts than the previous course.

Brief Review - The course covers more Python concepts but is still fairly basic.

Other Info - Completed with a 100%. Labs were done on Microsoft Azure Notebooks. Since I have previous Python experience I only did the Required labs as the practice labs would have been pointless.

Introduction to Code Solutions (3 courses)

This program consists of the following 3 courses.

DEV284x - Designing a Techical Solution - Microsoft

Brief Description - This edx course goes deep into web design concepts like UI, UX and market research.

Brief Review - This is a great theory course on the major aspects of Human Centered Design concepts.

Other Info - Completed with a 97%.

DEV279x - Building Interactive Prototypes using Javascript - Microsoft

Brief Description - This edX course covers the basics of Javascript.

Brief Review - This course has a good introduction to the basics of using Javascript.

Other Info - Completed with a 100%.

DEV280x - Building Functional Prototypes using Node.js - Microsoft

Brief Description - This edX course covers Node.js basics, working with databases, creating APIs with express and deploying to Azure.

Brief Review - This course does a good job of covering the above concepts.

Other Info - Completed with a 95%.

Introduction to Code Objects and Algorithms (3 courses)

This program consists of the following 3 courses.

DEV276x - Learn to Program in Java - Microsoft

Brief Description - This edX course is an introduction to programming in Java.

Brief Review - This course provides a a good inntroduction to Java concepts.

Other Info - Completed with a 100%.

DEV277x - Object-Oriented Programming in Java - Microsoft

Brief Description - This edX course covers object oriented concepts in Java.

Brief Review - This course provides a good amount of information on object oriented concepts in Java.

Other Info - Completed with a 89%.

DEV285x - Algorithms and Data Structures - Microsoft

Brief Description - This edX course covers algorithms and data structures in Java.

Brief Review - This course is a decent introduction to the above topics but could definitely use a follow up course. However, there are other courses available that go deeper into these concepts.

Other Info - Completed with a 92%.

Introduction to Professional Software Development (4 courses)

This program consists of the following 4 courses.

DEV275x - Writing Professional Code - Microsoft

Brief Description - This edX course covers concepts such as naming conventions, code refactoring and testing using Java.

Brief Review - This course does a good job covering the above concepts, especially refactoring.

Other Info - Completed with a 100%. No real coding projects. The link below shows an overview of the course.

DEV241x - Introduction to Design Thinking - Microsoft

Brief Description - This course covers research and design concepts related to program design and prototyping.

Brief Review - This course goes quite in depth into these concepts. It is geared towards the project manager role.

Other Info - Completed with a 86%.

DIS50x - Developing International Software - Microsoft

Brief Description - This edX course covers a wide range of topics related to developing international software.

Brief Review - This course goes in depth into the many areas of concern when developing internationally. The theory part of this course contained a lot of useful information. The last half of the labs were not available as the site they were suppose to interact with was not operational. I based the score on the part of the course that was able to be done which was 78 out of 85.

Other Info - Completed with a 92%.

DEV240x - Web Design Best Practices: An Inclusive Approach - Microsoft

Brief Description -

Brief Review -

Other Info - This course is currently under construction.

Video Game Design XSeries (5 courses) - RITx

This program consists of the following 5 courses.

GAME101x - Video Game Design History - RITx

Brief Description - This edX course covers the history of gaming.

Brief Review - This course is far more than the title suggests. It is a deep dive into the history theory of gaming fro pre 1700s until present day. It is a fascinating and nostalgic course.

Other Info - Completed with a 97%.

GAME102x - Video Game Design and Balance - RITx

Brief Description - This edX course covers the theoried behind video game design, rapid prototyping and balancing.

Brief Review - This course is not about coding. It is mostly about the design that goes into developing an idea prior to any coding.

Other Info - Completed with a 100%.

GAME103x - Video Game Asset Creation and Process - RITx

Brief Description - This edX course covers how game assets are created.

Brief Review - This course covers the elements and concepts of asset creation beginning with some of the oldest styles and progressing to some of the newest styles.

Other Info - Completed with a 94%.

GAME104x - Video Game Design: Teamwork and Collaboration - RITx

Brief Description -

Brief Review -

Other Info - This course has not started yet.

GAME105x - Gameplay Programming for Video Game Designers - RITx

Brief Description -

Brief Review -

Other Info - This course has not started yet.

Agile Development Using Ruby on Rails Professional Program - BerkeleyX

This program consists of the following 2 courses.

CS169.1x - Agile Development Using Ruby on Rails: The Basics - BerkeleyX

Brief Description - This edX course covers Agile practices in depth using Ruby and Rails.

Brief Review - This is one of the first courses on edX. It is very mature, well done and well facilitated. It covers a wide range of concepts such as code smells, metrics, user stories, pivotal tracker, BDD, TDD and more.

Other Info - Completed with a 100%. The labs are graded and therefore solutions are not posted publicly. Below is a link to a repo for the courseware. I had updated this content to work with Ubuntu 12.04, Ruby 1.9.3 and Rails 3.2.15 while I was helping with the course.

CS169.2x - Agile Development Using Ruby on Rails: Advanced - BerkeleyX

Brief Description - This edX course covers more advanced concepts of Agile development using Ruby and Rails.

Brief Review - This course covered many concepts including DRY, refactoring, legacy software, project management, design patterns and more.

Other Info - Completed with a 100%.

DEVOPS200.1x - DevOps Practices and Principles - Microsoft

Brief Description - This edX course covers a good range of DevOps practices and principles.

Brief Review - This course looks into IaaS, PaaS, Contsainers, ARM, DSC, Automated Builds, Testing and Deployment, Monitoring, Hypothesis-Driven Development and more.

Other Info - Completed with a 96%. All labs were done using VSTS and Azure. Link below to course on edX.

DEV330x - Introduction to Python: Creating Scalable, Robust, Interactive Code - Microsoft

Brief Description - This edX course is essentially a slightly more advanced follow up to DEV236 and DEV274.

Brief Review - This course concepts such as modules, functions, error handling, Pydoc and more.

Other Info - Completed with a 100%. Labs were done on Microsoft Azure Notebooks. Since I have previous Python experience I only did the Required labs as the practice labs would have been pointless.

DEV210x - Introduction to C++ - Microsoft

Brief Description - This edX course covers an introduction to the basics of programming in C++.

Brief Review - This course includes variables, constants, decision statements, repetition statements, objects, encapsulation and more.

Other Info - Completed with a 100%.

DEV210.2x - Intermediate C++ - Microsoft

Brief Description - This edX course covers intermediate concepts in C++.

Brief Review - This course covers pointers, reference types, classes, virtual functions, abstract classes, file processing and more.

Other Info - Completed with a 100%.

DEV204.1x - Introduction to C# - Microsoft

Brief Description - This edX course covers the basics of programming in C#.

Brief Review - This course covers variables, decision statements, repetition, methods, exceptions and more.

Other Info - Completed with a 100%.

DEV204.2x - Object Oriented Programming in C# - Microsoft

Brief Description - This edX course covers object oriented programming in C#.

Brief Review - This course covers concepts such as encapsulation, classes, interfaces, polymorphism and memory management.

Other Info - Completed with a 89%.

DEV204.3x - Algorithms and Data Structures in C# - Microsoft

Brief Description - This edX course covers algorithms and data structures in C#.

Brief Review - This course includes concepts such as search and sort, arrays, enumerations, structs and collections.

Other Info - Completed with a 98%.

DEV283x - Introduction to Node.js - Microsoft

Brief Description - This edX course covers Node.js basics much more.

Brief Review - This course does a good job at covering Node.js, npm, express, MongoDB and Mongoose.

Other Info - Completed with a 90%.

Code101x - Think. Create. Code. - AdelaideX

Brief Description - Working with basic coding concepts such as loops and decisions while creating artwork in Processing.JS. Also covers some basic animation.

Brief Review - Pretty good for a complete novice to learn some programming concepts. Would be better if they also covered some data structures like arrays.

Other Info - Completed the course with 100%.

LFS101x.2 - Introduction to Linux - LinuxFoundationX

Brief Description - This edX course is an introduction to Linux.

Brief Review - This course covers a wide range of topics and is great for people that have not used Linux before as well as those that have. It starts off pretty simple but does also cover some more advanced concepts as well.

Other Info - Completed with a 100%.

Algorithms: Design and Analysis, Part 1 - Stanford

Brief Description - This used to be a 2 part course. It is now a 4 course specialization which appears to cover the same basic information.

Brief Review - This Coursera course provides a fairly in depth look at these topics.

Other Info - Completed with a 92.1%. Below is a current course link and the course certificate.

An Introduction to Interactive Programming in Python - Rice University

Brief Description - This is now a 2 part course. The course covers a many Python concepts.

Brief Review - This is a fun and informative course. I would connsider this an intermediate Python course and people with no prior programming experience may have soe issues with it.

Other Info - Completed with a 100%. Below is a current course link, course certificate and a few projects I did that went beyond the course specs.

Completed Tutorials and Related Projects

C++ Tutorial on cplusplus.com

Provides a decent overview of the features of the C++ language.

General Assembly's Dash Tutorial

Provides some good tips and tricks for styling web pasges using HTML, CSS and JS.

Personal Projects

My YouTube Videos

A collection of my youtube videos. Most are done in Python and include demos and tutorials. There are also a couple demos for a Java app done in Processing.

HTML5 Tutorial Blog

A blog type page on HTML5 concepts created in conjunction with the HTML5.1x course.

Type or Die - The Game

A basic game done for the JS.0x course.

Picture Album Browser

An image browser with albums done for the JS.0x course.

Custom Video Player

A custom video player done for the HTML5.2x course. Currently only works 100% in Chrome.

Asteroids type game

An asteroids type game done in the Python language with CodeSkulptor for a Rice University course.

Guess the number game

A guess the number game done for a Rice University course with a twist.

Blackjack game

A blackjack game done for a Rice University course.

Older Projects