Code College Logo
2020-03-27 Arnold

Dear All,

Classroom-based training

Until the lockdown is finished, all our classroom classes are conducted via video conference and we are still following the same schedules.

Online training

No changes are needed. We are carrying on as usual.

  • How do we conduct online training?
  • We use screen sharing software like Google hangouts and Zoom to conduct the class
  • We can see every student’s screen while we are talking to another. All students can talk to all others.
  • You can mute your microphone when you step out to make coffee
  • Please book a demo now.

How to book?

All the courses on our website can be booked and started now! Please do not hesitate to book or ask any questions you may have.

learning to code
2019-01-30 Arnold

Coding is a skill that everyone should be exposed to – whether to make a primary career from it or to enhance your competencies in a career outside the software industry.

For making it your primary career

We live in an automated world where companies are continuously adapting their business process to remain competitive. They need coders to write new systems and/or enhance their old systems to give them an edge.

For a non-coding career

Coding teaches you

  • analytical skills needed in problem-solving in any career in the world
  • how to automate processes in any industry to make you and your team more effective in turning around tasks
  • how to work more effectively in your day-to-day tasks

If you apply for jobs in your industry, having coding as a skill on your resume can only be a plus point and can assist you to get on the shortlist.

Should I consider doing an Intro To Programming Course? You should seriously consider it or risk being under-skilled and/or under-utilized in any career.



code college java bootcamp
2018-08-15 Arnold

My journey with the Code College Java Bootcamp

My name is Pieter I made the switch to code at the age of 31. I came from the Film industry as a cinematographer. I was always interested in web design and programming, but never actively pursued a career in it. Last year I decided I want to go for it! I was too old to do a Computer Science degree and were told it isn’t a necessity to start in code. I did a few online courses to give me the basic fundamentals of HTML, css and JavaScript, but I wanted to focus more on backend development and somebody told me JAVA is a great language and you can get Oracle certification.

I looked at a few courses online and considered joining online bootcamps but for me person to person training was preferable. Online courses are dependent on your own motivation to learn and research sections you struggle with or don’t understand initially.

I came across Code College via google a week before the start of the new bootcamp. Arnold gave me a small entry test to do (the Java bootcamp is for beginners but a basic knowledge of programming is required). I completed it in a day or two thanks to basic fundamentals I mastered already.

My bootcamp class was quite small, with a few people doing it via skype. We started with Basic JAVA and progressed to MySQL, Advanced JAVA, Spring MVC and Spring Boot. Arnold went at a fair pace but made sure everybody understood sections before moving on.

The course is structured in a way which naturally progresses and teach you concepts and technologies you need to build Web applications.

Arnold has been in programming for many years but he keeps up to date with all the latest trends and technologies in order to keep the bootcamp fresh and relevant.

After the completion of the bootcamp I wrote my OCA exam and started handing out my CV to companies and recruiters, I was prepared for a lot of rejection but told myself I will continue to code and add more projects to my gitHub page to show potential employers that I am motivated as well a testimony of my ability.

I went for my first interview within a month of completing my bootcamp. They were very impressed with my knowledge of Spring Boot and the fact that I obtained my OCA certification. Employers like people with the right attitude and motivation to continue learning.

My advice to candidates for future Bootcampers:

  • Set up a gitHub page as soon as possible and push to repositories regularly.
  • Stackoverflow is your friend
  • Read a lot of blog posts on languages and frameworks that interest you.
  • Watch youtube tutorials on sections you don’t understand
  • It will be tempting to branch off from the bootcamp and learn other frameworks/languages and technologies but stick to what is taught in the bootcamp, it is most relevant to what employers want you to know.
  • Work on how you explain what you have learnt to other people, sometimes it is not what you know but how you are able to talk it out and explain your thought process. If you are stuck somewhere it is important to be able to explain to other coders what you are stuck with.

I highly recommend Code College

2018-06-15 Arnold

Code College was awarded the MICT SETA Accreditation in NQF level 5 (provider number ACC/2018/07/0052) .

After clients started asking us for MICT SETA accreditation for their bookings, we enrolled with the MICT SETA in order to align some of our courses with the NQF Framework level 5. If you do want to book a course that is specifically accredited in the NQF framework, please check on the alignment section of the course page. Please note that the courses that do not specifically indicate alignment, is not aligned yet – we will be adding more courses as we go along and indicate each as such. On some courses there will be an alignment workshop added which will be offered at a discounted rate to students that already passed our own competency program – keep an eye on the course page or just keep in touch if you are interested to align previously done courses with us.

