This is an introductory class on programming, its principles, and techniques. Its aim is to make the student, who might never have been exposed to programming, familiar with this discipline and to provide those insights and tools required to approach all further classes that assume some knowledge of programming.
BASIC CONCEPTS · Algorithms. · Phases of programming. · Modeling tools. · Documentation. · A brief history of programming. · Programming languages · Compilers STRUCTURED PROGRAMMING · Principles of structured programming. · Raptor: flowchart programming. · C Language: expressions and assignments, control structures, predefined types, arrays, matrices, and strings, structured types, pointers, and memory management, functions and parameter passing, main and parameters to main, standard library, file management. · Jumps elimination: the Böhm-Jacopini Theorem, Ashcroft and Manna's transformation. · Code correctness: elements of validation and verification. OBJECT ORIENTED PROGRAMMING · Modularity, abstraction and abstract data type, encapsulation classes and objects, inheritance and polymorphism · Design pattern, Aspect oriented programming · OO Raptor · Java