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.
Computer Science covers subjects that are often found split between a discrete
mathematics course and a sophomore-level sequence in computer science in data
structure. So here the author's intention is to select the
mathematical foundations with an eye toward what the computer user really needs,
rather than what a mathematician might choose.
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).