Select tickets
Only 15 Slots Still Available!
Course Fee:
$395 - 4 Week Course
$495 - 6 Week Course
This course is limited to a class size of 15 in order to ensure every participant is able to receive personalized, hands-on instruction.
Class Schedule:
Saturday, August 23, 10AM-2PM
Saturday, August 30, 10AM-2PM
Saturday, September 6, 10AM-2PM
Saturday, September 13, 10AM-2PM
Addon Classes:
Saturday, September 20, 10AM-2PM
Saturday, September 27, 10AM-2PM
You will need to bring your own laptop for these classes.
By purchasing this course, you understand that refunds for the course fee are only available if a request is made directly after or during the first class. Once you have attended and left the first class, the course fee becomes non-refundable.
Intended Audience
Attendees should have a basic understanding of computers (opening a file, running a program, connecting to Wi-Fi networks, etc.). Attendees are required to bring their own computer to follow along with examples, as there will be a significant portion of the course that will be hands-on. Windows, Mac, and Linux are all supported Operating Systems for this course. No previous programming experience is needed, although the JavaScript sections (Days 3 and 4) and optional webserver section (Day 6) will benefit from any prior development experience.
Description
Since the first website was published in 1991, the Internet has taken the world by storm. With an estimated 1.1 billion websites out on the web, our daily life has transformed into new digital experiences. But have you ever wondered how these websites actually work? How do people create digital locations that you can browse at any time? And more importantly, can you do the same?
This course will answer just that. We'll walk through the very fundamentals that underpin today's web technologies. You'll learn how to build your content through HTML, style it with CSS, and build interactivity with JavaScript. You'll learn how to deploy websites, understand web infrastructure, and we'll take a brief dip into building web servers.
Course Goals
By the end of this course, you will understand what happens when a user types in a URL into their web browser, and how the web browser translates that request into a webpage. You'll also learn how to build those webpages yourself, so that other people can view your creations. You'll learn basic HTML, CSS, and JavaScript skills to structure and style interactive webpages. You will also learn how to deploy static websites, as well as learn how to build a webserver and interact with APIs. This course will not focus on website builders, such as WordPress, Wix or Squarespace, although the skills you learn in this class can give you a leg up when using such a website builder. This class will not go into advanced JavaScript development skills (such as React, Vue, Node.js, etc.); it will focus more on DOM interaction and basic event handling.
Every class will be hands-on; there will be multiple short presentations in each class, each followed by demonstrations, follow-along work, and time for individual questions and help. You'll go through various exercises as well as given challenge problems that will reinforce your web development understanding. The best way to learn is by doing, after all.
Course Breakdown
4-Week Course Breakdown (4 hours per week) with 2 optional add-ons
Week 1- Introduction to HTML
In this class, you'll learn about markup languages and how we use one such language, HTML, to create websites. You'll create your own sites using tables, links, images, and videos using HTML. We'll talk briefly about inline styling but won't dive deep into styling the website; today is all about structure. By the end of the class, you'll be able to make an "About Me" page.
Week 2 - Styling with CSS
In this class, you'll learn how to make your website visually appealing. Cascading Style Sheets (CSS) will allow you to create styles for your HTML websites. This will let you set up color schemes, layouts, user interface themes, and more. We'll talk about how to structure your websites to make CSS easier, and how we can use classes to apply styles to multiple elements. By the end of the class, you'll be able to take your "About Me" page and make it look great.
Week 3 - Event Handling
In this class, you'll learn how to use JavaScript to handle events, such as button clicks, mouse clicks, field submission, and mouse movement. JavaScript lets you perform general purpose programming, so we'll cover the basics of variables, if statements and for loops for greater control over our event handling. By the end of the class, you'll be able to add buttons and event handlers to your "About Me" page to make it more interactive.
Week 4 - DOM manipulation
In this class, you'll learn how to use JavaScript to manipulate the Document Object Model (DOM), or how the website is structured. We'll use JavaScript to move HTML elements around dynamically, create new elements on the fly, enable drag and drop, and talk about canvas operations. We'll go into a little bit more JavaScript to talk about arrays and objects to structure your code better. By the end of this class, you'll be able to make your "About Me" page even more dynamic, with fun widgets that users can play with.
Optional Add-On Classes: These classes will involve programming, so some amount of pre-existing programming knowledge is preferential, and are for people who are interested in backend development for web development. They are not required if you will be mostly working with WordPress, Wix, Squarespace, or other off-the-shelf website builders, or if you don't plan on managing the servers hosting your websites.
Week 5 - Static Site Deployment
In this class, you'll learn about the infrastructure that runs the modern web. We will talk about serverless architectures, and how you can use one for static website deployment. You'll learn about file storage and service, how Content Delivery Networks work, and how caches work. We'll touch upon how Domain Name Resolution comes into play, how SSL certificates work and why they are needed for HTTPS, and other common deployment considerations
Week 6 - Webservers
In this class, we'll briefly touch upon how to write a webserver in the Python programing language. We'll use Flask to serve static files, as well as talk about dynamic content generation. We'll touch upon JSON, REST services, APIs, and the JavaScript fetch API. By the end of the class, you'll know how to spin up your own web server in Python, be able to send requests to it, and host your website in a VM in the cloud
The instructor for this course will be Pat Viafore
Pat Viafore has been programming professionally since 2007 and has worked on a wide range of technologies. He has worked on embedded telecommunications hardware, lightning tracking systems, the Ubuntu operating system, and desktop virtualization. He holds a master's in computer science and loves teaching computer science and software engineering fundamentals to others. He is the organizer of HSV.py, Huntsville's local Python Meetup group, and is the author of Robust Python. He also runs a software consultancy, Kudzera LLC, to help small businesses with website development and other software-related tasks.
Pat's Website: Kudzera - North Alabama Software Consulting