Credits: 4 (3-0-2)

Description

Organization of Computing Systems. Concept of an algorithm; termination and correctness. Algorithms to programs: specification, top-down development and stepwise refinement. Problem solving using a functional style; Correctness issues in programming; Efficiency issues in programming; Time and space measures. Procedures, functions. Data types, representational invariants. Encapsulation, abstractions, interaction and modularity. Identifying and exploiting inherent concurrency. Structured style of imperative programming. Introduction to numerical methods. At least one example of large program development.