=========================== “Programming” - Overview =========================== Course structure ================ At the end of the course, you will gain knowledge and practical skills around the following general *themes*: - *abstraction*: from syntax and semantics to types to classes; - *encoding logic*: from values to variables to expressions to functions to objects; - *accepting stream input*: from simple text to formatted fields to files to multi-dimensional data; - *producing stream output*: from simple text to formatted fields; - *accepting interactive input*: from a command-line interface to event-driven programming; - *producing graphical output*: using simple pre-defined APIs; - *inductive programming*: from loops to arrays to recursion. - *Java language*: standard built-in types, ``String``, ``Scanner``, ``PrintStream``; The lectures do not cover each theme in turn; instead, each lecture introduces new concepts in multiple themes simultaneously. This is necessary, because some knowledge from many themes simultaneously is necessary to complete even the most simple programming tasks. The rythm of the lectures and the order concepts are introduced are dictated by the graded assignments from the separate Instruction Manual (which you must have readily available, downloaded from BlackBoard). Lecture topics ============== - `Introduction: “this is a program”`__; .. __: intro.html - `Simple variables and data types`__; .. __: simplevars.html - `Introduction to objects`__; .. __: objintro.html - `Control structures: if`__ (and relational operators); .. __: control-if.html - `Variables and constants`__; .. __: variables.html - `Control structures: while and for`__; .. __: control-while-for.html - `Introduction to Scanner`__; .. __: intro-scanner.html - `PrintStream and using printf`__; .. __: printstream-printf.html - `Functions, procedures and methods`__; .. __: functions.html - `Operator precedence, combined operators`__; .. __: operators.html - `The ternary operator`__; .. __: ternary.html - `Combining multiple Scanners`__; .. __: multiple-scanners.html - `Control structures: switch`__; .. __: switch.html - `String, services and special characters`__; .. __: stringchars.html - `Introduction to arrays`__; .. __: intro-arrays.html - `Using objects for data structuring`__; .. __: obj-struct.html - `Functional recursion`__ .. __: recursion.html - `Two-dimensional arrays`__ .. __: 2d-arrays.html