48872 National Certificate: Information Technology: Systems Development

The purpose of the NQF level 5 qualification is to enhance readiness and provide entry into the areas of Systems Development at NQF level 5. It prepares learners for entry into the workplace or as undergraduate study in the Systems Development areas covered, providing them with the necessary knowledge needed for further study in the fields of Information Technology and Computer Sciences at Higher Education level.

The qualification is addressing the need in the workplace for nationally recognised qualifications, based on unit standards, that will allow people with workplace experience in the Systems Development areas covered, to request assessments and get recognition for prior learning.

A qualifying learner will be able to communicate effectively with fellow IT staff & users of information technology, understanding the role of technology in a business context and to be able to address business problems with appropriate information technology solutions. Learners will be able to apply the principles of creating computer software by carrying out, under limited supervision, a task of reasonable size to demonstrate an understanding of the knowledge, techniques & skills needed in one or more area of majoring / specialization that the qualification offers.

2017-08-21 admin

This Intro to Programming Course will teach you the fundamentals of coding. These topics that are common to all coding languages today: Variables, program flow, data structures, modularisation, functions and how to build basic solutions using these fundamentals. Although we are using JavaScript in this course, the emphasis is not on language, rather on generic coding fundamentals applicable to all coding languages today. Using JavaScript is a bonus because it is the most widely used coding language in the world and used by all other coding environments.


None. No Matric required, neither any previous training in computer programming for our Intro to Programming course. If you can pass this Entry Test, you may skip this course before doing any Beginner course like Beginner Java, Beginner C#, Beginner PHP , Beginner Python  Beginner C++ and more or any of the Bootcamps.

Intended Audience:

Anybody who has not programmed before and wants to get into programming the right way

Further Training

All Coding Bootcamps and Beginner Courses

Course Material


Course Info


  • The way JavaScript works
  • How you’re going to write JavaScript
  • How to get JavaScript into your page
  • Statements
  • Variables and values
  • Loops
  • Conditionals
  • When you need to make LOTS of decisions
  • Communication with your user
  • A closer look at console.log

Design, QA

  • Coding a Serious JavaScript Application
  • Let’s build a game
  • First, a high-level design
  • Working through the Pseudocode
  • Setting up the loop, getting some input
  • Doing a little Quality Assurance
  • Generating a random number
  • Getting functional


  • JavaScript is pass-by-value.
  • Weird Functions
  • Functions can return things too
  • Tracing through a function with a return statement
  • Global and local variables
  • Scope of local and global variables
  • Don’t forget to declare your locals!

Data Structures

  • Arrays
  • How to represent multiple values in JavaScript
  • How arrays work
  • How to access an array item
  • Updating a value in the array.
  • How to iterate over an array
  • A better way to iterate over an array
  • Loop with the post-increment operator
  • Creating an array from scratch (and adding to it)


  • Object Orientation
  • How properties work
  • How does a variable hold an object?
  • Comparing primitives and objects
  • Pre-qualification
  • Passing objects to functions
  • Add behavior to your objects
  • When method does not know about a property
  • How does behavior alter state


  • Getting to know the DOM
  • How JavaScript really interacts with your HTML page
  • Getting an element with getElementById
  • What, exactly are we getting from the DOM?
  • Finding the inner HTML
  • What happens when you change the DOM
  • Don’t even think about running the code until the page is fully loaded!
  • Callbacks
  • Setting an attribute with setAttribute (you can GET attributes too)
  • So what else is a DOM good for?


  • Serious types
  • How to use null
  • Dealing with NaN
  • Understanding the equality operator (otherwise known as ==)
  • How equality converts its operands
  • Type conversions
  • How to determine if two objects are equal
  • Truthy and Falsey


  • How a string can look like a primitive and an object
  • String methods (and properties)
  • Building an example app from scratch
  • How to design the game
  • The View
  • The Model
  • Implementing the model object
  • Setting up methods
  • The Controller
  • Passing the input to the controller


  • Handling events
  • What are events?
  • What’s an event handler?
  • How to create your first event handler
  • Getting your head around events… by creating a game
  • Implementing the game
  • Assign an event handler to an image’s onclick property
  • How to reuse the same handler
  • How the event object work
  • The event object and target
  • Events and queues
  • How setTimeout works

Projects, Exercises, Quizzes and Assesments

Duration and pricing

Pricing Group C


Read about our certificates


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


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


Please email us


On the calendar 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.

2017-07-31 admin

