2015-10-15 Alta

Prerequisites

This is not a beginner course – you should be at the level of at least SQL Querying Beginner .

Intended Audience

This course is intended for T-SQL developers, DBAs, BI practitioners, report writers, analysts, architects, and SQL Server power users who need to write more advanced queries and develop code using Transact-SQL.

After this course you should

  • Be able to work with programming practices unique to T-SQL
  • Create database tables and define data integrity
  • Query multiple tables using joins and subqueries
  • Simplify code and improve maintainability with table expressions
  • Implement insert, update, delete and merge data modification strategies
  • Tackle advanced techniques such as window functions, pivoting and grouping sets
  • Control data consistency using isolation levels and mitigate deadlocks and blocking
  • Take T-SQL to the next level with programmable objects
  • Be ready to prepare for Microsoft Exam 70-461

Further Training

Consider doing our BI or DBA courses

Course Material

Course Material, normally a leading recommend book is included.

Course Contents

 
 
 
 
Day 1:
Background to T-SQL Querying
  • Theoretical Background
  • SQL
  • Set Theory
  • Predicate Logic
  • The Relational Model
  • The Data Life Cycle
  • SQL Server Architecture
  • The ABC Flavors of SQL Server
  • SQL Server Instances
  • Databases
  • Schemas and Objects
  • Creating Tables and Defining Data Integrity
  • Creating Tables
  • Defining Data Integrity
Single-Table Queries
  • Elements of the SELECT Statement
  • The FROM Clause
  • The WHERE Clause
  • The GROUP BY Clause
  • The HAVING Clause
  • The SELECT Clause
  • The ORDER BY Clause
  • The TOP and OFFSET-FETCH Filters
  • A Quick Look at Window Functions
  • Predicates and Operators
  • CASE Expressions
  • NULL Marks
  • All-at-Once Operations
  • Working with Character Data
  • Data Types
  • Collation
  • Operators and Functions
  • The LIKE Predicate
  • Working with Date and Time Data
  • Date and Time Data Types
  • Literals
  • Working with Date and Time Separately
  • Filtering Date Ranges
  • Date and Time Functions
  • Querying Metadata
  • Catalog Views
  • Information Schema Views
  • System Stored Procedures and Functions
Day 2:
Joins
  • Cross Joins
  • ANSI SQL-92 Syntax
  • ANSI SQL-89 Syntax
  • Self Cross Joins
  • Producing Tables of Numbers
  • Inner Joins
  • ANSI SQL-92 Syntax
  • ANSI SQL-89 Syntax
  • Inner Join Safety
  • More Join Examples
  • Composite Joins
  • Non-Equi Joins
  • Multi-Join Queries
  • Outer Joins
  • Fundamentals of Outer Joins
  • Beyond the Fundamentals of Outer Joins
Subqueries
  • Self-Contained Subqueries
  • Self-Contained Scalar Subquery Examples
  • Self-Contained Multivalued Subquery Examples
  • Correlated Subqueries
  • The EXISTS Predicate
  • Beyond the Fundamentals of Subqueries
  • Returning Previous or Next Values
  • Using Running Aggregates
  • Dealing with Misbehaving Subqueries
Day 3:

Table Expressions
  • Derived Tables
  • Assigning Column Aliases
  • Using Arguments
  • Nesting
  • Multiple References
  • Common Table Expressions
  • Assigning Column Aliases in CTEs
  • Using Arguments in CTEs
  • Defining Multiple CTEs
  • Multiple References in CTEs
  • Recursive CTEs
  • Views
  • Views and the ORDER BY Clause
  • View Options
  • Inline Table-Valued Functions
  • The APPLY Operator
Set Operators
  • The UNION Operator
  • The UNION ALL Multiset Operator
  • The UNION Distinct Set Operator
  • The INTERSECT Operator
  • The INTERSECT Distinct Set Operator
  • The INTERSECT ALL Multiset Operator
  • The EXCEPT Operator
  • The EXCEPT Distinct Set Operator
  • The EXCEPT ALL Multiset Operator
  • Precedence
  • Circumventing Unsupported Logical Phases
Day 4:
Beyond the Fundamentals of Querying
  • Window Functions
  • Ranking Window Functions
  • Offset Window Functions
  • Aggregate Window Functions
  • Pivoting Data
  • Pivoting with Standard SQL
  • Pivoting with the Native T-SQL PIVOT Operator
  • Unpivoting Data
  • Unpivoting with Standard SQL
  • Unpivoting with the Native T-SQL UNPIVOT Operator
  • Grouping Sets
  • The GROUPING SETS Subclause
  • The CUBE Subclause
  • The ROLLUP Subclause
  • The GROUPING and GROUPING_ID Functions
Data Modification
  • Inserting Data
  • The INSERT VALUES Statement
  • The INSERT SELECT Statement
  • The INSERT EXEC Statement
  • The SELECT INTO Statement
  • The BULK INSERT Statement
  • The Identity Property and the Sequence Object
  • Deleting Data
  • The DELETE Statement
  • The TRUNCATE Statement
  • DELETE Based on a Join
  • Updating Data
  • The UPDATE Statement
  • UPDATE Based on a Join
  • Assignment UPDATE
  • Merging Data
  • Modifying Data Through Table Expressions
  • Modifications with TOP and OFFSET-FETCH
  • The OUTPUT Clause
Day 5:
Transactions and Concurrency
  • Transactions
  • Locks and Blocking
  • Locks
  • Troubleshooting Blocking
  • Isolation Levels
  • The READ UNCOMMITTED Isolation Level
  • The READ COMMITTED Isolation Level
  • The REPEATABLE READ Isolation Level
  • The SERIALIZABLE Isolation Level
  • Isolation Levels Based on Row Versioning
  • Summary of Isolation Levels
  • Deadlocks
Programmable Objects
  • Variables
  • Batches
  • A Batch As a Unit of Parsing
  • Batches and Variables
  • Statements That Cannot Be Combined in the Same     Batch
  • A Batch As a Unit of Resolution
  • The GO n Option
  • Flow Elements
  • The IF . . . ELSE Flow Element
  • The WHILE Flow Element
  • An Example of Using IF and WHILE
  • Cursors
  • Temporary Tables
  • Local Temporary Tables
  • Global Temporary Tables
  • Table Variables
  • Table Types
  • Dynamic SQL
  • The EXEC Command
  • The sp_executesql Stored Procedure
  • Using PIVOT with Dynamic SQL
  • Routines
  • User-Defined Functions
  • Stored Procedures
  • Triggers
  • Error Handling

Duration and pricing

  • Full-time over 5 days (R8995 )
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 )
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 )
  • Distance-learning over up to 3 months (R7995)
  • Prices exclude Vat for Vat-registered companies

Certificate

1. Upon completion of this course you will be issue with an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. The Microsoft exam can be booked online and written at any Pearson VUE Exam Centre.

Schedule

On the calender on this page below.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

You may download a pdf copy of this page by clicking here.

Questions

Please email us

2015-10-06 Alta

Prerequisites

Matric with no previous training in computer programming. If you cannot pass the Introduction to Programming Test, you should be doing this course before attempting Beginner Java, Beginner C#, Beginner PHP , Beginner Python etc.

Intended Audience

This course is for complete beginners, we cover the basics of Computer Programming Languages not focusing on OO, but on the fundamentals of programming like variables, arrays, data structures. Program flow and decision making with if, else etc. Also re-usability by using functions and methods. We also build a complete shopping cart system without Object-oriented programming – that will be covered in the beginner Java / C# / PHP etc.

After this course you should be able to

  • Have a good understanding of programming and the building blocks of a programming language.
  • Write useful programs using variables, arrays, loops, subroutines, functions (methods)

