Computers

Current Course Offerings
Using Hibernate in Java Applications Learn how to create applications that use Hibernate and JPA for data persistence (new in 2009)
Beginning Ruby on Rails Programming fundamentals for Ruby and Ruby on Rails
Ajax Fundamentals Learn how to leverage this exciting Web technology!
Intro To Computers Directories, commands, paths. A basic level class
Be Productive with Your PC in a Weekend
Overview of the Internet, email, the browser, Internet security, Windows, Windows alternatives, MS Office, MS Office alternatives, and other key topics (updated 2009)
Database Fundamentals Database fundamentals: tables, queries, (a little) programming, and more (updated 2009)
MySQL Database Programming Learn to program MySQL using Java and Tomcat (updated 2009)
Intro to ASP.NET Get up to speed on ASP.NET quickly!
Intro Java Programming Intro Java Concepts, variables, classes, and more
Intermediate Java Programming Covers core Java plus JDBC, JSP , and Servlets. Highly customizable
Learn to Create Websites Using Dreamweaver Learn how to create and host great looking Websites using Dreamweaver
Learn To Program in Basic (a good introductory programming class) Introductory programming taught using QBASIC
Custom Classes We can design a custom computer class to fit your needs. (See our contact page)


Using Hibernate in Java Applications

In this fast moving class, you'll learn how to setup and use the exciting ORM data persistence tool called Hibernate. You'll learn about Sun's Java Persistence Architecture (JPA) and how to create Web pages (JSPs) that will save data to a database (MySQL used for this class).

Using Hibernate, you use Java classes for your applications. With Hibernate, gone are the days of low-level JDBC (so-called database assembly language) calls and tedious code. Using Hibernate you persist data right from your Java classes. Hibernate lets you focus on your domain model (the main objects in your system) so you don't have to worry about the "database".

Of course, Hibernate takes a little getting used to, but it's fun to learn it and it's amazing what Hibernate will do for you with very little effort on your part. Add a few annotations to a Java class, install and configure Hibernate and a JDBC-compliant database of your choice, and you can start saving data directly from your Java classes!

Hibernate is also available for .NET programmers (NHibernate).

This class is for Java software developers with some SQL background and JDBC experience (JDBC programming is discussed briefly, but not covered).

This class will cover:

Any class examples with any other useful files will be put on a special class website so you can download them!

Back


Beginning Ruby on Rails

While many programming languages seem to be suffering from mid-life crises, Ruby is the hot new language and Ruby on Rails promises to ease Web development for a variety of applications.

This class teaches Ruby and Ruby on Rails basics.

Here's what we'll cover...

Working with data types in Ruby (numbers, Strings, and others)
Ruby operators
Arrays
Hashes (params hash and others)
Ranges
Conditionals, loops, methods and blocks
Classes & Objects
-----
Ruby on Rails Framework
MVC Architecture
Creating Ruby's Actions, Views, Controller
Learning to create form controls
Tying form controls directly to the model
layer
Learning to use Rails to read values from form controls
Connecting Ruby to MySQL
Validation and Testing
Building a working application (shopping cart or other similar)
Ajax with Rails

This fast-paced class assumes the student has worked with at least one other language.

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back


Ajax Fundamentals

The Internet changed everything!

It all started with just regular static HTML pages that were really nothing more than on-line brochures, then the Web evolved to CGI, Javascript, Applets, Servlets/ASPs/PHP, Flash, etc.. The problem is that each of these technologies, while improving on the user experience, also has their own problems and none of them comes close to a rich desktop application.

Enter Ajax!

Ajax isn't new and it's more of a technique than a technology. Google, NetFlix, and others have jumped on Ajax to make their Web sites much richer. Ajax will enable you to make your Web site more responsive in ways that were impossible in the traditional HTTP request/response model.

Ajax lets "parts" of your pages update without the server having to refresh the entire page. Plus, Ajax (unless you direct otherwise) happens in the background so your users can keep working on their current Web page.

