Catholic Tech

Introductory Programming II – Building Software Systems

Course Topics

  1. Review and Recap
    • Recap of programming fundamentals from Introductory Programming I.
    • Review of basic data structures and algorithms.
  2. Object-Oriented Programming
    • Introduction to object-oriented programming (OOP) concepts.
    • Classes, objects, and inheritance.
    • Polymorphism and encapsulation.
    • Designing and implementing OOP solutions.
  3. Data Structures
    • Arrays, linked lists, stacks, queues, and trees.
    • Hash tables and dictionaries.
    • Performance analysis and Big-O notation.
    • Choosing appropriate data structures for specific problems.
  4. Algorithms
    • Sorting and searching algorithms.
    • Recursion and backtracking.
    • Graph algorithms.
    • Analyzing algorithm complexity.
  5. Software Design Principles
    • Modularity and abstraction.
    • Design patterns.
    • Testing and debugging techniques.
    • Code refactoring and optimization.
  6. Building Software Systems
    • Managing larger codebases.
    • Version control with Git.
    • Documentation and code comments.
    • Collaborative software development using GitHub.
  7. Project Development
    • Working on a significant programming project from concept to completion.
    • Applying learned concepts and techniques in real-world scenarios.
    • Collaboration, code organization, and project management.


The course syllabus is subject to change at the discretion of the instructor. Any modifications or updates will be communicated in advance.