Further Training

Beginner Java, Beginner C#, Beginner PHP , Beginner Python

Course Material

Course Material is provided .

Course Contents

Day 1

  • Programming lets you do more
  • How to run your code
  • Create a new program file
  • Prepare  and run your code
  • A program is more than a list of commands
  • Your program is like a network of roads
  • Branches are code intersections
  • If/else branches
  • The Python code needs interconnecting paths
  • Python uses indents to connect paths
  • Loops let you run the same piece of code over   and over again
  • Python’s while loop
  • Your new gig at Starbuzz Coffee
  • Here’s the current Starbuzz code
  • The cost is embedded in the HTML
  • A string is a series of characters
  • Find characters inside the text
  • But how do you get at more than one character?
  • The String Exposed
  • Beans’R’Us is rewarding loyal customers
  • Searching is complex
  • Python data is smart
  • Strings and numbers are different
  • The program has overloaded the Beans’R’Us Server
  • Time… if only you had more of it
  • You’re already using library code
  • Order is restored

 Day 3

  • Who won the surfing contest?
  • Associate the name with the score
  • Associate a key with a value using a hash
  • Iterate hash data with for
  • The data isn’t sorted
  • When data gets complex
  • Return a data structure from a function
  • The code remains the same; it’s the function that changes
  • TVN’s data is on the money!
  • Head First Health Club is upgrading some systems
  • The program needs to create a transaction file
  • Use strings to format strings
  • The Format String Exposed
  • A late night email ruins your day
  • $50,000… for a donut?!
  • Only the sales from your program were rejected
  • The new bank uses a new format
  • Your coffee bar program still uses the old format
  • Don’t just update your copy
  • So how do you create a module…?
  • The transaction file is working great, too
  • The health club has a new requirement
  • The Starbuzz code
  • The two discount functions have the same name
  • Fully Qualified Names (FQNs) prevent your programs from getting confused

Day 5

  • What’s that smell?
  • Someone changed the file permissions
  • When it couldn’t write to the file, the program threw an exception
  • Catch the exception
  • Watch for exceptions with try/except
  • There’s an issue with the exception handler
  • A message box demands attention
  • Creating message boxes in Python
  • Time to mix it up
  • The music just kept on playing…
  • Not all events are generated by button clicks
  • Capturing the protocol event isn’t enough
  • Two buttons, or not two buttons? That is the question…
  • The checkbox is an on/off, flip/flop toggle
  • Working with checkboxes in tkinter
  • Model a slider on a scale
  • Use pygame to set the volume
  • Use tkinter for everything else
  • The DJ wants to play more than one track
  • Create code for each track as a function
  • The new function contains other functions
  • Your new function needs to create widgets and event handlers
  • The DJ is confused
  • Group widgets together
  • A frame widget contains other widgets
  • A class is a machine for creating objects
  • A class has methods that define behavior
  • But how does an object call a method?
  • The SoundPanel class looks a lot like the create gui() function
  • class = methods + data
  • The Class Exposed
  • The DJ has an entire directory of tracks
Day 2

  • Starbuzz is out of beans!
  • What does the new program need to do?
  • Don’t duplicate your code…
  • …Reuse your code instead
  • Reuse code with functions
  • Always get things in the right order
  • Return data with the return command
  • Use the Web, Luke
  • The function always sends the same message
  • Use parameters to avoid duplicating functions
  • Someone decided to mess with your code
  • The rest of the program can’t see the password variable
  • When you call a function, the computer creates a  fresh list of variables
  • When you leave a function, its variables get thrown away
  • Starbuzz is fully stocked!
  • Surf’s up in Codeville
  • Find the highest score in the results file
  • Iterate through the file with the open, for, close pattern
  • The file contains more than numbers…
  • Split each line as you read it
  • The split() method cuts the string
  • But you need more than one top score
  • Keeping track of 3 scores makes the code more complex
  • An ordered list makes code much simpler
  • Sorting is easier in memory
  • You can’t use a separate variable for each line of data
  • An array lets you manage a whole train of data
  • Python gives you arrays with lists
  • Sort the array before displaying the results
  • Sort the scores from highest to lowest

 Day 4

  • Head First TVN now produces game shows
  • pygame is cross platform
  • pygame Exposed
  • 0… 2… 1… 9… blast off!
  • tkinter gives you the event loop for free
  • tkinter is packed with options
  • The GUI works, but doesn’t do anything
  • Connect code to your button events
  • The GUI program’s now ready for a screentest
  • But TVN is still not happy
  • Label it
  • Head-Ex needs a new delivery system
  • They’ve already designed the interface
  • Read data from the GUI
  • The Entry and Text widgets let you enter text data into your GUI
  • Read and write data to text fields
  • Large Text fields are harder to handle
  • One of the Head-Ex deliveries went astray
  • Users can enter anything in the fields
  • Radio buttons force users to choose a valid depot
  • Creating radio buttons in tkinter
  • The radio buttons should work together
  • The radio buttons can share a model
  • The system tells the other widgets when the model changes
  • So how do you use models in tkinter?
  • Head-Ex’s business is expanding
  • There are too many depots on the GUI
  • An OptionMenu lets you have as many options as needed
  • The model stays the same
  • Things are going great at Head-Ex

Duration and pricing

  • Full-time over 5 days (R8995 )
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 )
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 )
  • Distance-learning over up to 3 months (R7995)
  • Prices exclude Vat for Vat-registered companies

Certificate

  • Upon completion of this course you will be issue with an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
  • Competency assessment is included.
  • External students that did not attend the course, may write the assessment at a cost of R950.

Schedule for Johannesburg (Jhb) and Cape Town (CT)

On the calender on this page below.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

You may download a pdf copy of this page by clicking on the PDF icon at the top of the page.

Questions

Please email us

2015-10-01 Alta

Prerequisites

You should be on the level of C#.NET and / or ASP.NET (Forms) before doing this course (VB.NET ).
The Code behind example of this course is C#.NET, so it is recommend that you are on this level of competence.

Intended Audience

This course is for programmers who want to learn how to build rich and interactive web sites that
run on the Microsoft .NET platform. No prior experience in web development is assumed.

This course is useful for C# or ASP.NET Forms  programmer who wants to learn the MVC (Model View Controller) methodology.

Further Training

You may consider doing the certification exam courses:

MCPD – Web Apps

Course Material

Included in the course price.
The aim of this course is to develop a fully functional website in ASP.NET MVC . This website should empower you with the skills to develop fully functional ASP.NET MVC websites.

Course Contents

DAY 1

CONTROLLERS

  • The Controller’s Role
  • A Sample Application: The MVC Music Store
  • Controller Basics
  • A Simple Example: The Home Controller
  • Writing Your First Controller
  • Parameters in Controller Actions

VIEWS

  • The Purpose of Views
  • View Basics
  • Understanding View Conventions
  • Strongly Typed Views
  • How ViewBag Falls Short
  • Understanding ViewBag, ViewData, and ViewDataDictionary
  • View Models
  • Adding a View
  • The Razor View Engine
  • What Is Razor?
  • Code Expressions
  • HTML Encoding
  • Code Blocks
  • Razor Syntax Samples
  • Layouts
  • ViewStart
  • Specifying a Partial View

MODELS

  • Modeling the Music Store
  • Scaffolding a Store Manager
  • What Is Scaffolding?
  • Scaffolding and the Entity Framework
  • Executing the Scaffolding Template
  • Executing the Scaffolded Code
  • Editing an Album
  • Building a Resource to Edit an Album
  • Responding to the Edit POST Request
  • Model Binding
  • The DefaultModelBinder
  • Explicit Model Binding

DAY 2:

