Software Development Fundamentals


5 working days (Monday-Friday)

Who should attend?

The Software Development Fundamentals course is suitable for any apprentice leaving secondary or tertiary education who has a keen interest in Digital IT and who is enrolled onto a NowSkills Apprenticeship.

What will the apprentice learn?

The Software Development Fundamentals course will develop the apprentice’s knowledge, skills and understanding of the following:

Understanding core programming

  • Understand computer storage and data types
    • How a computer stores programs and the instructions in computer memory, memory stacks and heaps, memory size requirements for the various data storage types, numeric data and textual data
  • Understand computer decision structures
    • Various decision structures used in all computer programming languages; If decision structures; multiple decision structures, such as If…Else and switch/Select Case; reading flowcharts; decision tables; evaluating expressions
  • Identify the appropriate method for handling repetition
    • For loops, While loops, Do…While loops, and recursion
  • Understand error handling
    • Structured exception handling

Understanding object-oriented programming

  • Understand the fundamentals of classes
    • Properties, methods, events, and constructors; how to create a class; how to use classes in code
  • Understand inheritance
    • Inheriting the functionality of a base class into a derived class
  • Understand polymorphism
    • Extending the functionality in a class after inheriting from a base class, overriding methods in the derived class
  • Understand encapsulation
    • Creating classes that hide their implementation details while still allowing access to the required functionality through the interface, access modifiers

Understanding general software development

  • Understand application life cycle management
    • Phases of application life cycle management, software testing
  • Interpret application specifications
    • Reading application specifications and translating them into prototypes, code, select appropriate application type, and components
  • Understand algorithms and data structures
    • Arrays, stacks, queues, linked lists, and sorting algorithms; performance implications of various data structures; choosing the right data structure

Understanding web applications

  • Understand web page development
    • HTML, Cascading Style Sheets (CSS), JavaScript
  • Understand Microsoft ASP.NET web application development
    • Page life cycle, event model, state management, client-side versus server-side programming
  • Understand web hosting
    • Creating virtual directories and websites, deploying web applications, understanding the role of Internet Information Services
  • Understand web services
    • Web services that will be consumed by client applications, accessing web services from a client application, SOAP and Web Service Definition Language (WSDL)

Understanding desktop applications

  • Understand Windows apps
    • UI design guideline categories, characteristics and capabilities of Store Apps, identify gestures
  • Understand console-based applications
    • Characteristics and capabilities of console-based applications
  • Understand Windows Services
    • Characteristics and capabilities of Windows Services

Understanding databases

  • Understand relational database management systems
    • Characteristics and capabilities of database products, database design, Entity Relationship Diagrams (ERDs), normalisation concepts
  • Understand database query methods
    • Structured query language (SQL), creating and accessing stored procedures, updating data and selecting data
  • Understand database connection methods
    • Connecting to various types of data stores, such as flat file; XML file; in-memory object; resource optimisation