Software design process in a high-level programming environment; including
- programming fundamentals,
- language syntax,
- simple data types,
- control constructs,
- functions,
- parameter passing,
- recursion,
- classes,
- arrays and lists,
- list traversals,
- introduction to searching and sorting algorithms,
- basic object-oriented design, polymorphism and inheritance,
- simple testing and debugging strategies,
- pointers and references, and
- basic memory management.