¨DS3. Proof techniques: The structure of formal proofs;
proof techniques: direct, counterexample, contraposition, contradiction; mathematical induction
¨PF2. Algorithms and problem-solving: Problem-solving
strategies; the role of algorithms in the problem-solving process; the concept and properties of algorithms;
debugging strategies
¨PF3. Fundamental data structures: Primitive types;
arrays; records; strings and string processing; data representation in memory; static, stack, and heap allocation; runtime
storage management; pointers and references; linked structures
¨AL1. Basic algorithmic analysis: Big O notation;
standard complexity classes; empirical measurements of performance; time and space tradeoffs in algorithms
¨AL3. Fundamental computing algorithms: Simple numerical
algorithms; sequential and binary search algorithms; quadratic and O(N log N) sorting algorithms; hashing;
binary search trees
¨AR1. Digital logic and digital systems: Logic gates;
logic expressions
¨PL6. Object-oriented programming: Object-oriented
design; encapsulation and
informationhiding; separation of behavior and implementation; classes, subclasses, and inheritance;
polymorphism; class
hierarchies
¨SE1. Software design: Fundamental design concepts and
principles; object-oriented analysis and design; design for reuse
¨SE2. Using APIs: API programming; class browsers and
related tools; programming by example; debugging in the API environment
¨SE3. Software tools and environments: Programming
environments; testing tools
¨SE5. Software requirements and specifications:
Importance of specification in the software process
¨SE6. Software validation: Testing fundamentals; test
case generation
¨