This note covers the following
topics: Computing: The Functional Way, Computing Tool, Algorithms: Design and
Refinement, Technical Completeness and Algorithms, Introducing Reals,
Correctness, Termination and Complexity, Compound Data, Higher Order Functions
and Structured Data, Imperative Programming.
note has two objectives. First is to teach programming. Second is to present
some fundamental principles of computer science, especially algorithm design.
Major topics covered includes: Recursive Functions, O Notation: Estimating
Costs in the Limit, Lists, Sorting, Datatypes and Trees, Dictionaries and
Functional Arrays, Queues and Search Strategies, Functions as Values, List
Functionals, Polynomial Arithmetic, Sequences, or Lazy Lists, Elements of
Procedural Programming, and Linked Data Structures.
This course note explains
computer programming concepts includes object-oriented programming
techniques: class methods, wrapper classes for primitive types, inheritance,
abstract classes, events and listeners, packaging your code as a stand-alone
program or an applet, interfaces, garbage collection, introduction to
exceptions; structured programming techniques: switch statements, nested loops,
arrays (seaching, sorting, multidimensional).