Skip to main content
SDF-A: Fundamental Programming Concepts and Practices
- Basic concepts such as variables, primitive data types, expression evaluation, assignment, etc.
- Basic constructs such as conditional and iterative structures and flow of control
- Key modularity constructs such as functions (and methods and classes, if supported in the language) and related concepts like parameter passing, scope, abstraction, data encapsulation, etc.
- Input and output using files, console, and APIs
- Structured data types available in the chosen programming language like sequences (e.g., arrays, lists), associative containers (e.g., dictionaries, maps), others (e.g., sets, tuples) and when and how to use them.
- Libraries and frameworks provided by the language (when/where applicable)
- Recursion
- Dealing with runtime errors in programs (exception handling)
- Basic concept of programming errors, testing, and debugging
- Reading and understanding code
SDF-B: Fundamental Data Structures
- Standard abstract data types such as lists, stacks, queues, sets, and maps/dictionaries
- When and how to use standard data structures
- Strings and string processing
- Performance implications of choice of data structure(s)
SDF-C: Algorithms
- Concept of algorithm and notion of algorithm efficiency
- Common algorithms like: Sorting, Searching, Tree traversal, Graph traversal, etc.
- Assessing the time/space efficiency of algorithms through measurement
SDF-D: Software Development Practices
- Basic testing (perhaps using suitable frameworks) including test case design
- Use of a general purpose IDE, including its debugger (which can be also used to strengthen some programming concepts)
- Programming style that improves readability