Welcome!

Welcome to VIK-20.com, my little corner of the web.  I fell in love with programming (on my VIC-20 computer) nearly 40 years ago haven’t stopped learning, working in the industry, and teaching ever since.  If you are an aspiring Computer Scientist or just want to learn something about coding, you’ve come to the right place!

My main goal with this site is to provide free, well-written, and carefully designed tutorials to take you from a novice to an intermediate/advanced-level programmer using a variety of modern languages.  While our focus will be on learning to code, we’ll talk about many of the “big ideas” in Computer Science along the way.  I’ve prepared three tutorials, depending on your goals and level of experience:

Start here if you’ve never programmed before, or have never taken a formal course in programming.  For this tutorial, I’ve chosen a language called Processing (we’ll use an online version called p5.js), which is the ultimate beginner’s language.  The beauty of p5.js is that it is heavily focused on (fun!) graphics and interactive animations and runs completely within any modern web browser so there is no software to install.  This is the perfect tutorial to discover if coding is for you!

Ever heard of Google, YouTube, Instagram, or Spotify?  All of these companies rely on Python to analyse data and keep them running smoothly.  Python is another excellent starter language, but it’s more industrial-strength than p5.js.  Even if you don’t plan to pursue a Computer Science degree, other majors often have a required coding course and many of these teach Python.  For fun, the focus by the end of this tutorial will be on creating 2D video games using the pygame module.

If you’ve discovered a passion for coding and intend to pursue a major (or minor) in Computer Science, then it’s well worth your time to learn Java and more advanced concepts in Computer Science.  This tutorial has you covered!  Although not officially an Advanced Placement CS preparation course, these notes will cover the complete AP subset of the Java Language and more. By following along and doing the practice problems you’ll achieve a solid foundation in the Java language and core libraries.

The Road Ahead

The notes on this site are classroom-tested (I use them every day with my students) and I am constantly refining them with a focus on clarity and conciseness. I recommend that you read the tutorials in order and follow along in front of a computer so that you can try all of the examples as you go. Like a good tour guide, I’ll lead you through the core concepts of programming and provide exercises you can do to enhance your learning experience.  I  am honoured to count you as one of my students!