Croydon Tutorial College

Workshops, Clinics, Tutoring and e-Tutoring

Top Programmer Curriculum

The idea for a Top Programmer curriculum was inspired by becoming involved with the PiTop [4] project. Croydon Tutorial College, together with First Technology Transfer has been working for quite some time on a range of programming courses and workshops utilising the PiTop as well as standalone RasbperryPi devices such as the RaspberryPi 3 and 4 devices and the RaspberryPI Zero W. The courses in this curriculum cover not only applied programming but, just as importantly, the "more eternal" principles of good programming practice and software engineering such as version control, unit testing and, also, Continuous Integration / Continuous Devlivery and DevOps approaches involving the use of technologies such as Docker and Kubernetes.

These courses and workshops are also related to the various Cisco Netacad courses taught at Croydon Tutorial College that lead to e.g. C and C++ programmer certifications, Python programmer certifications and data analytics, IoT and Cloud Computing certifications.

The Top Programmer initiative includes courses and study programs that should be of interest to not only young budding computer scientists, but also to those seeking a change of career e.g. by training as a programmer / software engineer, systems administrator or as a data analyst. There are courses that are suitable for adults with little or no programming experience interested in learning essential system administration skills, programming skills and data analytics and visualisation skills and preparing for “micro certification” programs such as

  • LPIC parts 1 and 2
  • Python certification programs
  • C and C++ certification programs
  • Microsoft Azure Data Processing and Data Analysis certifications
  • Linux System Administration and Shell programming

Some of the courses are oriented towards programmers with basic to advanced programming skills who are keen to master modern principles and best practices of software development as well as techniques for code improvement and refactoring, agile and extreme programming practices and scaling and “large project” approaches.

At the heart of the Top Programmer approach is teaching is a philosophy oriented towards the mastery of some vital techniques and the learning of "eternal truths" based on studying cutting edge as well as more historical approaches to software engineering.

  • Version control and team based development - e.g. using Git and GitHub
  • Extreme Programming ,Agile and Scrum - understanding critically appraising
  • Mastering build systems and tools such as CMake, Maven and Gradle
  • Unit testing, Refactoring and Quality Control (Six Sigma)
  • Continuous Integration/Continuous Delivery and DevOps

The becoming a Top Programmer course program is an instructor led program that covers a wide range of tools and technologies and can be useful for students working towards C and C++ programming certification, Cisco DevAsc certification, Python programming certification and LPIC certification. Not only do the courses cover Linux from the perspective of working with the RaspberryPi, they can also be tailored to cover working with Linux on other platforms and systems e.g. - A Linux based workstation and server - Windows Subsystem for Linux (WSL) - Linux images running in virtualised environments - VMWare and VirtualBox

  • A Linux based workstation and servers
  • Windows Subsystem for Linux (WSL)
  • Linux images running in virtualised environments such as VMWare and VirtualBox
  • Linux Systems setup in the Microsoft Azure Cloud

Top Programmer Courses that we can currently, or shortly be able to, deliver include the following

  • Learning Linux and the Linux Command Line Tools and Utilities
  • Linux Bash Programming
  • Foundations of Linux Security and System Administration
  • Foundations of Linux TCP/IP Networking - Ethernet, WiFi and Bluetooth Low Energy
  • In depth introduction to Linux C programming
  • In depth introduction to Linux C++ programming
  • Advanced Linux C Programming
  • Advanced Linux C++ programming
  • In depth introduction to Linux Python programming
  • In depth introduction to PiTop and Embedded Linux Robotics programming with Python
  • In depth introduction to C# .Net programming on Linux
  • Advanced C# .Net programming on Linux
  • Programming Robotics applications using C# .Net and the PiTop .Net libraries
  • Introduction to PiTop ROS Robotics programming using the PiTop ROS Robotics Engine
  • Introduction to Machine Learning AI - Using the PiTop RaspberryPi 4 and the Google Coral accelerator
  • Introduction to Classical AI Programming using Lisp, Prolog and Clojure
  • Introduction to Java Programming for Embedded Linux
  • Advanced Java Programming for Embedded Linux
  • Image Processing and Feature Recognition Using OpenCV and Python
  • Image Processing and Feature Recognition Using OpenCV and C++
  • Graphical User Interface Design and Programming Using Qt C++ and QML

To discuss your particular requirement and for more information on tuition rates and how CTC can support you, please call us and leave a message or send an email.
Enquiries line: 07739 642996
Email inquiries should be sent to (replacing dot with ‘.’ and at with ‘@’ and ignoring spaces) awe at croydontutorialcollege dot education or to andrew dot eliasz at gmail dot com