Of course there are some pitfalls with Ajax. Since your users are already "trained" in traditional Web applications, they may not be expecting some of the new interactivity you're going to implement with Ajax. Also, your new Javascript/Ajax code will be visible when someone views your page source. Thus, there are security concerns you need to be aware of.

In this quick-moving class, you'll learn about...

Let's jump in! We'll create a basic form to display image information from the server and Ajax's Async capabilities.

1. Create a sample XHTML file
2. Initialize JavaScript (using DOM level 0, initialize page and assign initial callback functions)
3. Create a request Object (create the XMLHttpRequest() object)
4. Verify the request object (before working with it)!
5. Using send() to send your request
6. Using a callback function to handle the server data returned
7. Processing server responses with the responseText property (property is constantly updated)
8. Using innerHTML and setting progress indicators (manipulating DOM coming later...)
9. Enjoy your results!

After this first example, we'll delve into other topics form the list below...

DOM (levels 0, 1, and 2 and browser differences with level 2)
-- Special code needed to handle
IE vs. DOM2-compatible browsers (Firefox, Opera, Safari,....)

Why is creating usable applications so difficult?!

How to handle multiple asynchronous requests
-- Creating JavaScript Monitor functions
-- Making sure to use different request variable names for multiple requests
--
Why request variables must be global
-- Using the JavaScript setInterval(...) function for using JavaScript's internal multi-threading from our Ajax code

When is it better to make synchronous requests?
-- Do we need a callback function in these cases?


Other Ajax topics
:

-- Processing XML using DOM
-- Using the browser's DOM to process our XHTML (and ditching innerHTML)

-- Form Validation


-- JSON
---- JSON as an alternative to XML processing
---- consuming JSON objects to build our XHTML pages
---- JSON objects (are associative arrays
)
---- using JavaScript's eval() function
---- using JSON.parse(...) function
(Security is ALWAYS an issue!)
---- how is JSON better/worse than XML-DOM manipulation?
---- a quick look at JSONObject in Java and how we pass JSON back to JavaScript

Also, time permitting...

--Dynamically loading list boxes
--Progress indicators
--Auto Complete (like in Quicken)
--Accessing Web Services

--Javascript debugging techniques (alert() and beyond)
--Security (your Ajax logic is visible in browser source, other topics).
--Ajax Frameworks (should you use one?)
----implementing drag & drop functionality

This class will use Java Servlets (and server-side classes) as the server-side mechanisms and Eclipse as the IDE for the student coding labs.

Class prerequisites: Some knowledge of Javascript and CSS, Java familiarity including Servlets and general programming background.

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back


Learn to Create Websites Using Dreamweaver

Do you want to create a Web site to display your company's vision or help you sell your company's products?

Dreamweaver is a very powerful GUI tool for creating Web sites and other content and it's a RAD (Rapid Application Development) environment.

We'll start our class by discussing the various protocols like HTTP and FTP you will use to build and maintain your sites. We'll then introduce HTML and show you basic tag usage. After a tour of the Dreamweaver environment, we'll create a site map of the Web site the class will build.

From the site map, we'll quickly start using Dreamweaver to create our Home Page and begin adding elements. We will demonstrate how Dreamweaver lets you create pages in both a Code View and a Design View (and both at the same time!).

We'll talk about some of the new features recently introduced like:

We'll also demonstrate and explain some of the regular features that Dreamweaver makes so easy like adding Links, Rollover Images, Tables, Flash Buttons, meta tags, and how easy it is to create HTML Forms, using CSS, as well as lots of other material. You will see how to associate labels with text fields to help your site users. You'll also see how to validate your site's markup (HTML) and how to get a site map. We will also discuss up-front site layout design issues (and why we started with the design first).

You'll also learn how Dreamweaver can work with various programming environments like ASP and JSP to give you dynamic content and we'll discuss how you can find the ideal hosting company to host your Web site depending on your site's needs.

