581325 Introduction to programming
Principal theme | Prerequisite knowledge | Approaches the learning objectives | Reaches the learning objectives | Deepens the learning objectives |
---|---|---|---|---|
Algorithms and control structures | • No pre-requisites (comprehensive-school mathematics) | • Know and can explain the concept of programming languages, compilation, and interpretation. • Can explain the significance of assignment operations and the sequential execution of algorithms. • Can simulate simple algorithms. |
• Can formulate simple algorithms. • Can explain the concept "algorithm state." • Understand how logical expressions are statements on algorithm's state. • Know how to use basic control structures. • Understand the concept of a program that asks for input data and writes output data, and can implement one. • Know the concept of arrays and can program sequential search, binary search, and some way to sort the elements of an array. |
• Can understand why a sequential search is a linear operation, a binary search logarithmic, and sorting squared. • Can create programs that are elegant both in their logic and their appearance. |
Variables and types | • The concept of algorithms | • Grasp the concept of the type and value of variables. |
• Can use variables and write expressions of the types int, double, boolean and String. • Understand the behaviour of formal parameters and local variables. • Know how to use classes as types. |
• Know some of the history of type categorisation and can assess the consequences of different options. |
Sub-programs | • The concept of algorithms | • Grasp the principles of naming and calling algorithms. | • Can define and call sub-programs, Java methods. • Can describe and use formal and actual parameters. • Know how a method can change the value of a parameter, if the parameter's class allows it. • Know the technique for overloading methods and also know how to program overloaded methods and constructors in practice. |
• Know that the Java value parameters is just one alternative for parameter technique: there are languages with reference parameters, for example. • |
Classes, objects and encapsulation | • Variables, algorithms, methods, parameters | • Can outline the objects for a class specification as "drawings" for creating objects. | • Can program instance variables and accessors. • Know the technique for encapsulation and can apply it in programming. • Know the concept of 'object state.' • Know the lifespan of an object and how it differs from the lifespan of the local variables of methods. • Can give objects as parameters. • Know the significance of automatic garbage collection. |
• Understand the significance of encapsulation in software design and the need for program validation. • Understand the consequences of automatic garbage collection in the applicability of the Java language and what Java is suitable for for this reason, and what it is completely unsuitable for. |