FORMS AND HTML HELPERS

  • Using Forms
  • The Action and the Method
  • To GET or to POST?
  • HTML Helpers
  • Automatic Encoding
  • Making Helpers Do Your Bidding
  • Inside HTML Helpers
  • Setting Up the Album Edit Form
  • Adding Inputs
  • Helpers, Models, and View Data
  • Strongly Typed Helpers
  • Helpers and Model Metadata
  • Templated Helpers
  • Helpers and ModelState
  • Other Input Helpers
  • Html.Hidden
  • Html.Password
  • Html.RadioButton
  • Html.CheckBox
  • Rendering Helpers
  • Html.ActionLink and Html.RouteLink
  • URL Helpers
  • Html.Partial and Html.RenderPartial
  • Html.Action and Html.RenderAction

DATA ANNOTATIONS AND VALIDATION

  • Annotating Orders for Validation
  • Using Validation Annotations
  • Custom Error Messages and Localization
  • Looking Behind the Annotation Curtain
  • Controller Actions and Validation Errors
  • Custom Validation Logic
  • Custom Annotations
  • IValidatableObject
  • Display and Edit Annotations
  • Display
  • ScaffoldColumn
  • DisplayFormat
  • ReadOnly
  • DataType
  • UIHint
  • HiddenInput

MEMBERSHIP, AUTHORIZATION, AND SECURITY

  • Security: Not fun, But Incredibly Important
  • Using the Authorize Attribute to Require Login
  • Securing Controller Actions
  • How AuthorizeAttribute Works with Forms Authentication and the AccountController
  • Windows Authentication
  • Using AuthorizeAttribute to Require Role Membership
  • Extending User Identity
  • Storing additional user profile data
  • Persistance control
  • Managing users and roles
  • External Login via OAuth and OpenID
  • Registering External Login Providers
  • Configuring OpenID Providers
  • Configuring OAuth Providers
  • Security Implications of External Logins
  • Understanding the Security Vectors in a Web Application
  • Threat: Cross-Site Scripting
  • Threat: Cross-Site Request Forgery
  • Threat: Cookie Stealing
  • Threat: Over-Posting
  • Threat: Open Redirection
  • Proper Error Reporting and the Stack Trace
  • Using Configuration Transforms
  • Using Retail Deployment Configuration in Production
  • Using a Dedicated Error Logging System
  • Security Recap and Helpful Resources

DAY 3:

AJAX

  • jQuery
  • jQuery Features
  • Unobtrusive JavaScript
  • Using jQuery
  • Ajax Helpers
  • Adding the Unobtrusive Ajax Script to Your Project
  • Ajax ActionLinks
  • HTML 5 Attributes
  • Ajax Forms
  • Client Validation
  • jQuery Validation
  • Custom Validation
  • Beyond Helpers
  • jQuery UI
  • Autocomplete with jQuery UI
  • JSON and Client-Side Templates
  • Bootstrap Plugins
  • Improving Ajax Performance
  • Using Content Delivery Networks
  • Script Optimizations
  • Bundling and Minification

DAY 3:

ROUTING

  • Uniform Resource Locators
  • Introduction to Routing
  • Comparing Routing to URL Rewriting
  • Routing Approaches
  • Defining Attribute Routes
  • Defining Traditional Routes
  • Choosing Attribute Routes or Traditional Routes
  • Named Routes
  • MVC Areas
  • Catch-All Parameter
  • Multiple Route Parameters in a Segment
  • StopRoutingHandler and IgnoreRoute
  • Debugging Routes
  • Inside Routing: How Routes Generate URLs
  • High-Level View of URL Generation
  • A Detailed Look at URL Generation
  • Ambient Route Values
  • More Examples of URL Generation with the Route Class
  • Inside Routing: How Routes Tie Your URL to an Action
  • The High-Level Request Routing Pipeline
  • RouteData
  • Custom Route Constraints
  • Using Routing with Web Forms

NUGET

  • Introduction to NuGet
  • Adding a Library as a Package
  • Finding Packages
  • Installing a Package
  • Updating a Package
  • Package Restore
  • Using the Package Manager Console
  • Creating Packages
  • Packaging a Project
  • Packaging a Folder
  • Configuration File and Source Code Transformations
  • NuSpec File
  • Metadata
  • Dependencies
  • Specifying Files to Include
  • Tools
  • Framework and Profile Targeting
  • Prerelease Packages
  • Publishing Packages
  • Publishing to NuGet.org
  • Using NuGet.exe
  • Using the Package Explorer

DAY 4:

ASP.NET WEB API

  • Defining ASP.NET Web API
  • Getting Started with Web API
  • Writing an API Controller
  • Examining the Sample ValuesController
  • Async by Design: IHttpController
  • Incoming Action Parameters
  • Action Return Values, Errors, and Asynchrony
  • Configuring Web API
  • Configuration in Web-Hosted Web API
  • Configuration in Self-Hosted Web API
  • Adding Routes to Your Web API
  • Binding Parameters
  • Filtering Requests
  • Enabling Dependency Injection
  • Exploring APIs Programmatically
  • Tracing the Application
  • Web API Example: ProductsController

SINGLE PAGE APPLICATIONS WITH ANGULARJS

  • Understanding and Setting Up AngularJS
  • What’s AngularJS?
  • Your Goal in This Chapter
  • Getting Started
  • Adding AngularJS to the Site
  • Setting Up the Database
  • Building the Web API
  • Building Applications and Modules
  • Creating Controllers, Models, and Views
  • Services
  • Routing
  • Details View
  • A Custom MovieService
  • Deleting Movies
  • Editing and Creating Movies

DEPENDENCY INJECTION

  • Software Design Patterns
  • Design Pattern: Inversion of Control
  • Design Pattern: Service Locator
  • Design Pattern: Dependency Injection
  • Dependency Resolution in MVC
  • Singly Registered Services in MVC
  • Multiply Registered Services in MVC
  • Arbitrary Objects in MVC
  • Dependency Resolution in Web API
  • Singly Registered Services in Web API
  • Multiply Registered Services in Web API
  • Arbitrary Objects in Web API
  • Dependency Resolvers in MVC vs. Web API

DAY 5:

UNIT TESTING

  • Understanding Unit Testing and Test-Driven Development
  • Defining Unit Testing
  • Defining Test-Driven Development
  • Building a Unit Test Project
  • Examining the Default Unit Tests
  • Test Only the Code You Write
  • Advice for Unit Testing Your ASP.NET MVC
  • and ASP.NET Web API Applications
  • Testing Controllers
  • Testing Routes
  • Testing Validators

EXTENDING MVC

  • Extending Models
  • Turning Request Data into Models
  • Describing Models with Metadata
  • Validating Models
  • Extending Views
  • Customizing View Engines
  • Writing HTML Helpers
  • Writing Razor Helpers
  • Extending Controllers
  • Selecting Actions
  • Filters
  • Providing Custom Results

ADVANCED TOPICS

  • Mobile Support
  • Adaptive Rendering
  • Display Modes
  • Advanced Razor
  • Templated Razor Delegates
  • Advanced View Engines
  • Configuring a View Engine
  • Finding a View
  • The View Itself
  • Alternative View Engines
  • New View Engine or New ActionResult?
  • Advanced Scaffolding
  • Introducing ASP.NET Scaffolding
  • Customizing Scaffold Templates
  • Custom Scaffolders
  • Advanced Routing
  • RouteMagic
  • Editable Routes
  • Advanced Templates
  • The Default Templates
  • Custom Templates
  • Advanced Controllers
  • Defining the Controller: The IController Interface
  • The ControllerBase Abstract Base Class
  • The Controller Class and Actions
  • Action Methods
  • The ActionResult
  • Action Invoker
  • Using Asynchronous Controller Actions