Professional Mobile Web Development using mainly HTML5, CSS3 and JavaScript. Learn how to build lean and fast performing web mobile apps like native apps


Before attempting Mobile Web Development Programming on its own, you should have previous web design and development experience and knowledge of  HTML, CSS and basic Javascript.


Day 1:

Responsive Web Design

  • Get on the mobile bandwagon
  • The recipe for Responsive Web Design
  • An example of a responsively designed site
  • CSS media queries
  • Analyze the current CSS
  • Steps to creating the mobile-specific CS

Responsible Responsiveness

  • Mobile-first Responsive Web Design
  • Can I get a proxy to set up my proxy?
  • What to do when things aren’t blazing fast
  • Find the drags on page speed
  • It looks mobile friendly, but it isn’t
  • What is progressive enhancement?
  • Mobile-first media queries
  • Add the map back using JavaScript
  • Move iframe attributes to CSS equivalents
  • Breakpoints to the rescue

Day 2:

A Separate Mobile Website

  • Creature Comforts has agents in the field
  • Getting to know user agents
  • Straight talk: Most major sites have a separate mobile website
  • When what you really want to do is (re-)direct
  • Make a mobile mockup
  • Not all phones are smartphones…not by a sight
  • Let’s keep it basic: Meet XHTML-MP
  • Access keys in action
  • Mobile-savvy CSS

What devices should we support?

  • How do you know where to draw the line?
  • Step away from the keyboard for a second
  • Things you don’t support vs. those you can’t support
  • Ask questions about your project
  • Ingredients for your magic mobile potion
  • Draw from your cupboard of tools and data

Day 3:

Device Databases and Classes

  • A panic button for freaked-out students
  • The button is for mobile phones only
  • WURFL and its capabilities
  • WURFL: Clever API code
  • Steps for building our explore page
  • Use WURFL to help differentiate content
  • Make the page a bit smarter with WURFL
  • The panic button: For phones only
  • Expanding a lucrative part of AcedIt!’s business
  • Get acquainted with the matching function
  • Make something actually happen with device classes
  • We need a bigger safety net

Build a Mobile Web App Using a Framework

  • HTML5 is a specific thing…
  • How “traditional” websites typically behave
  • A Games Unlimited mobile HTML5 web app
  • The master plan for phase 1 of the Game
  • Why use mobile web app frameworks?
  • Our choice for the Game: jQuery Mobile
  • Build a basic page with jQuery Mobile
  • Link to multiple pages with jQuery Mobile
  • Make the Game feel more applike: to-dos
  • Time to make that tartan-building form
  • Build an HTML5 form
  • Give jQuery Mobile hints about the fields

Day 4:

Mobile Web Apps in the Real World

  • Mobile apps in the real world
  • Make a better form
  • A widget to manage the list of colors and sizes
  • The two sides of generate.php
  • Offline is important
  • A basic recipe to create a cache manifest
  • Dev tools to the rescue
  • How to ask W3C-compliant browsers where they are
  • Let’s integrate geolocation

Build Hybrid Mobile Apps

  • How do hybrid apps work?
  • Bridge the web-native gap with PhoneGap
  • Get acquainted with PhoneGap Build
  • Keep track of discovered tartans
  • Anatomy of the Tartan Hunt project
  • What makes localStorage so special?
  • Use a function to show which tartans are found
  • Rope in PhoneGap to take pictures
  • Now we’re ready for the mediaCapture API

Day 5:

How to Be Future Friendly

  • Time to dispel our collective illusions of control
  • A future-friendly manifesto
  • There are no silver bullets
  • App today, web page tomorrow
  • Remove PhoneGap references


  • Develop a mobile app from start to finish

Duration and pricing

Pricing Group A


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

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

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

Please email us

On the calendar 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

android training course
2017-07-10 admin

This Android Training Course will help you build your first working application quick-quick. You’ll learn hands-on how to structure your app, design interfaces, create a database, make your app work on various smartphones and tablets, and if you want to pass the international exam AND-401, in Android, the syllabus is covered.


Before attempting Android Programming on its own, you should have completed at least Beginner Java, if not Advanced Java or be very familiar with OO and advanced topics in Java or a similar OO language .


AND-401 Android Certification. The exam is excluded, but we cover and support you in full if you want to sit for the international exam.

Course Contents


