• Online, Self-Paced
Course Description

F# is a Microsoft .NET language that offers support for functional programming in addition to object-oriented and imperative programming. This course introduce F#, describes the templates for creating F# programs and files in Visual Studio, and describes how to implement functional and object-oriented programming with F#. You'll also learn how to use conditional expressions, work with loops, and handle exceptions with F#.

Learning Objectives

Introducing F# and Programming Functions

  • start the course
  • introduce F#, F# templates and F# interactive in Visual Studio, create a console app, and outline options for creating other types of F# applications
  • work with functions in F# using let and do bindings
  • use lambda expressions to define anonymous functions and closures in F#
  • use recursive functions for numeric computing in F#

Working with Functions

  • use partial application in F# functions
  • implement pipelining and function chaining
  • implement lazy evaluation of expressions in F#
  • handle exceptions in F# programs

Functional Types and Mutability

  • implement the tuple data type in F# programs
  • contrast and work with discriminated unions and enums in F# programs
  • use the unit type in F# programs
  • use the mutable and ref keywords to manage mutability in F# programs

Program Flow Control

  • use conditional expressions in F#
  • use for to, for in and for while loops in F#

Object Oriented Programming in F#

  • use classes including class constructors and properties as part of domain driven design in F# programs
  • use methods in F# programs
  • use events in F# programs
  • use structures in F# programs
  • use fields in classes and structures in F# programs

Interfaces and Inheritance

  • implement interfaces and use object expressions in F# programs
  • implement inheritance in F# programs

Static and Abstract Classes

  • specify class constructors and members as static in F# programs
  • implement abstract classes in F#

Working with Methods

  • use delegates in F# programs
  • extend existing types with type extensions in F#

Practice: Functions and Objects in F# Programs

  • use F# to creating the functions required to generate a stacked calculator

Framework Connections

The materials within this course focus on the Knowledge Skills and Abilities (KSAs) identified within the Specialty Areas listed below. Click to view Specialty Area details within the interactive National Cybersecurity Workforce Framework.

Feedback

If you would like to provide feedback for this course, please e-mail the NICCS SO at NICCS@hq.dhs.gov.