Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction
- What programming is and why it demands attention
- The history of programming
- The opportunity to automate tasks using software
- The role of the programmer and the computer in an enterprise
- Current market trends in programming development
- Declarative versus imperative programming: How vs. What?
- The Turing machine
- Compilation, interpretation, and "on-the-fly" execution
Review of Logic and Boolean Algebra
- Predicates
- Logical propositions
- Tautologies
- Boolean algebra
Your First Program
- Structural approach
- Functional approach
- Object-oriented approach
- Alternative paradigms
Primitive Types
- String representation
- Integers
- Floating-point numbers
- Boolean values
- The Null type
- Blank or uninitialized values
- Strong vs. weak typing
Data Structures
- FIFO and FILO concepts
- Stacks
- Queues
- Declaring arrays and lists
- Indexing
- Maps (Dictionaries)
- Records
- Trees
Operators
- Assignment operators
- Arithmetic operators
- Comparison operators
- Comparison of values across different languages
- Bitwise operators
- Concatenation
- Increment and decrement operators
- Common errors
Program Control Flow
- if and if-else statements
- goto statements and their associated challenges
- switch statements
- for and for-in loops
- while and do-while loops
- foreach loop
- Terminating loops
Creating Reusable Code
- Functional Programming
- Object-Oriented Programming
Functional Programming Paradigms
- Understanding functions
- Functions vs. procedures
- Fundamentals of lambda calculus
- Function arguments
- Returning values
- Functions as arguments
- Anonymous functions
- Closures
- Recursion
Object-Oriented Programming Paradigms
- Mapping real-world entities to concepts in philosophy and ontology
- Determining what constitutes an object versus other types
- Class declaration
- Creating class instances
- Fields and object state
- Methods as object behavior
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Association and aggregation
- Delegation and separation of object relationships
- Modules, packages, and libraries
- API sharing
- Modeling systems using classes and objects
- Describing and programming relationships between classes
- Viewing programming from a business perspective
Best Programming Practices
- Common pitfalls and errors
- Translating high-level concepts to low-level code
- Code optimization
- The KISS principle
- The DRY principle
- The "Worse is Better" principle
- Separating abstraction from implementation
- Techniques for detecting logic errors in programs
- Code formatting conventions
- Code commenting
- Software metrics
Overview of Technologies and Languages
- Application domains for these languages
- Key language features
- Development prospects
- Future development directions: algorithmic approaches, code optimization, implementing patterns, design patterns, architectural patterns, and analytical standards
- Reducing control structure complexity: leveraging artificial intelligence and automated decision-making
- Platform selection: Individual consultations
35 Hours
Testimonials (5)
The Trainer was very patient with everybody, and was willing to repeat if people did not understand. He made sure everybody understood before he continued
Henry - Vodacom
Course - Introduction to Programming
It has given me a solid foundation to depart into the rabbit hole of programming :)
Andrew Jones - Vodacom
Course - Introduction to Programming
The lecturer had extensive knowledge about the subject matter and was willing to share.
Clive Lloyd - Vodacom
Course - Introduction to Programming
The content was sufficiently detailed in order for me to grasp the fundamentals and concepts, and the delivery was well executed.
Anwar - Vodacom
Course - Introduction to Programming
Patience and pace