Welcome to Android

  • The Android platform dissected
  • Your development environment
  • Install Java
  • Build a basic app
  • Activities and layouts from 50,000 feet
  • Building a basic app (continued)
  • Building a basic app (continued)
  • You’ve just created your first Android app
  • Android Studio creates a complete folder structure for you
  • Useful files in your project
  • Edit code with the Android Studio editors
  • Run the app in the Android emulator
  • Creating an Android Virtual Device
  • Run the app in the emulator
  • You can watch progress in the console
  • What just happened?
  • Refining the app
  • What’s in the layout?
  • activity_main.xml has two elements
  • The layout file contains a reference to a string, not the string itself
  • Let’s look in the strings.xml file

Interactive Apps

  • You’re going to build a Beer Adviser app
  • Create the project
  • We’ve created a default activity and layout
  • Adding components with the design editor
  • activity_find_beer.xml has a new button
  • Changes to the XML…
  • …are reflected in the design editor
  • Use string resources rather than hardcoding the text
  • Change the layout to use the string resources
  • Add values to the spinner
  • Get the spinner to reference a string-array
  • We need to make the button do something
  • Make the button call a method
  • What activity code looks like
  • Add an onClickFindBeer() method to the activity
  • onClickFindBeer() needs to do something
  • Once you have a View, you can access its methods
  • Update the activity code
  • The first version of the activity
  • Building the custom Java class
  • Enhance the activity to call the custom Java class so that we can get REAL advice
  • Activity code version 2
  • What happens when you run the code

Multiple Activities and Intents

  • Apps can contain more than one activity
  • Here’s the app structure
  • Create the project
  • Create the second activity and layout
  • Welcome to the Android manifest file
  • Use an intent to start the second activity
  • What happens when you run the app
  • Pass text to a second activity
  • Update the text view properties
  • putExtra() puts extra information in an intent
  • Update the CreateMessageActivity code
  • Get ReceiveMessageActivity to use the information in the intent
  • What happens when the user clicks the Send Message button
  • How Android apps work
  • What happens when the code runs
  • How Android uses the intent filter
  • You need to run your app on a REAL device
  • Change the code to create a chooser


The Activity LifeCycle

  • How do activities really work?
  • The Stopwatch app
  • The stopwatch layout code
  • Add code for the buttons
  • The runTimer() method
  • Handlers allow you to schedule code
  • The full runTimer() code
  • The full StopwatchActivity code
  • Rotating the screen changes the device configuration
  • From birth to death: the states of an activity
  • The activity lifecycle: from create to destroy
  • How do we deal with configuration changes?
  • What happens when you run the app
  • There’s more to an activity’s life than create and destroy
  • The activity lifecycle: the visible lifetime
  • The updated StopwathActivity code
  • What happens when you run the app
  • But what if an app is only partially visible?
  • The activity lifecycle: the foreground lifetime
  • Stop the stopwatch if the activity’s paused
  • The complete activity code
  • Your handy guide to the lifecycle methods

The User Interface

  • Three key layouts: relative, linear, and grid
  • Positioning views relative to the parent layout
  • Positioning views relative to other views
  • Attributes for positioning views relative to other views
  • RelativeLayout: a summary
  • LinearLayout displays views in a single row or column
  • Let’s change up a basic linear layout
  • Adding weight to one view
  • Adding weight to multiple views
  • Using the android:gravity attribute: a list of values
  • More values you can use with the android:layout
  • gravity attribute
  • The full linear layout code
  • LinearLayout: a summary
  • GridLayout displays views in a grid
  • Adding views to the grid layout
  • Let’s create a new grid layout
  • Row 0: add views to specific rows and columns
  • Row 1: make a view span multiple columns
  • Row 2: make a view span multiple columns
  • The full code for the grid layout
  • GridLayout: a summary
  • Layouts and GUI components have a lot in common
  • Playing with views

List Views and Adapters

  • Every app starts with ideas
  • Categorize your ideas: top-level, category, and detail/edit activities
  • Navigating through the activities
  • Use ListViews to navigate to data
  • We’re going to build the Starbuzz app
  • The drink detail activity
  • The Starbuzz app structure
  • The top-level layout contains an image and a list
  • The full top-level layout code
  • Get ListViews to respond to clicks with a Listener
  • The full TopLevelActivity code
  • How to create a list activity
  • Connect list views to arrays with an array adapter
  • Add the array adapter to DrinkCategoryActivity
  • What happens when you run the code
  • How we handled clicks in TopLevelActivity
  • The full DrinkCategoryActivity code
  • A detail activity displays data for a single record
  • Update the views with the data
  • The DrinkActivity code



  • The Workout app structure
  • The Workout class
  • How to add a fragment to your project
  • What fragment code looks like
  • Activity states revisited
  • The fragment lifecycle
  • Your fragment inherits the lifecycle methods
  • How to create a list fragment
  • The updated WorkoutListFragment code
  • Wiring up the list to the detail
  • Using fragment transaction
  • The updated MainActivity code
  • The WorkoutDetailFragment code
  • The phone and tablet app structures
  • The different folder options
  • The MainActivity phone layout
  • The full DetailActivity code
  • The revised MainActivity code

