In one way or another, I have always been a trainer, a teacher.
A few years ago I retired from my most recent training job, developing
and teaching courses about IBM mainframe (z/OS) application programming.
Below are details of courses and materials I have written that are currently available on my website (https://www.StillPluggingAway.com). I charge a nominal fee to enroll in each course. However, the videos are available for free on YouTube.
Each course from Still Plugging Away contains lessons:
each lesson contains 1-4 videos;
If you enroll in a course on the web, then you will get additional content included:
Lesson / session | Title (video duration - minutes:seconds ) / Summary of content | YouTube location |
---|---|---|
Overview | Introducing Still Plugging Away (2:12) Describes the courses available and how you can take them. |
https://www.youtube.com/channel/UCL_F3RzOOLW3TAzmeKjbswQ |
Lesson / session | Course 1: Practical Windows for Small Business [and Hobbies] 7 lessons, 13 videos, 2 hours 14 minutes viewing time |
YouTube location |
1 / 1 | How Computers Work (3:44) Description of the roles of the CPU (Central Processor Unit), RAM (Random Access Memory), and a hard drive, and how they work together. |
https://youtu.be/L3nLKU5CXUc |
1 / 2 | Bits and Bytes (8:28) An elementary look at how characters are stored and a brief survey of typical input / outut devices. |
https://youtu.be/DiqFAN01RwM |
2 / 1 | Desktop layout choices (9:45) Tips and suggestions on how to set up your Windows desktop to be most helpful to your work: choose background, organize icons, set up task bar; how to utilize tablet mode (Windows 10); |
https://youtu.be/PIHU8mflXHE |
3 / 1 | Organizing Files (16:26) Organizing principles for locating files: drive / directory / file; rules for filenames; filename extensions; reserved filenames; contents of windows; file explorer; directories and sub-directories; hints on organizing directories and files |
https://youtu.be/x6fKwuT4oDU |
3 / 2 | Creating Directories (12:52) How to set File Explorer options; how to map file extensions to applications; creating directories and sub-directories |
https://youtu.be/mmvzhLMIenM |
3 / 3 | Getting Files (7:19) Options in File Explorer menus: cut, copy, paste; from applications: Save and Save as ...; downloading files from the web ("Save page as ...", "Save image as ...", "Save file"); review of course content so far. |
https://youtu.be/MfGnouZoPu0 |
4 / 1 | Working with Notepad (15:50) Practical applications of notepad; example: the Be A Rock Star story; our first web page; File menu: Save, Save as ... |
https://youtu.be/VY5_CvttTtA |
4 / 2 | Format and font choicess (10:36) Format menu choices: Word wrap; Fonts; discussion of font families and characteristics; View menu: Status bar. |
https://youtu.be/ZBoYnfK2ZJw |
4 / 3 | Tips and techniques (14:16) How to select text; once selected, how to copy, cut, delete; the clipboard; paste; undo; locate a string; replace a string; add a timestamp to your text; printing text; formatting the print page. |
https://youtu.be/LjLlg4iI3Cc |
4 / 4 | Writing Poetry and Code (2:43) Here I emphasize the value and need for forcing line breaks in your code - just like lines of poetry. |
https://youtu.be/BMTwsLx1KU0 |
5 / 1 | Working with WordPad (9:55) The WordPad menu choices, new user interface: File contains list of recently edited files; editing lets you: mix font faces, sizes, and weights; also underline, strikethrough, highlight, subscript, superscript; left-justify, right-justify, and center blocks of text; inserting characters not found on your keyboard; inserting pictures; resizing pictures; inserting a date / time stamp; setting up for landscape format; zoom options; save as a rich text file (.rtf extension). |
https://youtu.be/9kDZ_AB_dbs |
6 / 1 | Working with Paint (14:12) Capabilities and uses: draw with a pencil line; draw with a paintbrush; draw using shapes; picture stretch; save as format choices; capture screen images into the clipboard then paste into the Paint canvas; cut a portion of an image into the clipboard, then paste just the extracted part into the canvas; draw on pictures in the canvas; adding text to an image. |
https://youtu.be/UvjqG6hX2No |
7 / 1 | Multi-tasking in Windows (6:36) Launching applications for the day; running multiple instances of an application; task switching techniques; the task view. |
https://youtu.be/jlQUS56nymE |
Note that for the next courses, the lessons build on each other. Each lesson develops one or more skills, motivated by a realistic need for a particular site, a story. The computer exercises are built around the content, but often challenge you to go a bit further than in the lecture.
Lesson / session | Course 2: Creating Websites Using Notepad [or any plain text editor] 24 lessons, 41 videos, 11 hours, 45 minutes viewing time |
YouTube location Story / Skills |
---|---|---|
1 / 1 | Introduction to the Web (4:15) The one-minute web page example; How the web works: you, your computer, and your browser: the client; the hosting system: the server. Files are in HTML format when sent; your browser renders a page based on the HTML. |
https://youtu.be/N6Lo8cgsJdM Story: Need to create a web page Skills: Use text editor (notepad) to create a web page in under a minute |
1 / 2 | Anatomy of a name (6:27) Protocols; host names and domain names; domain name servers; default pages; path names, file names; what happened to "www"? |
https://youtu.be/D42feaQTDRI Story: Naming conventions and protocols for files on the web Skills: Decide how to structure / name directories on your server |
2 / 1 | Introducing HTML (16:22) Main components: formatting, linking (hyper-text), actions; structure of an HTML document (a web page); elements: start tag, end tag, content; attributes; comments; blank lines; whitespace; indentation and nesting; global attributes: class, hidden, id, lang, style, title; the HTML element; the HEAD element; the TITLE element; the META element. |
https://youtu.be/Hg2KWo5WoyA Story: The basic structure of HTML documents Skills: Know how to start coding an HTML page beginning, including HEAD element and basic global attributes |
2 / 2 | More on META (9:02) A more expansive discourse on the META element (by no means exhaustive); charset, http-equiv, name, content; application-name, author, description, generator, keywords. |
https://youtu.be/u29jSB7xUmA Story: Describe the most important options for the META element Skills: How to move from page to page at chosen time interval (so: slide show) |
2 / 3 | Writing Poetry and Code (2:43) Here I emphasize the value and need for forcing line breaks in your code - just like lines of poetry. |
https://youtu.be/BMTwsLx1KU0 Story: Many people don't realize the need for / value of line breaks Skills: Can code poetry and code in a readable line break style |
3 / 1 | Marking up text (14:54) Discussion of the docuemnt content: the elements that mark up strings of text; the BODY, P, H1, H2, H3, H4, H5, H6, BR, and PRE elments; the style attribute; style properties background-color, color; introduction to events; the onclick event. |
https://youtu.be/sRCGL-5NA_8 Story: Need to structure the text in a BODY element to give the reader visual clues Skills: Can build basic text structure with headers, paragraphs, and extra lines for readability as well some color choices and the concept of events |
4 / 1 | Setting up infrastructure (9:35) Define objectives / audience; choose a company name; register your business (optional); choose a motto or slogan (optional); choose a logo (optional); choose an ISP (Internet Service Provider); decide to run with https or http; decide if site to be public or private; choose an FTP (File Transfer Protocol) client program; set up a merchant account (if needed). |
https://youtu.be/SrIfpRdfbI8 Story: Need to know the steps necessary to set up a web site Skills: Now can set up a plan with the details needed to set up a site |
5 / 1 | Uploading files (12:24) Using FTP to upload files; we use FileZilla client as our sample program, but other apps can do. Demonstrate download, install, and use. |
https://youtu.be/CCEtJLrWuck Story: Once you set up a site, you need to upload files from your computer to your server Skills: FileZilla is a free product that can upload / download / delete / rename files on your server |
6 / 1 | Links and anchors (12:17) We show how to set up anchors (places in a page that can be the target of linking) and how to use the <a> element. Also, how to use <a> elements for downloading files and to set up emails. How to preload files for better performance using <link> elements in the <head> section. |
https://youtu.be/B9piijinsy4 Story: Need provide a way for your users to find specific spots on a page, and to navigate to other pages on your site or other sites Skills: the A element is how you set up links to other locations |
7 / 1 | Inline style (19:48) Text markup elements <b>, <i>, <mark>, <s>, <sub>, <sup>, <u>. Style property value types (reserved word, length, string); style properties; style attributes. Color related properties, font related properties. The style attribute. The style element. Style selectors and declaration blocks. The <class> element. |
https://youtu.be/pbXQzSPDah0 Story: Emphasising text in various ways helps the user see what you consider to be most important Skills: By boldfacing, underlining, highlighting and more, you can help you users see what you want to emphasize |
7 / 2 | Style markups (10:21) Introduce the <span>, <div> and <hr> elements. Techniques for lining up text. |
https://youtu.be/8uxM7B0lApY Story: How to assign style characteristics to subsets of text (SPAN) and groups of elements (DIV) Skills: You can set up style characteristics to apply to substrings of text (SPAN) and / or sets of consecutive elements (DIV) and display horizontal lines to group elements (HR) |
7 / 3 | Using style for layout (34:24) The box model. Boxes and blocks. Margins, borders, and padding. Positioning and floating of of boxes. Specifying location and size of boxes. |
https://youtu.be/ifGb7OpIpiE Story: How to use the box model to create a page layout Skills: Can consider components in layout and implement using style settings |
8 / 1 | Stylesheets (7:03) How to create a stylesheet. Then, how to use it in your HTML. Note that stylesheets can be shared across many HTML pages. Comment syntax for stylesheets. |
https://youtu.be/CY0OhlSWOUQ Story: Want to use the same collection of style rules in many pages Skills: Create one or more files, each a collection of style settings (so the term style sheets); then reference these files from multiple pages using <link> elements |
9 / 1 | Testing and debugging (20:31) First we explore the wide range of browsers available - many more than commonly thought. Then we discuss the importance of testing your HTML pages in multiple browsers. We offer some techniques for correcting errors. Links to several online syntax checkers are provided. |
https://youtu.be/EUotTOssHKU Story: When things don't look right, it helps to have some tools to help you look for errors Skills: Now you have strategies to follow and places to go for help finding and solving errors |
9 / 2 | Clearing the cache (20:31) Define the role of the cache and when, how, and why to clear it |
https://youtu.be/4WBKhTuxD4w Story: Sometimes it is suggested you "clear the cache" so you can refresh its contents Skills: Here we show how to do that |
10 / 1 | HTML lists (16:08) HTML supports three kinds of lists: ordered lists, unordered lists, and dictionary lists. In this video we define the elements to support lists along with the attributes that are specifically for lists and list items. |
https://youtu.be/onqknvToEX0 Story: Lists can be visually displayed as items on separate lines, prefixed by number, block, or image Skills: Can create displayable lists of items in a collection, steps in a process, and more |
10 / 2 | A list application (6:52) Here is an opportunity to incorporate multiple threads: we create a list that is a collection of links to websites we follow. (So lists and links.) Then we show how to use this file on your computer to be the default page for your browser. (So a local web page.) This is actually nice because you don't have to be online to bring up your browser and then decide where to go first. |
https://youtu.be/3pG7bJ9riTk Story: How to create a page containing a list of links to favorite sites Skills: Create your personal home page for your browser; a local page |
11 / 1 | Images and client-side maps (18:36) How to embed images in an HTML page. And, in addition, you can identify areas on an image that can map to other files or some special processing. |
https://youtu.be/fh-1mBpAmhE Story: When you want to display a picture on the screen, here's how to do it Skills: You can include pictures in your pages, and even provide the ability to have sections of an image map to more details |
11 / 2 | Managing HTML images (13:00) Here we suggest some sources for images (pointing out the importance of making sure they are royalty free). Then we introduce an application, IrfanView, that can be used to edit images (resize, resample, crop, etc.). |
https://youtu.be/5flqjgLHMWk Story: Need to be aware of legal issues (copyrights, fees, etc.) Skills: Some suggestions of where to find images and a product that lets you edit them |
12 / 1 | Media - audio and video (8:55) Here we demonstrate how to include audio and video files on an HTML page. Introduce the AUDIO, VIDEO, and SOURCE elements |
https://youtu.be/zxouaUqGioY Story: Want to be able to include media files on your page(s) Skills: Can include media files and controls to run them (run / pause / resume) |
13 / 1 | Introduction to JavaScript (12:47) JavaScript as the language for handling events on a page. Rules of syntax and naming. Basic statements: 'var', assignment ('='); attributes as variables and style properties as variables. The 'this' element identifier. |
https://youtu.be/UWwh-nkp_RY Story: Using JavaScript is how a web page can respond to user actions (keyboard, mouse, etc.) Skills: Can respond to user clicks by changing text color and respond to mouseover by changing content of an IMG element |
14 / 1 | Introduction to the DOM (28:39) The DOM (Document Object Model) and how it is used to identify elments and attributes, and to add, delete, change elments and attributes. |
https://youtu.be/QLJ0uYWD9Zk Story: To work with code to change properties and values, we need a way to define these so the code can reference them Skills: Using JavaScript and DOM characteristics, your event handlers can create, modify, even delete elements, in response to user actions |
14 / 2 | JavaScript Using the DOM (16:46) Here we demonstrate using DOM constructs in JavaScript. We also introduce the window object. |
https://youtu.be/rFkDbfdirBw Story: We use a virtual keyboard example to demonstrate using JavaScript and DOM, then show an example of hiding and showing an element, then demonstrate dynamically addding items to a list and then introduce three methods available to work with the current window Skills: Now we can do more powerful event handlers and use 'alert', 'confirm', and 'prompt' methods to display and access values from the user |
15 / 1 | JavaScript Logic and Arrays (20:22) Introducing the 'if' and 'for' statements as well as how to define and work with arrays in JavaScript. |
https://youtu.be/tGuCUB1RQ2s Story: Sometimes we need to choose a logic path based on some action or value Skills: Now we can compare values and decide what actions to take; we can also work with arrays of values, and repeat a section of code while some condition is true (or not true) |
16 / 1 | JavaScript Functions and Scripts (15:40) How to use JavaScript to expand and contract lists; uses "onclick" and DOM methods. Then how to create and use functions in JavaScript, finally how to create and use external script files. |
https://youtu.be/M3riM4-5pQQ Story: Using a function allows you to invoke the same code from multiple spots in your page Skills: Define and invoke functions to create / delete / modify elements and attributes; we can now also put JavaScript code into external files and use these from many pages |
16 / 2 | Windows and Documents (13:49) How to create windows dynamically (pop-up windows) using window.open and document.write |
https://youtu.be/Q4te0rxFSJM Story: We need to pop up a window to display peripheral information without losing the current page Skills: We learn how to dynamically create a new document in the current window or a new window |
16 / 3 | Functions with Parameters (20:28) How to make JavaScript functions more general by planning for parameters. |
https://youtu.be/NMei835B3Wc Story: JavaScript functions can be made even more flexible by incorporating parameters the coder can change at invocation time Skills: We can invoke a function that displays an array, regardless of how many items are in the list, and show it in a pop-up window |
17 / 1 | Forms and Input (30:09) How to create forms, with an introduction to common types for INPUT elements along with an introduction to CGI concepts. |
https://youtu.be/ycyngE2Kh2U Story: Forms are the mechanism for getting information from the user; this information is passed to a CGI (Common Gateway Interface) program on the server Skills: Now you can specify some basic forms, for example, for signing up for a trip |
17 / 2 | More Input types and the POST method (14:23) A look at some additional types of INPUT elements along with a discussion of POST processing. |
https://youtu.be/4XoMaaC_8uE Story: Here are some additional types of data you can request, including file(s) to upload, such as a picture of someone signing up to go on a trip (this last requires using the POST method instead of the GET method) Skills: Create more interesting, richer forms, if you need it for your application |
17 / 3 | Validating Form Data (30:58) How to check input data for flaws and how to debug web pages that are not working right. |
https://youtu.be/lRruSjHVNd0 Story: It's a good idea to check incoming data as far as possible; avoids most hacks and also ensures data is of the right form / format / size Skills: Good habits to get into when working with forms |
18 / 1 | Forms and Input (32:29) Additional controls for forms, and some JavaScript + DOM programming for SELECT elements. |
https://youtu.be/t3ceCkygGls Story: These allow you to construct list boxes for a user to choose one or more items Skills: You can use new controls: button, select, option, optgroup and lable to select items from a list and copy them to a different list or remove items from a list |
18 / 2 | TEXTAREA, FIELDSET, and LEGEND controls (14:23) Three additional forms controls, plus a discussion of how to use controls without having forms. |
https://youtu.be/ppp7ATNYizM Story: How to accept free form text and also how to group related items together on a form Skills: Forms with controls grouped together logically make it easier for your user to provide the information you want / need |
19 / 1 | Using cookies (26:22) A description of what cookies are, how they are used, and multiple examples of JavaScript code. |
https://youtu.be/-FQ2frMyIOw Story: Cookies are used to "remember" the values of variables across pages in your website; example is the Flying Drones Academy Book Club sign up and some calculation pages Skills: We have provided some JavaScript functions to work with cookies: setCookie(), deleteCookie(), and getCookieValue(); also a short paper on detecting and dealing with pages if cookies are disabled |
20 / 1 | Introduction to HTML Tables (28:02) Basiscs of defining tables, including the use of style properties specific to tables. |
https://youtu.be/wKcVR5u2zR4 Story: We demonstrate how to create tables, and show using tables to create graphs Skills: Now you can construct a wide variety of tables to display on your website |
21 / 1 | Structuring HTML Tables (19:42) How to group rows and columns and how to create large cells. |
https://youtu.be/Tp5-HPISlaI Story: We demonstrate tables with row grouping and cell grouping, and cells that span rows and / or columns Skills: Create tables grouping by rows or columns, and create cells that cross row and column boundaries |
21 / 2 | A Complex Table (11:18) Demonstrate building a complex table. |
https://youtu.be/YP2igvXm79o supplement Story: We demonstrate building a table with row grouping and cell grouping, and cells that span rows and / or columns Skills: Create complex tables using a straightforward approach |
22 / 1 | A Revelation(5:18) Was not aware of the textContent property, and it can save a lot of programming |
https://youtu.be/QdObML2Gwvw Story: This grabs all the text from an element that contains text, even if it has embedded elements Skills: Quick way to extract text; not very good in putting text out |
22 / 2 | Scripting with HTML Tables(14:14) How to use JavaScript and DOM methods to dynamically alter a table |
https://youtu.be/LPjtAYncvGQ Story: Example of changing style of some elements; and example of dynamically adding a row Skills: Can modify tables on the fly |
22 / 3 | Scripting with HTML Tables(16:30) Introducing the document.getElementsByTagName() function lets me access all items of a single type, such as 'td' cells |
https://youtu.be/z0YTgM0iLJ8 Story: Introducing the 'switch' statement along with 'case' and 'default' Skills: Can sum up all the cells in a column; create the Photo album page |
23 / 1 | The iframe element(12:00) How to embed an HTML page inside another HTML page! |
https://youtu.be/wIFV--8zILw Story: Display a page inside another page Skills: Can create a page with multiple windows on the page |
24 / 1 | Loose ends(12:00) Development strategies, validation sources, the viewable in any browser campaign, and more. Wrapping up this course. |
https://youtu.be/jj_ZiB4tmbw Story: Where to find validation tools, suggested development strategies Skills: Where to look for corrections |
Lesson / session | Course 3: Advanced Topics in Website coding 9 lessons, 16 videos, 5 hours, 5 minutes viewing time - and still growing |
YouTube location Story / Skills |
1 / 1 | Web page layout and design, part 1: basic choices (10:01) Basic choices, wire framing |
https://youtu.be/Q6M16qj4Vko Story: You want to describe the layout of your website pages Skills: Wire frame a design and set up a logo and page title |
1 / 2 | Web page layout and design, part 2: implementing (10:01) Add content: links, activities, end of page |
https://youtu.be/Kc8XkPZiQNA Story: You want to fill in the body / content of your home page Skills: Apply standard skills, including changing font size in the middle of a line and adding end-of-page content |
2 / 1 | Page backgrounds, part 1: solid colors and gradients (16:03) Style properties: background-color, linear-gradient, radial-gradient |
https://youtu.be/K_dX3pCGwMA Story: You want liven up your page with some color Skills: How to specify solid colors and define color gradients (shading) |
2 / 2 | Page backgrounds, part 2: images (20:07) Style properties: background-image, background-color, background-repeat, background-position, background-size Finding images: sources |
https://youtu.be/4THmWaP2DO4 Story: You want liven up your page with some background images Skills: How to specify one or more images for your page background |
3 / 1 | Page framing, part 1 (39:12) Style properties: line-height Building a frame using gif images; demo of trial-and-error coding |
https://youtu.be/xvXV5N8WURk Story: You want a frame around your page Skills: How to construct a frame around your page using <div> |
3 / 2 | Page framing, part 2 (16:53) Style properties: box-shadow Building a two column page based on an existing page |
https://youtu.be/CqpAK4KUHDI Story: Give shadow to an image using box-shadow Skills: Using box-shadow and how to specify two columns |
4 / 1 | Server Side Includes (14:23) Create files to be included How to include files How to access / display current date / time and date / time of current file |
https://youtu.be/VT93HrpA60w Story: Create re-usable code fragments as files Skills: Include re-usable fragments in main program |
5 / 1 | Introduction to CGIs (16:14) Review of form processing Data validation Set up required on server for CGIs written in php |
https://youtu.be/vRz37CqhNGc Story: reminder of form construction and processing on the client side Skills: build a form for signing up for a trip |
6 / 1 | Introduction to php (15:28) Basic syntax: case-sensitivity, statements end with semi-colon, comments, blank lines Basic syntax: variable names, data types, quoted strings, operators: assignment, arithmetic, string concatenation Using $_GET to access values passed from the submitting form 'echo' command |
https://youtu.be/sVgqZYvYppQ |
7 / 1 | php programming, 2 (17:43) Logical / boolean 'true' and 'false' Comparison operators: ==, ===, !=, !==, <, <=, >, >= 'if' statement $_GET, $_PUT, and $_SERVER arrays How to send emails using php |
https://youtu.be/WYbAkJe2D64 |
7 / 2 | php programming, 3: Complex 'if' statements (17:23) Logical operators (and, or, xor, !) Nested 'if's |
https://youtu.be/AqeACcwM9hY |
8 / 1 | php programming, 4: String handling and date / time (22:00) functions: strtoupper, strtolower, ucfirst, lcfirst, ucwords, str_replace, str_ireplace date function, how to format date and time strings |
https://youtu.be/xfbkz_1FnSk |
9 / 1 | php file work: creating log files (14:42) Define a file, introduce php functions for working with output files: Describe necessary steps to prepare for creating log files fopen, flock, fwrite, fflush, fclose |
https://youtu.be/2J_h3_eWUl4 |
9 / 2 | php file work: reading server files (16:29) Functions: fopen, fgets, feof, fclose The 'while' logic construct exit, goto, and labels |
https://youtu.be/-pMUNzJNpuU |
9 / 3 | php file work: creating page from form data (34:36) Creating a model file; replacement indicator strings Handling uploaded files: getimagesize(), file_exists(), move_uploaded_file() Create personal web page from the model file and data from a form |
https://youtu.be/NPcm43tjWx0 |
9 / 4 | php file work: loose ends (22:00) Create "Travelers.shtml" php "switch" construct: switch, break, default Present a reason for each piece of data you request |
https://youtu.be/Wl8iyER5Uxo |
Back to the home page for Still Plugging Away
Email us if you would like additional information. We would love to see your comments and recommendations for our site.
Our privacy policy: we use cookies to keep track of where you are on the site, but we do not leave cookies on your site; we do not track your visits; we do not disseminate any information about you because we do not gather any information about you.