EXTRA : (If time allows)

REAL-WORLD ASP.NET MVC

  • WebActivator
  • ASP.NET Dynamic Data
  • Exception Logging
  • Profiling
  • Data Access
  • EF Code–Based Migrations
  • Deployments with Octopus Deploy
  • Automated Browser Testing with Fluent Automation
  • Other Useful NuGet Packages
  • WebBackgrounder
  • Lucene.NET
  • AnglicanGeek.MarkdownMailer
  • Ninject

Duration and pricing

  • Full-time over 5 days (R8995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
  • Distance-learning over up to 3 months (R7995 excl Vat)

Certificate

1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. You have the option to get the competency / academic certificate if you :
hand in a project (pre-approved) covering most of the topics in the book.

Schedule

On the calender on this page below.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page

Questions

Please email us

2015-09-23 Alta

Alignment

Oracle OCP Certification aligned to Oracle Exam 1Z0-804

Prerequisites

You should already be at the Beginner Java level before attempting this Java SE 7 Programming Course.

Intended Audience

This course is intended for people who has completed our Beginner Java course or is at the same level. The Advanced Java training course is meant to apply everything you have learned in the Beginner Java course, learning new things and making use of more practical features of Java like IO, networking, data structures and more. After completing this course and the one before, you would have covered most of the topics required to prepare for the international exam, OCA and OCP as well as build small SE applications. To get intensive job-graded preparation assistance, have a look at our Java Bootcamp.

After this course you should be able to

Course Material

Course Material Provided

Course Contents

Day 1:
Static Classes

  • Static Methods,
  • Static Variables
  • Math Class
  • Math Methods
  • Static Imports

Wrapper classes

  • Autoboxing
  • Number formatting

Date / Time API

  • Moving backward and forward in time
  • Getting an object that extends Calendar
  • Working with Calendar objects
  • Day 2
  • Exception Handling
    • What if you need to call risky code?
    • Checked Exceptions
    • Flow control in try/catch blocks
    • Exceptions are polymorphic
    • When you don’t want to handle an exception…
    • Ducking (by declaring) only delays the inevitable

    Nested Classes

    • Getting GUI: A Very Graphic Story
    • Getting a user event
    • Listeners, Sources, and Events
    • An inner class instance must be tied to an outer class instance
    • How to make an instance of an inner class

    Highlights of the Calendar API

Day 3:

I/O Fundamentals

  • Saving Object state
  • Implement Serializable
  • Transient variables

File I/O (NIO.2)

  • Java I/O Streams
  • Path Interface
  • File Class
  • Stream API (NIO2)

Day 4:

Networking

  • Connecting, Sending, and Receiving
  • Network Sockets
  • Writing a simple server
  • Writing a Chat Client

 Threads & Concurrency

  • Thread class
  • Runnable interface
  • The Thread Scheduler
  • Putting a thread to sleep
  • Atomic methods
  • Using an object’s lock
  • Synchronization

Day 5:

Collections and Generics

  • Collections
  • Sorting an ArrayList with Collections.sort()
  • Generics and type-safety
  • Comparable interface
  • A Custom Comparator
  • Collection API : lists, sets, maps
  • HashSet
  • HashMap
  • Polymorphism wildcards

Lambda Built-in Functional Interfaces

  • Listing the built-in interfaces included in java.util.function
  • Core interfaces – Predicate, Consumer, Function, Supplier
  • Using primitive versions of base interfaces
  • Using binary versions of base interfaces

Duration and pricing

  • Full-time over 5 days (R8995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
  • Distance-learning over up to 3 months (R7995 excl Vat)
  • The OCP Exam is not included in the course price

Certificate

  1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
  2. You may sit for our Advanced Java assessment test and on passing you will obtain our competency certificate.
  3. Our Advanced Java assessment can be booked and taken by someone who has not enrolled for the course at a cost of R950.

Schedule

On the calender on this page below.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

You may download a PDF copy of this page by clicking on the PDF icon at the beginning of this page

Questions

Please email us

2015-09-14 Alta

Prerequisites

You should be on the level of C#.NET and / or ASP.NET (Forms) before doing this course.
The Code behind example of this course is C#.NET, so it is recommend that you are on this level of competence.

Intended Audience

This course is for programmers who want to learn how to build rich and interactive web sites that
run on the Microsoft .NET platform. No prior experience in web development is assumed.

This course is useful for C# or ASP.NET Forms  programmer who wants to learn the MVC (Model View Controller) methodology.

Further Training

You may consider doing the certification exam courses:

MCPD – Web Apps

Course Material

Included in the course price.
The aim of this course is to develop a fully functional website in ASP.NET MVC . This website should empower you with the skills to develop fully functional ASP.NET MVC websites.

Course Contents
Overview

  • A Quick Introduction to ASP.NET MVC
  • How ASP.NET MVC Fits in with ASP.NET
  • The MVC Pattern
  • MVC as Applied to Web Frameworks
  • The Road to MVC 5
  • MVC 4 Overview
  • Open-Source Release
  • ASP.NET MVC 5 Overview
  • One ASP.NET
  • New Web Project Experience
  • ASP.NET Identity
  • Bootstrap Templates
  • Attribute Routing
  • ASP.NET Scaffolding
  • Authentication Filters
  • Filter Overrides
  • Installing MVC 5 and Creating Applications
  • Software Requirements for ASP.NET MVC 5
  • Installing ASP.NET MVC 5
  • Creating an ASP.NET MVC 5 Application
  • The New ASP.NET Project Dialog
  • The MVC Application Structure
  • ASP.NET MVC and Conventions
  • Convention over Configuration
  • Conventions Simplify Communication

CONTROLLERS

  • The Controller’s Role
  • A Sample Application: The MVC Music Store
  • Controller Basics
  • A Simple Example: The Home Controller
  • Writing Your First Controller
  • Parameters in Controller Actions

VIEWS

  • The Purpose of Views
  • View Basics
  • Understanding View Conventions
  • Strongly Typed Views
  • How ViewBag Falls Short
  • Understanding ViewBag, ViewData, and ViewDataDictionary
  • View Models
  • Adding a View
  • The Razor View Engine
  • What Is Razor?
  • Code Expressions
  • HTML Encoding
  • Code Blocks
  • Razor Syntax Samples
  • Layouts
  • ViewStart
  • Specifying a Partial View

MODELS

  • Modeling the Music Store
  • Scaffolding a Store Manager
  • What Is Scaffolding?
  • Scaffolding and the Entity Framework
  • Executing the Scaffolding Template
  • Executing the Scaffolded Code
  • Editing an Album
  • Building a Resource to Edit an Album
  • Responding to the Edit POST Request
  • Model Binding
  • The DefaultModelBinder
  • Explicit Model Binding

FORMS AND HTML HELPERS

  • Using Forms
  • The Action and the Method
  • To GET or to POST?
  • HTML Helpers
  • Automatic Encoding
  • Making Helpers Do Your Bidding
  • Inside HTML Helpers
  • Setting Up the Album Edit Form
  • Adding Inputs
  • Helpers, Models, and View Data
  • Strongly Typed Helpers
  • Helpers and Model Metadata
  • Templated Helpers
  • Helpers and ModelState
  • Other Input Helpers
  • Html.Hidden
  • Html.Password
  • Html.RadioButton
  • Html.CheckBox
  • Rendering Helpers
  • Html.ActionLink and Html.RouteLink
  • URL Helpers
  • Html.Partial and Html.RenderPartial
  • Html.Action and Html.RenderAction

DATA ANNOTATIONS AND VALIDATION

  • Annotating Orders for Validation
  • Using Validation Annotations
  • Custom Error Messages and Localization
  • Looking Behind the Annotation Curtain
  • Controller Actions and Validation Errors
  • Custom Validation Logic
  • Custom Annotations
  • IValidatableObject
  • Display and Edit Annotations
  • Display
  • ScaffoldColumn
  • DisplayFormat
  • ReadOnly
  • DataType
  • UIHint
  • HiddenInput

MEMBERSHIP, AUTHORIZATION, AND SECURITY

  • Security: Not fun, But Incredibly Important
  • Using the Authorize Attribute to Require Login
  • Securing Controller Actions
  • How AuthorizeAttribute Works with Forms Authentication and the AccountController
  • Windows Authentication
  • Using AuthorizeAttribute to Require Role Membership
  • Extending User Identity
  • Storing additional user profile data
  • Persistance control
  • Managing users and roles
  • External Login via OAuth and OpenID
  • Registering External Login Providers
  • Configuring OpenID Providers
  • Configuring OAuth Providers
  • Security Implications of External Logins
  • Understanding the Security Vectors in a Web Application
  • Threat: Cross-Site Scripting
  • Threat: Cross-Site Request Forgery
  • Threat: Cookie Stealing
  • Threat: Over-Posting
  • Threat: Open Redirection
  • Proper Error Reporting and the Stack Trace
  • Using Configuration Transforms
  • Using Retail Deployment Configuration in Production
  • Using a Dedicated Error Logging System
  • Security Recap and Helpful Resources

AJAX

  • jQuery
  • jQuery Features
  • Unobtrusive JavaScript
  • Using jQuery
  • Ajax Helpers
  • Adding the Unobtrusive Ajax Script to Your Project
  • Ajax ActionLinks
  • HTML 5 Attributes
  • Ajax Forms
  • Client Validation
  • jQuery Validation
  • Custom Validation
  • Beyond Helpers
  • jQuery UI
  • Autocomplete with jQuery UI
  • JSON and Client-Side Templates
  • Bootstrap Plugins
  • Improving Ajax Performance
  • Using Content Delivery Networks
  • Script Optimizations
  • Bundling and Minification

ROUTING

  • Uniform Resource Locators
  • Introduction to Routing
  • Comparing Routing to URL Rewriting
  • Routing Approaches
  • Defining Attribute Routes
  • Defining Traditional Routes
  • Choosing Attribute Routes or Traditional Routes
  • Named Routes
  • MVC Areas
  • Catch-All Parameter
  • Multiple Route Parameters in a Segment
  • StopRoutingHandler and IgnoreRoute
  • Debugging Routes
  • Inside Routing: How Routes Generate URLs
  • High-Level View of URL Generation
  • A Detailed Look at URL Generation
  • Ambient Route Values
  • More Examples of URL Generation with the Route Class
  • Inside Routing: How Routes Tie Your URL to an Action
  • The High-Level Request Routing Pipeline
  • RouteData
  • Custom Route Constraints
  • Using Routing with Web Forms

NUGET

  • Introduction to NuGet
  • Adding a Library as a Package
  • Finding Packages
  • Installing a Package
  • Updating a Package
  • Package Restore
  • Using the Package Manager Console
  • Creating Packages
  • Packaging a Project
  • Packaging a Folder
  • Configuration File and Source Code Transformations
  • NuSpec File
  • Metadata
  • Dependencies
  • Specifying Files to Include
  • Tools
  • Framework and Profile Targeting
  • Prerelease Packages
  • Publishing Packages
  • Publishing to NuGet.org
  • Using NuGet.exe
  • Using the Package Explorer

ASP.NET WEB API

  • Defining ASP.NET Web API
  • Getting Started with Web API
  • Writing an API Controller
  • Examining the Sample ValuesController
  • Async by Design: IHttpController
  • Incoming Action Parameters
  • Action Return Values, Errors, and Asynchrony
  • Configuring Web API
  • Configuration in Web-Hosted Web API
  • Configuration in Self-Hosted Web API
  • Adding Routes to Your Web API
  • Binding Parameters
  • Filtering Requests
  • Enabling Dependency Injection
  • Exploring APIs Programmatically
  • Tracing the Application
  • Web API Example: ProductsController

SINGLE PAGE APPLICATIONS WITH ANGULARJS

  • Understanding and Setting Up AngularJS
  • What’s AngularJS?
  • Your Goal in This Chapter
  • Getting Started
  • Adding AngularJS to the Site
  • Setting Up the Database
  • Building the Web API
  • Building Applications and Modules
  • Creating Controllers, Models, and Views
  • Services
  • Routing
  • Details View
  • A Custom MovieService
  • Deleting Movies
  • Editing and Creating Movies

DEPENDENCY INJECTION

  • Software Design Patterns
  • Design Pattern: Inversion of Control
  • Design Pattern: Service Locator
  • Design Pattern: Dependency Injection
  • Dependency Resolution in MVC
  • Singly Registered Services in MVC
  • Multiply Registered Services in MVC
  • Arbitrary Objects in MVC
  • Dependency Resolution in Web API
  • Singly Registered Services in Web API
  • Multiply Registered Services in Web API
  • Arbitrary Objects in Web API
  • Dependency Resolvers in MVC vs. Web API

UNIT TESTING

  • Understanding Unit Testing and Test-Driven Development
  • Defining Unit Testing
  • Defining Test-Driven Development
  • Building a Unit Test Project
  • Examining the Default Unit Tests
  • Test Only the Code You Write
  • Advice for Unit Testing Your ASP.NET MVC
  • and ASP.NET Web API Applications
  • Testing Controllers
  • Testing Routes
  • Testing Validators

EXTENDING MVC

  • Extending Models
  • Turning Request Data into Models
  • Describing Models with Metadata
  • Validating Models
  • Extending Views
  • Customizing View Engines
  • Writing HTML Helpers
  • Writing Razor Helpers
  • Extending Controllers
  • Selecting Actions
  • Filters
  • Providing Custom Results

ADVANCED TOPICS

  • Mobile Support
  • Adaptive Rendering
  • Display Modes
  • Advanced Razor
  • Templated Razor Delegates
  • Advanced View Engines
  • Configuring a View Engine
  • Finding a View
  • The View Itself
  • Alternative View Engines
  • New View Engine or New ActionResult?
  • Advanced Scaffolding
  • Introducing ASP.NET Scaffolding
  • Customizing Scaffold Templates
  • Custom Scaffolders
  • Advanced Routing
  • RouteMagic
  • Editable Routes
  • Advanced Templates
  • The Default Templates
  • Custom Templates
  • Advanced Controllers
  • Defining the Controller: The IController Interface
  • The ControllerBase Abstract Base Class
  • The Controller Class and Actions
  • Action Methods
  • The ActionResult
  • Action Invoker
  • Using Asynchronous Controller Actions

REAL-WORLD ASP.NET MVC

  • May the Source Be with You
  • WebActivator
  • ASP.NET Dynamic Data
  • Exception Logging
  • Profiling
  • Data Access
  • EF Code–Based Migrations
  • Deployments with Octopus Deploy
  • Automated Browser Testing with Fluent Automation
  • Other Useful NuGet Packages
  • WebBackgrounder
  • Lucene.NET
  • AnglicanGeek.MarkdownMailer
  • Ninject

Duration and pricing

  • Full-time over 5 days (R8995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
  • Distance-learning over up to 3 months (R7995 excl Vat)

Certificate

1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. You have the option to get the competency / academic certificate if you :
hand in a project (pre-approved) covering most of the topics in the book.

Schedule

On the calender on this page below.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page

Questions

Please email us

2015-09-09 Alta

Python Beginner
Prerequisites

You should already be at the Introduction to Programming.
If in doubt, you must be able to pass this test in a programming language of your choice, before attempting this course.

Intended Audience

Whether you are new to programming or a professional developer, this book is designed to bring you up to
speed on the Python language in ways that more limited approaches cannot.

After this course you should be able to

Start programming in Python and tackle real world solutions in Python as taught on our Advanced Python course

Further Training

Consider doing our Advanced Python course

Course Material

We give you an original copy of the book: Learning Python (by Mark Lutz) as we use this mainly,
but we also give additional examples where it falls short.

Course Content

The contents could be adjusted slightly to best suit the group’s skill level and / or requirements.

Getting Started

  • Why Do People Use Python?
  • Is Python a “Scripting Language”?
  • OK, but What’s the Downside?
  • Who Uses Python Today?
  • What Can I Do with Python?
  • How Is Python Developed and Supported?
  • What Are Python’s Technical Strengths?
  • How Does Python Stack Up to Language X?

How Python Runs Programs

  • Introducing the Python Interpreter
  • Program Execution
  • Execution Model Variations

How You Run Programs

  • The Interactive Prompt
  • System Command Lines and Files
  • Unix-Style Executable Scripts: #!
  • Clicking File Icons
  • Module Imports and Reloads
  • Using exec to Run Module Files
  • The IDLE User Interface
  • Other IDEs
  • Other Launch Options
  • Which Option Should I Use?

Types and Operations 

  • Why Use Built-in Types?
  • Python’s Core Data Types
  • Numbers
  • Strings
  • Lists
  • Dictionaries
  • Tuples
  • Files
  • Other Core Types

Numeric Types

  • Numeric Type Basics
  • Numbers in Action
  • Other Numeric Types
  • Numeric Extensions

The Dynamic Typing Interlude 

  • The Case of the Missing Declaration Statements
  • Shared References
  • Dynamic Typing Is Everywhere

String Fundamentals 

  • This Chapter’s Scope
  • String Basics
  • String Literals
  • Strings in Action
  • String Methods
  • String Formatting Expressions
  • String Formatting Method Calls
  • General Type Categories

Lists and Dictionaries 

  • Lists
  • Lists in Action
  • Dictionaries
  • Dictionaries in Action

Tuples, Files, and Everything Else 

  • Tuples
  • Files
  • Core Types Review and Summary
  • Built-in Type Gotchas

Statements and Syntax 

  • The Python Conceptual Hierarchy Revisited
  • Python’s Statements
  • A Tale of Two ifs
  • A Quick Example: Interactive Loops

Assignments, Expressions, and Prints 

  • Assignment Statements
  • Expression Statements
  • Print Operations

if Tests and Syntax Rules 

  • if Statements
  • Python Syntax Revisited
  • Truth Values and Boolean Tests
  • The if/else Ternary Expression

while and for Loops 

  • while Loops
  • break, continue, pass, and the Loop else
  • for Loops
  • Loop Coding Techniques

Iterations and Comprehensions 

  • Iterations: A First Look
  • List Comprehensions: A First Detailed Look
  • Other Iteration Contexts
  • New Iterables in Python 3.X
  • Other Iteration Topics

The Documentation Interlude 

  • Python Documentation Sources
  • Common Coding Gotchas

Functions

  • Why Use Functions?
  • Coding Functions
  • A First Example: Definitions and Calls
  • A Second Example: Intersecting Sequences

Scopes 

  • Python Scope Basics
  • The global Statement
  • Scopes and Nested Functions
  • The nonlocal Statement in 3.X
  • Why nonlocal? State Retention Options

Modules 

  • Why Use Modules?
  • Python Program Architecture
  • How Imports Work
  • Byte Code Files: __pycache__ in Python 3.2+
  • The Module Search Path
  • Module Creation
  • Module Usage
  • Module Namespaces
  • Reloading Modules

Classes and OOP 

  • Why Use Classes?
  • Classes Generate Multiple Instance Objects
  • Classes Are Customized by Inheritance
  • Classes Can Intercept Python Operators
  • The World’s Simplest Python Class
  • The class Statement
  • Methods
  • Inheritance
  • Namespaces: The Conclusion
  • Documentation Strings Revisited
  • Classes Versus Modules

Classes and OOP

  • OOP and Inheritance: “Is-a” Relationships
  • OOP and Composition: “Has-a” Relationships
  • OOP and Delegation: “Wrapper” Proxy Objects
  • Pseudoprivate Class Attributes
  • Methods Are Objects: Bound or Unbound
  • Classes Are Objects: Generic Object Factories
  • Multiple Inheritance: “Mix-in” Classes
  • Other Design-Related Topics

Advanced Class Topics

  • Extending Built-in Types
  • The “New Style” Class Model
  • New-Style Class Changes
  • New-Style Class Extensions
  • Static and Class Methods
  • Decorators and Metaclasses: Part 1
  • The super Built-in Function: For Better or Worse?
  • Class Gotchas

Exceptions and Tools

  • Why Use Exceptions?
  • Exceptions: The Short Story
  • The try/except/else Statement
  • The try/finally Statement
  • Unified try/except/finally
  • The raise Statement
  • The assert Statement
  • with/as Context Managers

Duration and pricing

  • Full-time over 5 days (R8995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
  • Distance-learning over up to 3 months (R7995 excl Vat)

Certificate

1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. You have the option to get the competency / academic certificate if you :
hand in a project (pre-approved) covering most of the topics in the book
The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.

Schedule

On the calender on this page below.  This course is repeated approximately once every 6 weeks, unless a customised specific booking is requested via email.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page

Questions

Please email us

2015-09-02 Alta

Java Servlets

Prerequisites:

You should be on the Advanced Java level

Intended Audience:

This Java Servlets course is intended for people who have basic Java skills up to our Advanced Java level, no web programming experience is needed. Learn how to develop robust Java Web applications based on Servlets and JSP’s with a Tomcat server.

After this course you should be able to

  • Know how Servlets and JSP’s work together in a Java Web App.
  • Understand how Tomcat and Netbeans facilitates Java Servlet Web App Development.
  • Code and test JavaServer Pages that use scriptlets, expressions, the implicit request object, the ServletContext object, page directives, and JSP comments.
  • Code and test servlets that perform data input and storage.
  • Use the web.xml file for an application to map a servlet to a URL  pattern.
  • Write debugging data for a servlet to either the console or a log file.
  • Use the MVC pattern to develop web applications so servlets control the processing and JSPs handle the presentation.
  • Provide for server-side data validation in your applications.
  • Use include files in your JSPs at compile-time or runtime.
  • Use the web.xml file to set initialization parameters and use your servlets to get the parameters.
  • Use the web.xml file to implement custom error handling.
  • Provide for session tracking by using both cookies and URL encoding.
  • Provide for parameter passing by using URL rewriting or hidden fields.
  • Test your web applications with cookies enabled and with cookies disabled.
  • Write a utility class that includes a static method for getting a specific cookie from a user’s browser.
  • Create business classes that are JavaBeans.

Course Contents

Day 1

WEB APPLICATIONS

  • A typical example
  • Components of a Web App
  • Static vs. Dynamic
  • Overview of (Servlets, JSF, Spring Framework)
  • Intro to Servlets/JSP development
  • Software used for developing Java Web Apps
  • Software Components
  • Architecture
  • Standard Directories and Files
  • Software for Developing Java Web Apps
  • WebServers
  • Database Servers
  • Deployment Tools

MVC

  • Model 1
  • Model 2 (MVC)
  • An example MVC Servlet App
  • UI, HTML, CSS
  • Servlet
  • Web.XML or Annotations?
  • User Class
  • JSP for the 2nd page

NETBEANS AND TOMCAT

  • How to use the NetBeans IDE
  • HTML, JSP files
  • Java Classes
  • Servlets
  • XML files like Web.XML
  • More NetBeans IDE Features

HTML5 AND CSS3

  • HTML5 elements
  • HTML5 Semantic Elements
  • Div and Span
  • Cross-Browser Compatibility
  • Links, Images, Tables
  • CSS styles
  • CSS Selectors
  • CSS Rule Sets and Comments
  • CSS for table formatting
  • HTML Forms
  • Text Boxes, Buttons, Check Boxes, Radio Buttons
  • Combo Boxes, List Boxes

SERVLETS

  • Creating and mapping a Servlet
  • Requesting a Servlet
  • Servlet Skills
  • Data Validation
  • Web.xml
  • Servlet methods
  • Servlet Errors

Day 2

JSP’s

  • EL and JSTL
  • Coding a JavaBean
  • Using EL to get attributes and JavaBean properties
  • Enabling the core JSTL Library
  • Using the JSTL if tag
  • How to use JSP tags
  • Directives, Scriptlets, Expressions
  • Comments in JSP’s
  • Standard JSP tags in JavaBeans
  • useBean
  • getProperty
  • setProperty
  • Including fles in a JSP
  • Common JSP errors

Day 3

SESSIONS AND COOKIES

  • Session tracking with HTTP
  • Session tracking in Java
  • Why an app needs session tracking
  • Getting and Setting session attributes
  • More methods of the session object
  • Thread-safe access to the session object
  • Creating and using cookies
  • Viewing and deleting cookies
  • Four methods for working with cookies
  • A utility class for working with cookies
  • URL rewriting
  • Using hidden fields to pass parameters
  • A Music Download Application
  • User Interface
  • File structure
  • web.xml
  • JSP’s
  • Servlets

EXPRESSION LANGUAGE

  • Advantages and Disadvantages
  • Using the dot operator to work with arrays and lists
  • Using EL to specify scope
  • How to use the dot operator to work with arrays and lists
  • How to use the dot operator to access nested properties
  • Using the [] operator to access attributes
  • Working with other implicit EL objects
  • Working with other EL operators
  • How to disable EL
  • How to disable scripting

Day 4

  • How to use the JSP Standard Tag Library
    • (JSTL)
    • An introduction to JSTL
    • JSTL Libraries
    • Making the JSTL Jar fiiles available to your application
    • Coding the taglib directive
    • Coding a JSTL Tag
    • Viewing the documentation for a library
    • How to work with the JSTL core library
    • out, forEach, forTokens
    • Attributes for looping
    • if, choose, url tags
    • More tags
    • The Cart Web application
    • User Interface
    • Business Classes
    • Servlets and JSP’s

CUSTOM JSP TAGS

  • How to code a custom tag that doesn’t have a body
  • How to code a custom tag that has a body
  • How to code a custom tag that has attributes
  • How to code a custom tag that reiterates its body
  • How to work with scripting variables
  • Classes, methods and fields for working with custom tags

Day 5

  • How to use MySQL as the database management system
  • An introduction to MySQL
  • How to work with the MySQL Workbench
  • Database Connections
  • The SQL statements for data manipulation
  • SQL Commands Overview

JDBC

  • How to use JDBC to work with a database
  • Database drivers
  • Connecting to a Database
  • Returning a Result Set
  • Retrieve Data from a Result Set
  • Insert, update, delete data
  • Prepared Statements
  • An SQL Gateway Application
  • How to work with connection pooling
  • The Email List application

JPA

  • Introduction
  • A summary of JPA implementation
  • Entities and the Entity Manager
  • Configuring the Netbeans IDE to work with JPA
  • Configuring a Persistence unit
  • JPA Entities
  • Coding the class for an entity
  • Using getter and field annotations
  • Coding relationships between entities
  • Working with dates and times
  • Retrieving data
  • Getting an Entity Manager Factory
  • Retrieving an entity by primary key
  • Retrieving multiple entities
  • Retrieving a single entity
  • Insert, update or delete a single entity
  • Update or delete multiple entities
  • A complete JPA class
  • Methods to modify date
  • Methods to retrieve data
  • Transaction management
 

Duration and pricing

  • Full-time over 5 days (R8995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
  • Distance-learning over up to 3 months (R7995 excl Vat)

Certificate

1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples. 2. You have the option to get the competency / academic certificate if you : hand in a project (pre-approved) covering most of the topics in the book The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.

Schedule

On the calender on this page below.  This course is repeated approximately once every 6 weeks, unless a customised specific booking is requested via email. If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page

Questions

Please email us

2015-08-27 Alta

Prerequisites

Matric with no previous training in computer programming. If you cannot pass the Introduction to Programming Test, you should be doing this course before attempting Beginner Java, Beginner C#, Beginner PHP , Beginner Python etc.

Intended Audience

This course is for complete beginners, we cover the basics of Computer Programming Languages not focusing on OO, but on the fundamentals of programming like variables, arrays, data structures. Program flow and decision making with if, else etc. Also re-usability by using functions and methods. We also build a complete shopping cart system without Object-oriented programming – that will be covered in the beginner Java / C# / PHP etc.

After this course you should be able to

  • Have a good understanding of programming and the building blocks of a programming language.
  • Write useful programs using variables, arrays, loops, subroutines, functions (methods)

Further Training

Beginner Java, Beginner C#, Beginner PHP , Beginner Python

Course Material

Course Material is provided .

Course Contents

Day 1

  • Programming lets you do more
  • How to run your code
  • Create a new program file
  • Prepare  and run your code
  • A program is more than a list of commands
  • Your program is like a network of roads
  • Branches are code intersections
  • If/else branches
  • The Python code needs interconnecting paths
  • Python uses indents to connect paths
  • Loops let you run the same piece of code over   and over again
  • Python’s while loop
  • Your new gig at Starbuzz Coffee
  • Here’s the current Starbuzz code
  • The cost is embedded in the HTML
  • A string is a series of characters
  • Find characters inside the text
  • But how do you get at more than one character?
  • The String Exposed
  • Beans’R’Us is rewarding loyal customers
  • Searching is complex
  • Python data is smart
  • Strings and numbers are different
  • The program has overloaded the Beans’R’Us Server
  • Time… if only you had more of it
  • You’re already using library code
  • Order is restored

 Day 3

  • Who won the surfing contest?
  • Associate the name with the score
  • Associate a key with a value using a hash
  • Iterate hash data with for
  • The data isn’t sorted
  • When data gets complex
  • Return a data structure from a function
  • The code remains the same; it’s the function that changes
  • TVN’s data is on the money!
  • Head First Health Club is upgrading some systems
  • The program needs to create a transaction file
  • Use strings to format strings
  • The Format String Exposed
  • A late night email ruins your day
  • $50,000… for a donut?!
  • Only the sales from your program were rejected
  • The new bank uses a new format
  • Your coffee bar program still uses the old format
  • Don’t just update your copy
  • So how do you create a module…?
  • The transaction file is working great, too
  • The health club has a new requirement
  • The Starbuzz code
  • The two discount functions have the same name
  • Fully Qualified Names (FQNs) prevent your programs from getting confused

Day 5

  • What’s that smell?
  • Someone changed the file permissions
  • When it couldn’t write to the file, the program threw an exception
  • Catch the exception
  • Watch for exceptions with try/except
  • There’s an issue with the exception handler
  • A message box demands attention
  • Creating message boxes in Python
  • Time to mix it up
  • The music just kept on playing…
  • Not all events are generated by button clicks
  • Capturing the protocol event isn’t enough
  • Two buttons, or not two buttons? That is the question…
  • The checkbox is an on/off, flip/flop toggle
  • Working with checkboxes in tkinter
  • Model a slider on a scale
  • Use pygame to set the volume
  • Use tkinter for everything else
  • The DJ wants to play more than one track
  • Create code for each track as a function
  • The new function contains other functions
  • Your new function needs to create widgets and event handlers
  • The DJ is confused
  • Group widgets together
  • A frame widget contains other widgets
  • A class is a machine for creating objects
  • A class has methods that define behavior
  • But how does an object call a method?
  • The SoundPanel class looks a lot like the create gui() function
  • class = methods + data
  • The Class Exposed
  • The DJ has an entire directory of tracks
Day 2

  • Starbuzz is out of beans!
  • What does the new program need to do?
  • Don’t duplicate your code…
  • …Reuse your code instead
  • Reuse code with functions
  • Always get things in the right order
  • Return data with the return command
  • Use the Web, Luke
  • The function always sends the same message
  • Use parameters to avoid duplicating functions
  • Someone decided to mess with your code
  • The rest of the program can’t see the password variable
  • When you call a function, the computer creates a  fresh list of variables
  • When you leave a function, its variables get thrown away
  • Starbuzz is fully stocked!
  • Surf’s up in Codeville
  • Find the highest score in the results file
  • Iterate through the file with the open, for, close pattern
  • The file contains more than numbers…
  • Split each line as you read it
  • The split() method cuts the string
  • But you need more than one top score
  • Keeping track of 3 scores makes the code more complex
  • An ordered list makes code much simpler
  • Sorting is easier in memory
  • You can’t use a separate variable for each line of data
  • An array lets you manage a whole train of data
  • Python gives you arrays with lists
  • Sort the array before displaying the results
  • Sort the scores from highest to lowest

 Day 4

  • Head First TVN now produces game shows
  • pygame is cross platform
  • pygame Exposed
  • 0… 2… 1… 9… blast off!
  • tkinter gives you the event loop for free
  • tkinter is packed with options
  • The GUI works, but doesn’t do anything
  • Connect code to your button events
  • The GUI program’s now ready for a screentest
  • But TVN is still not happy
  • Label it
  • Head-Ex needs a new delivery system
  • They’ve already designed the interface
  • Read data from the GUI
  • The Entry and Text widgets let you enter text data into your GUI
  • Read and write data to text fields
  • Large Text fields are harder to handle
  • One of the Head-Ex deliveries went astray
  • Users can enter anything in the fields
  • Radio buttons force users to choose a valid depot
  • Creating radio buttons in tkinter
  • The radio buttons should work together
  • The radio buttons can share a model
  • The system tells the other widgets when the model changes
  • So how do you use models in tkinter?
  • Head-Ex’s business is expanding
  • There are too many depots on the GUI
  • An OptionMenu lets you have as many options as needed
  • The model stays the same
  • Things are going great at Head-Ex

Duration and pricing

  • Full-time over 5 days (R8995 )
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 )
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 )
  • Distance-learning over up to 3 months (R7995)
  • Prices exclude Vat for Vat-registered companies

Certificate

  • Upon completion of this course you will be issue with an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
  • Competency assessment is included.
  • External students that did not attend the course, may write the assessment at a cost of R950.

Schedule for Johannesburg (Jhb) and Cape Town (CT)

On the calender on this page below.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

You may download a pdf copy of this page by clicking on the PDF icon at the top of the page.

Questions

Please email us

2015-08-04 Alta

Prerequisites

Matric

Intended Audience

    • This SQL querying beginner training course is for database developers and administrators at beginner level.
    • Some familiarity with relational databases and basic SQL might be helpful. Some programming experience might be helpful. This is also the first course in the MCSA track.

After this course you should

    • Know basic SQL syntax
    • Know SQL database design concepts
    • Know Advanced querying
    • Know how to do hard core database manipulation with Subqueries, Joins and Transactions
    • Understand effective and efficient database design and creation
    • Be able to query, normalize and join data
    • Be ready to prepare for the MTA DBA Fundamentals Exam 98-364

Further Training

Course Material

    • Course material included.

Course Contents

 Day 1:

  • Data and Tables – a place for everything
  • Data in categories
  • What’s in a Database
  • CREATE TABLE Statement
  • Data types
  • DESCribed
  • INSERT Statement
  • NULL, NOT NULL
  • DEFAULT
  • The SELECT Statement – gifted data retrieval
  • How to query data types
  • Comparison Operators
  • AND, OR, LIKE, BETWEEN, IN, NOT IN

Day 3:

  • Advanced SELECT – Seeing your data with new eyes
  • CASE expression
  • ORDER BY
  • SUM, MIN, MAX, AVG, GROUP BY
  • COUNT, LIMIT
  • Multi-table Database Design – Outgrowing your table
  • Schema
  • How to go from one table to two
  • Create a table with a Foreign Key
  • Relationships between tables
  • Patterns of data
  • Junction table
  • 1NF
  • Partial functional dependency
  • Transitive functional dependency
  • 2NF
  • 3NF

Day 5:

  • Constraints, Views and Transactions
  • CHECK CONSTRAINT
  • Creating a view
  • Inserting, updating and deleting with views
  • View with CHECK OPTION
  • Transactions
  • The ACID Test
  • Security – protecting your assets
  • GRANT statement
  • GRANT variations
  • REVOKE privileges
  • REVOKING a used GRANT OPTION
  • MTA-Exam 98-364 Review Prep
 Day 2:

  • DELETE and UPDATE – a change will do you good
  • Smart table design – why be normal?
  • Atomic data
  • Primary Key
  • ALTER – Rewriting the past
  • Renaming the table
  • DROP column
  • UPDATE, SET


Day 4:

  • JOINS and multi table operations
  • CREATE, SELECT, INSERT at the same time
  • AS, column aliases
  • Inner JOINS
  • Subqueries – Queries within queries
  • Natural Join
  • Noncorrelated subqueries
  • Correlated subqueries
  • EXISTS and NOT EXISTS
  • OUTER JOINS, SELF JOINS and UNIONS
  • Left and right outer join
  • A self-referencing foreign key
  • INTERSECT and EXCEPT
  • Turning a subquery into a join

Duration and pricing

  • Full-time over 5 days (R8995 )
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 )
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 )
  • Distance-learning over up to 3 months (R7995)
  • Prices exclude Vat for Vat-registered companies

Certificate

  • Upon completion of this course you will be issue with an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
  • Competency assessment is included.
  • External students that did not attend the course, may write the assessment at a cost of R950.

 

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

You may download a pdf copy of this page by clicking here.

Questions

Please email us

Schedule for Johannesburg (Jhb) and Cape Town (CT)

On the calender on this page below. Look for MTA+Beg-SQL-Jhb or MTA-Beg-SQL-CT
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

2015-07-28 Alta
Prerequisites

Beginner Java

Beginning SQL

Intended Audience

This course is for java programmers who wants to learn Android App development.
Some familiarity with relational databases.

Course Material

Included in the course price.

Course Contents

 Day 1

  • Hallo Android Programming
  • Activities, Fragments and Intents

Day 2

  • Understanding the Android user Interface
  • Creating your user interface with views

Day 3

  • Displaying Pictures and Menus with views
  • Keeping data persistent
  • Content providers
Day 4 

  • SMS and email messaging
  • Location-Based Sservices
  • Networking

Day 5

  • Developing Android services
  • Publishing Android Applications

 

Duration and pricing

  • Full-time over 5 days (R8995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
  • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
  • Distance-learning over up to 3 months (R7995 excl Vat)

Certificate

1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. You have the option to get the competency / academic certificate if you :
hand in a project (pre-approved) covering most of the topics in the book.

Schedule

Please enquire by contacting us

Bookings

You can download the course registration form on our home page or by clicking here

Brochure

To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page.

Questions

Please email us