Nested Fragments

  • Creating nested fragments
  • The StopwatchFragment code
  • The StopwatchFragment layout
  • getFragmentManager() creates transactions at the activity lavel
  • Nested fragments need nested transactions
  • The full WorkoutDetailFragment code
  • Why does the app crash if you press a button?
  • the StopwatchFragment layout code
  • Make the fragment implement OnClickListener
  • Attach the OnClickListener to the buttons
  • The StopwatchFragment code
  • The WorkoutDetailFragment code


Action Bars

  • Great apps have a clear structure
  • Different types of navigation
  • Let’s start with the action bar
  • The Android support libraries
  • Your project may include support libraries
  • We’ll get the app to use up to date themes
  • Apply a theme in AndroidManifest.xml
  • Define styles in style resource files
  • Set the default theme in styles.xml
  • What happens when you run the app
  • Adding action items to the action bar
  • The menu resource file
  • The menu showAsAction attribute
  • Add a new action item
  • Create OrderActivity
  • Start OrderActivity with the Create Order action item
  • The full code
  • Sharing content on the action bar
  • Specify the content with an intent
  • The full code
  • Enabling Up navigation
  • Setting an activity’s parent
  • Adding the Up button

Navigation Drawers

  • The Pizza app revisited
  • Navigation drawers deconstructed
  • The Pizza app structure
  • Create TopFragment
  • Create PizzaFragment
  • Create PastaFragment
  • Create StoresFragment
  • Add the DrawerLayout
  • The full code for activity_main.xml
  • Initialize the drawer’s list
  • Changing the action bar title
  • Closing the navigation drawer
  • The updated code
  • Using an ActionBarDrawerToggle
  • Modifying action bar items at runtime
  • The updated code
  • Enable the drawer to open and close
  • Syncing the ActionBarDrawerToggle state
  • The updated code
  • Dealing with configuration changes
  • Reacting to changes on the back stack
  • Adding tags to fragments

SQLite Databases

  • Back to Starbuzz
  • Android uses SQLite databases to persist data
  • Android comes with SQLite classes
  • The current Starbuzz app structure
  • The SQLite helper manages your database
  • The SQLite helper
  • Create the SQLite helper
  • Inside a SQLite database
  • You create tables using Structured Query Language (SQL)
  • Insert data using the insert() method
  • Update records with the update() method
  • Multiple conditions
  • The StarbuzzDatabaseHelper code
  • What the SQLite helper code does
  • What if you need to change the database?
  • SQLite databases have a version number
  • Upgrading the database: an overview
  • How the SQLite helper makes decisions
  • Upgrade your database with onUpgrade()
  • Downgrade your database with onDowngrade()
  • Let’s upgrade the database
  • Upgrading an existing database
  • Renaming tables
  • The full SQLite helper code
  • The SQLite helper code (continued)
  • What happens when the code runs


Cursors and Asynch Tasks

  • The current DrinkActivity code
  • Specifying table and columns
  • Applying multiple conditions to your query
  • Using SQL functions in queries
  • Navigating cursors
  • The DrinkActivity code
  • Add favorites to DrinkActivity
  • The DrinkActivity code
  • The new top-level activity code
  • The revised code
  • The onPreExecute() method
  • The doInBackgound() method
  • The onProgressUpdate() method
  • The onPostExecute() method
  • The AsyncTask class
  • The code


  • The started service app
  • The IntentService from 50,000 feet
  • How to log messages
  • The full DelayedMessageService code
  • The full code
  • How you use the notification service
  • Getting your notification to start an activity
  • Send the notification using the notification service
  • The full code for
  • The steps needed to create the OdometerService
  • Define the Binder
  • The Service class has four key methods
  • Add the LocationListener to the service
  • Registering the LocationListener
  • The full code
  • Update AndroidManifest.xml
  • Update MainActivity’s layout
  • Create a ServiceConnection
  • Bind to the service when the activity starts
  • Display the distance traveled
  • The full code