We'll round out the class by discussing how you can use Dreamweaver with a database such as MySQL to save information a user enters on your Website

The project you'll create in this class is a multi-page site that we'll host on a local web server.

All class examples and any other useful files will be put on a special class Website so you can download them!

This is a great course for the relatively new web developer or the developer new to Dreamweaver.

Back


Introduction to Computers

Have you tried at least one software program?

Do you want to get more out of your computer?

If you do, then this computer introductory course is for you! On the first day of class, we’ll begin de-mystifying PC hardware. We’ll also learn about different types of processors, memory, hard drives (and the newer hard drives with no moving parts!), USB drives, and other hardware.

With our hardware foundation, we’ll be ready for the main part of the course. The course's topics will include: the command prompt (and why you should understand it ... still!), devices and device names, directories, files, commands, system configuration files, data backup, computer security, software copyright laws and other important computer topics.

We will also discuss the latest version of Microsoft Windows (any why you still need to understand computer concepts to use Windows effectively), the Internet, on-line goodies, how to search and find virtually everything, how to find the best ISP, and other cool topics.

This course is PACKED with information you need to know! We will demonstrate how understanding computer concepts will help you use your applications more effectively. Additionally, the instructor will demonstrate each concept discussed.

The instructor will recommend several excellent books for managing and troubleshooting Windows.

You will get plenty of hands-on practice in the lab. This class is highly recommended for the relatively new computer user or the user who is interested in learning how to take control of his or her computer.

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back


Be Productive With Your PC in a Weekend!

Have you tried to use at least one software program? Do you want to get more out of your computer (in less time!!)? If you do, then this course is for you!

You’ll learn how to use the latest Windows versions and even some commands in the still-useful command window.

You’ll also see how to use the popular MS-Office™ packages like MS-Word™, MS-Excel™ and PowerPoint™ to create useful documents, spreadsheets, and presentations.

We'll discuss social networking sites, how to setup and use email, shopping on-line as well as using Windows and MS Office alternatives.

There is a LOT in this class!

Here are the topics you'll see:

Email
-- How to send/receive email
-- How to setup an email account
-- Email security (none) -- how to send encrypted email messages (secure)
-- How to get your own Internet Domain for your email and Web!

Browsing the Web
-- Browser choices (Firefox, IE, Opera, etc.)
-- Security
-- other

Microsoft Office
· How to create and format documents, and other tips in MS Word™
· How to create spreadsheet in MS Excel (includes basic formulas)
· How to create a PowerPoint presentation

OpenOffice
We'll discuss the MS-Office-compatible (but FREE) office suite and how it creates, as an option, Microsoft-office-formatted documents, spreadsheets, and presentations.
- Writer
- Sheet
- Present

Google's "Cloud Computing" (that is, the "Internet")
-- Using Google's office productivity functions online

Social Networking Sites
FaceBook / Twitter / Other

Business Networking Sites
LinkedIn / Plaxo / Other

Windows (computer) fundamentals

What are the alternatives to Windows?

The Mac
- OSX, what is it? What features does it have?
- Can I still run Windows?
- What programs are available?
- Support from Apple/other?

Linux
- Various distributions
- Can I still run Windows?
- What programs are available?
- Support?

The Internet --Everything is on-line now
. DSL vs. Cable
· Extremely useful Websites
. Why you should consider online banking
. Order stuff on-line? Rent Movies?
. Search for just about everything you need to know (Google, other)
. Which browser should I use? (IE, Firefox, Opera, ....)

Important System Concepts:
· When To (still) use the Command Prompt (resolving network issues, for example)
· Directories (also called folders)
-- how to create them, delete them, etc..
· Files and File Types
· Commands
· Configuration files

Extra Topics:
· Data Backup (including automated online backup options)
. Your Privacy (lost?) on the Internet
-- Identity Theft --what should you do if it happens to you?
· Computer Security
-- Using firewalls, anti-virus, anti-sypware programs. Which is best?
· Software Copyright Laws
. How to find the best software for free
. Extremely cool (useful/needed) utilities for your (Windows) PC

