Programming

Great for students that want to improve their coding skills.

Python Language

Students will dive into the world of Python programming. They master the syntax, loops, conditional statements, variables, and functions. Concepts such as string manipulation, list comprehensions, and basic file handling are explored, providing a well-rounded understanding. Real-world applications are emphasized, enabling students to script practical solutions. The course also introduces the principles of functional programming, where students learn to create reusable, modular code.

 

The Python curriculum follows a structured path, starting with fundamental concepts like variables, data types, and basic operations. As students progress, they move onto more advanced topics such as data structures (lists, dictionaries, strings), functions, and modules. The students also learn about file handling and error management. The final concept students learn is about principles of object-oriented programming, emphasizing the design and implementation of classes and objects.

Java Language (not JavaScript)

In Level Two, students dive into more advanced programming with a focus on Java and Object-Oriented Programming (OOP). Students learn to create efficient, modular, and scalable code by designing and implementing classes and interfaces. The coursework covers advanced topics such as exception handling, multithreading, and GUI (Graphical User Interface) programming, ensuring a strong understanding of Java’s capabilities for complex projects. This level is designed for students interested in advanced programming studies in high school or college.

In the Java programming curriculum, students begin with basics like variables, data types, and operators. Advancing, they tackle more complex topics such as control flow, loops, and conditional statements. The curriculum introduces methods and functions, emphasizing code modularity. Moving on to object-oriented programming (OOP), students grasp core principles like encapsulation, inheritance, and polymorphism. The course concludes with an exploration of advanced Java features, including exception handling, file input/output, and GUI (Graphical User Interface).

C++

In our final class students will learn C++. Students get into pointers and memory management, gaining a deep understanding of dynamic memory allocation and deallocation. The course covers advanced data structures such as linked lists, trees, and graphs, enhancing problem-solving skills. Algorithmic efficiency becomes a focal point, introducing Big O notation and sorting algorithms like quicksort and mergesort. Students also tackle complex challenges from the USA Computing Olympiad (USACO), honing their competitive programming skills.

Building Portfolios for the Future

Learning Python, Java, and C++ and building a portfolio of projects is crucial for students aspiring to advance in programming and prepare for future careers. These programming languages are widely used in the tech industry and form the foundation for various applications and software development. Understanding the Software Development Life Cycle (SDLC) is equally crucial, providing insight into the industry-standard process for creating and maintaining software. This knowledge prepares students for collaborative work in larger projects and aligns their skills with industry practices, making them well-equipped for future careers in technology.

Having a portfolio is a practical demonstration of programming skills, serving as a tangible showcase of a student’s capabilities that stands out to potential employers or when applying for advanced classes. Each project in the portfolio represents a real-world problem solved, showcasing problem-solving and critical-thinking skills. After the end of each project students are required to present their project in front of their peers. We record these presentations and save them on their portfolios. Recording presentations serves multiple purposes by helping students improve their communication skills, a valuable asset in any professional setting. Additionally, it creates a record of their progress and achievements, aiding in self-assessment and showcasing growth over time.

Common Questions.

Students that have taken Fabologie course or is interested in learning strictly just programming on the screen and is older than 12 years old. This course compliments AP Computer Science course. Students can work on projects in AP Comp Sci in this session.

Students will learn proper programming structure, etiquette and techniques. In the Python course students will learn functional programming with a hint of class objects. In the Java course students will learn OOP (Object Oriented Programming) and learn the difference of public/private constructors. In the C++ course students will learn memory management, indexing, passing by reference vs value.

Usually the student is recommended to create a GitHub account so they can upload their project and have access to it on any device they own to continue programming. Although mentors will not assign homework, it is recommended for the student to take the project home and try to solve the current problem.