Material Design

  • Welcome to Material Design
  • The Pizza app structure
  • Create the CardView
  • The full card_captioned_image.xml code
  • Create the basic adapter
  • Define the adapter’s ViewHolder
  • Create the ViewHolders
  • Each card view displays an image and a caption
  • Add the data to the card views
  • The full code for
  • Create the recycler view
  • Add the RecyclerView to the layout
  • The code
  • A RecyclerView uses a layout manager to arrange its views
  • Specifying the layout manager
  • The full code
  • Get MainActivity to use the new PizzaMaterialFragment
  • What happens when the code runs
  • Create PizzaDetailActivity
  • What needs to do
  • The code for
  • Getting a RecyclerView to respond to clicks
  • Add the interface to the adapter
  • Implement the listener in
  • Bring the content forward
  • The full code for fragment_top.xml
  • The full code for

Duration and pricing

Price Group A


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

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

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

Please email us

On the calendar 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.

java coding
2017-06-27 admin

Prerequisites  / Further Training

You should not be a complete beginner for this course. If you cannot pass this test, you must do Intro To Programming first.

Recommended sequence Summary
Beginner Java Java Language and OO Fundamentals
Advanced Java (Full-Stack) Building Apps with Java
Java Servlets Beginner Java Web development

Also have a look at our Java Bootcamp


OCA: Oracle Certified Associate Java SE 8 Programmer Exam 1Z0-808

Intended Audience

  • Intended for people who has some knowledge of programming and wanting to learn Java and OO
  • NB: This is NOT an Introduction to Programming course.

After this course you should be able to

  • Have a good understanding of programming and the building blocks of an OO programming language, with an emphasis on JAVA.
  • Prepare for Oracle OCA Exam 1Z0-803
  • Proceed to the Advanced Java Training Course

Course Material

Course Material Provided

Course Contents
Day 1
Introducing Java Technology

  • Breaking the Surface
  • The way Java works
  • Code Structure in Java
  • Anatomy of a class
  • The main() method
  • Netbeans IDE and Debugging

Loop and decision constructs

  • Looping
  • Conditional branching
  • A trip to Objectville
  • Inheritance,Overriding
  • Class variables and methods
  • Making your first object,Using main

Day 2


  • Know your Variables
  • Declaring a variable
  • Primitive types
  • Java keywords


  • Reference variables
  • Object declaration and assignment
  • Objects on the garbage collectible heap
  • Arrays
  • How Objects Behave
  • Methods use object state
  • Method arguments and return types
  • Pass-by-value


  •  Getters and Setters
  •  Encapsulation
  • Using references in an array

Day 3

Arrays and Arraylists

  • Extra Strength Methods
  • Building a one-dim Arraylist game
  • Preparing to code
  • Coding
  • Random numbers<
  • Using user-input
  • For loops
  • Casting primitives
  • String conversion
  • Using the Java Library
  • Two Dimensional Arraylist Structures
  • Enhancing the game
  • Coding the game
  • Boolean expressions
  • Using the Java library (API)
  • Using packages
  • Using the HTML API docs and

Day 4

Polymorphism. Method Overloading

  • Better Living in Objectville
  • Understanding inheritance
  • Designing an inheritance tree
  • Avoiding duplicate code
  • Overriding methods
  • IS-A and HAS-A · What do you inherit from your superclass?
  • What does inheritance really buy you?
  • Polymorphism
  • Rules for overriding
  • Method overloading

    Advanced OO Concepts

    • Serious Polymorphism
    • Some classes should not be instantiated
    • Abstract classes
    • Abstract methods
    • Polymorphism in action
    • Class Object
    • Taking objects out of an arraylist
    • Compiler checks the reference type
    • Get in touch with your inner object
    • Polymorphic references
    • Casting an object reference (moving lower in the inheritance tree)
    • Deadly Diamond of Death
    • Using interfaces (the best solution

    Day 5

    Garbage Collection

    • Life and Death of an Object
    • The stack and the heap
    • Methods on the stack
    • Where local variables live
    • Where instance variables live
    • The miracle of object creation


    • Constructors, Initializing state of a new Object
    • Overloaded constructors
    • Superclass constructors
    • Invoking overloaded constructors using this()
    • Life of an object, Garbage collection

    Handling Errors

    • Handling Errors
    • Handling Exceptions

    Duration and pricing

    In Price Group B


    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 competency assessment test and on passing you will obtain our competency certificate.
    3. Our competency assessment can be booked and taken by someone who has not attended the course at a cost of R950.


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


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


    Please email us


    On the calendar 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.