This course is PACKED with information you NEED TO KNOW! You will get plenty of hands-on practice in the lab.

This class is highly recommended for the relatively new computer user or for the user who is interested in learning how to take control of their computer and computer applications quickly. This course is fun!

Any class examples with any other useful files will be put on a special class website so you can download them!

Back


Introduction to ASP.NET

In this class you will learn how to write ASP.NET programs that have complex controls, interact with data, and use the VS.NET development environment.

Getting started...
-- Writing a "Hello World" ASP.NET Program
-- So, what's so different about ASP.NET
-- Setting up the basic Website environment
-- Testing the environment

ASP.NET Controls Introduction
-- What's a control?
-- Defining properties
-- Code you write for a control

ASP.NET Basic Controls
-- Buttons
-- TextBoxes
-- Image and Link buttons
-- Check boxes & Radio Buttons
-- Drop Down Menus & List Boxes

More Complex ASP.NET Controls
-- Panels
-- Calendar Control
-- Validation Controls (very cool!)

DataList and Repeater Controls
-- List-Bound Controls
-- Repeater Control
-- DataList Control

DataGrid Control
-- Overview of the Control
-- Features and Operation
-- Examples

ADO.NET DataSets
-- DataSets applications in ADO.NET
-- DataTable, DataRelations
-- Modifying Data
-- The Transactional Model

Writing Applications in ASP.NET
-- Understanding Code-Behind pages
-- Which language do I use?
-- Sessions and other types of persistence
-- Introduction to Application Design
-- Introduction to separation of application logic in layers
-- Introduction to some useful .NET design patterns
-- User Controls
-- Labs -- creating sample pages
-- Debugging your code
-- Accessing SQL Server/Other databases

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back


MySQL Database Programming

MySQL is an advanced database management system. A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL Server. Since computers are very good at handling large amounts of data, database management systems play a central role in computing, as stand-alone utilities or as parts of other applications.

This course is for web designers, database or web programmers who need to store data on the server, or for those interested in learning about server-side database environments.

In this class, you'll learn how to use this very cool open source, and very powerful, database server.

MySQL is a database server like SQL Server and Oracle.

MySQL can...

--Develop .NET applications
--Develop Java and J2EE applications
--Develop Visual Basic applications with ODBC, ADO
--Develop Perl applications

In this class, we'll focus on Java's approach of accessing MySQL data with the native Type IV JDBC driver. Time permitting, we'll also use the ODBC driver to access MySQL data from a Microsoft product like VB.NET (to be announced).

Because MySQL runs under Linux and under Windows, MySQL is the ideal choice for many Websites. Unlike other client-side database management systems you may have used, like Microsoft Access, MySQL runs on the server not on the user workstation. You'll learn the techniques needed to access and use this server data.

In this class, we'll use SQL to SELECT, INSERT, and DELETE records. We will also cover joins between tables including inner joins, and outer joins. You will also learn about sub-queries.

We'll also work with ResultSets, as well as how to set up the free Tomcat Application Server. We'll also take a look at an extremely cool MySQL front end database builder. You'll see how to set up users, how to do joins between tables (for example, SELECT all orders for a particular customer), and learn about lots about MySQL's capabilities.

We'll also create stored procedures and stored functions (new to MySQL 5).

Other advanced topics, like row-level replication, may be discussed.

We'll discuss the best free (and inexpensive) tools to administer MySQL.

You'll create a server database and test various SQL commands using a server programming language such as Java Server Pages or PHP.

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back



Introduction to Java Programming

In this fast-paced Java class, you'll be introduced to the following concepts:

Basic data types
Control Structures
Arrays
Loops
Introduction to OOP
Methods and Classes
Object Oriented Concepts
--Inheritance
--Polymorphism
--Information Hiding
--Abstraction
--Code reuse
HTML and Applets
Swing
Recursion

