Programming fundamentals: variables, types, expressions and assignment; simple I/O; Conditional and iterative control structures (if statements and while loops); Strings and string processing; Use of class APIs for creating objects and calling methods; Understanding data abstraction and encapsulation; Problem solving: understanding and developing algorithms; Implementing algorithms as simple programs. Introduction to algorithms and data structures. Review of elementary programming concepts suitable for the implementation of abstract data types (operators, types and expressions; control of flow; methods; recursion; input & output); Algorithms for searching: linear, bounded linear and binary searches; Algorithms for sorting: selection, insertion, bubble and quick sorts; Fundamental linear data structures: stacks, queues, linked lists; Object-oriented programming: encapsulation and information hiding, classes, interfaces, class hierarchies, inheritance, polymorphism, basic exception handling; Analysis of basic algorithms.
Outcome:
On successful completion of the module, students should be able to:
Understand, evaluate and create algorithms.
Write structured programs.
Debug runtime errors.
Select and implement Data Structures.