This course will use examples throughout. The student will have several labs to complete as the course progresses.

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back



Intermediate Java Programming

Course Details:

This course uses the Deitel "Java, How To Program" and covers the topics on the right side of this page.

This course is normally a two-to three-month class meeting two-to three times per week at the customer's facility. The course can also be held off site if desired.

This class can optionally include homework assignments and quizzes.

In the Web portion of the course the students build a Web application using the MVC design pattern, Servlets, JSPs (JSTL optional), and a MySQL database back end.

The standard course includes in-class labs with most lectures. s

(Customizable) Course Contents:

Core Material:

Intro material and Introduction to Java applications
Applets (alternatives to Java applets?)
Control Statements
More Control statements and methods
Arrays, Object-based programming
Inheritance
Interfaces
Polymorphism
Facade Design Pattern
Strings & Characters
GUI Components (AWT, Swing)
Exceptions/Assertions
Multi-threading
Files & Streams
Generics
Data Structures, (Type-Safe) Collections
Property Files/Hash Tables/Other

Database/Web Topics:

Types of JDBC Drivers (Type 1 – Type 4)
Introducing Tomcat
JDBC and applications
Resultsets, MetaData, Prepared Statements
JDBC (using MySQL)
Calling Stored Procedures (MySQL version 5 and later)
DAO Design Pattern
Model-View-Controller Design Pattern
Servlets (including setting up Tomcat)
JavaServer Pages

Other Optional Topics:

Hibernate, JSTL, JUnit, Additional Design Patterns ( e.g., Singleton), XML processing (JDOM, SAX).

Any class examples with any other useful files will be put on a special class Website so you can download them!

Back


Database Fundamentals

If you need a database to store and extract information, but you don't know where to start, this class is for you.

We start by discussing why you'd want to set up a database. We will give examples of commonly used databases.

Once we have the basic database idea we'll move on to thinking about how to set up a database. We will discuss database fields, data types, records and other elements. We will discuss how to set up a collection of tables using proper relational design and explain why you should care about proper design. Then we'll move to understanding how to extract data from our database using SQL. Our project will include setting up a database, entering information into it, learning basic SQL to run queries, and setting up and printing reports.

We will select the database we'll use depending on class background and interest.

This is an excellent first course in databases: it starts from the beginning.

Let's learn SQL!

All class examples and any other useful files will be put on a special class Website so you can download them!

Back



Learn to Program in Basic -- using QBASIC (a very good introductory programming class)

Have you ever wished you could make the computer do EXACTLY what you wanted it to? How about creating a budget for home or some needed utility for school or for the office?

Depending on class interest and background, we will write one (ore more) of the following programs:

If you have never programmed a computer before (or programmed one only a little), this course is for you. You will find that BASIC is simple to learn yet powerful enough to do just about anything you’d ever need to do! Furthermore, BASIC is now the language of choice in many Microsoft products (like VB.NET).

During the course, we’ll program in BASIC but compare what we’re doing to Visual Basic (it’s the same ‘basic’ language). Visual Basic now has over 1,000,000 programmers world wide! You’ll find much of what you learn translates directly to Visual Basic!

A major goal of the course is to teach you problem solving. Thinking about how to solve a particular problem is fun too. Once you learn how to solve problems that are well implemented on a computer, you're on your way to becoming a programmer.

You will learn about the QBASIC environment, programming basics and then you will learn about variables, loops, decision constructs, oh yes, and BUGS. You will see many example programs showing how to put each class topic to use. On our first day, we’ll write these programs together and discuss each program in depth (We’ll have a computer in the class on the first day to illustrate the examples). In the Lab, you’ll create a useful and fun class project (the program we’ll write together in the lab will be announced in the first class).

Prerequisites for this course: A strong desire to learn basic programming skills. That's it!

All class examples and any other useful files will be put on a special class Website so you can download them!

No programming experience is necessary.

This is an excellent and FUN course to start learning how to program.

Back