# Computer Science

## Computer Science

- [Our Curriculum and Department](https://gilmour.online/compsci/master.md): This page will introduce you to the course material we're building and how the Computer Science Department at Gilmour Academy operates.
- [Intro to Programming](https://gilmour.online/compsci/pnr.md): A review of the basics of computing, programming and robotics. We'll build simple Python apps and play with Raspberry Pi's.
- [1: Parts of a Computer](https://gilmour.online/compsci/pnr/1-hardware-layers.md): What are the parts that make up a typical computer? Let's take one apart, label its components and talk about what each does.
- [2: Parts of Python](https://gilmour.online/compsci/pnr/2-parts-of-python.md)
- [3: DRY Turtle](https://gilmour.online/compsci/pnr/3-i-like-turtles.md)
- [4: Turtle Design App](https://gilmour.online/compsci/pnr/4-turtle-app.md)
- [Wordle with Turtles](https://gilmour.online/compsci/pnr/wordle-with-turtles.md)
- [5: Interactive Turtles](https://gilmour.online/compsci/pnr/5-replit-github-and-repositories-oh-my.md)
- [OLD 5: Replit, GitHub, and repositories (Oh my!)](https://gilmour.online/compsci/pnr/5-replit-github-and-repositories-oh-my-1.md)
- [6: Raspberry Pi / GoPiGo](https://gilmour.online/compsci/pnr/6-raspberry-pi-gopigo.md)
- [7: Kivy](https://gilmour.online/compsci/pnr/7-kivy.md)
- [Intro to Web Design](https://gilmour.online/compsci/web-design.md): Build web pages using HTML/CSS and WordPress all according to modern design principles.
- [1: What's the Internet?](https://gilmour.online/compsci/web-design/unit-1.md): What is the Internet? We need to understand some of the basics to the underlying tech so we can understand why websites work the way they do.
- [2: What are Websites?](https://gilmour.online/compsci/web-design/2-http.md): What's happening under the surface of a web page?
- [3: Bootstrap](https://gilmour.online/compsci/web-design/3-hello-bootstrap.md): Use a Bootstrap template to produce a stunning webpage.
- [4: Code Setup](https://gilmour.online/compsci/web-design/4-code-setup.md)
- [5: Graphics and Branding](https://gilmour.online/compsci/web-design/graphics-and-branding.md): Let's talk about the design in web design.
- [6: Project Management](https://gilmour.online/compsci/web-design/collaboration.md): Use project management software to be accountable for professional-caliber design work.
- [7: Advanced Editing](https://gilmour.online/compsci/web-design/adv-editing.md)
- [8. Publish to Netlify](https://gilmour.online/compsci/web-design/ex-publish-static-html.md): Move from a development environment to production
- [AP Computer Science](https://gilmour.online/compsci/ap-computer-science.md): A deep dive into Java programming in preparation for the College Board's Advanced Placement test.
- [1-A: Logic & Instances](https://gilmour.online/compsci/ap-computer-science/unit-1.md): We start with the fundamentals of logic gates and logical expressions using De Morgan's Law. By looking at transistors, the most granular aspect of CS, we can steadily add layers of abstraction.
- [1-B: How Java Works](https://gilmour.online/compsci/ap-computer-science/2-java-architecture.md): We will review the basics of object-oriented programming and how Java is configured. This is primarily a build-up of vocabulary. This unit moves quickly as there are limited practical applications.
- [1-C: Data Types & Operations](https://gilmour.online/compsci/ap-computer-science/3-hello-world.md): We will learn to solve simple problems with Java programming. We will create all sorts of variables, test their limitations and exercise basic control flow.
- [2-A: Selection and Iteration](https://gilmour.online/compsci/ap-computer-science/2-a-selection-and-iteration.md)
- [2-B: Strings](https://gilmour.online/compsci/ap-computer-science/4-magpie-strings.md): We start to delve into algorithms and basic AI with our first CollegeBoard-issued lab. We will learn about String manipulation so we can have a conversation with our computer.
- [3-A: Class References](https://gilmour.online/compsci/ap-computer-science/5-objects-and-references.md): We will look more closely at the object-oriented programming and the implications of instantiated objects.
- [3-B: Monster Project](https://gilmour.online/compsci/ap-computer-science/3-b-monster-project.md)
- [3-C: Data Science](https://gilmour.online/compsci/ap-computer-science/3-c-data-science.md): Using custom objects to bring life to each row in a spreadsheet
- [4-A: Data Structures](https://gilmour.online/compsci/ap-computer-science/7-pic-lab.md): We will build our own photo editing tools as we study more complex nested loops to traverse and mutate 2D arrays.
- [4-B: 2048](https://gilmour.online/compsci/ap-computer-science/4-b-2048.md)
- [4-C: Sorting](https://gilmour.online/compsci/ap-computer-science/8-sorting.md): We will write our most complex algorithms as we study efficient ways to sort collections of data. Some of these algorithms will require recursion, our most abstract and challenging topic to date.
- [Review](https://gilmour.online/compsci/ap-computer-science/9-review.md): Acing your AP test is about testing for bugs in your understanding, studying the fix, then practicing the solution.
- [X: Inheritence](https://gilmour.online/compsci/ap-computer-science/6-elevens-lab.md): We introduce our first complex algorithms and start to pull back the scaffolding a bit. Students will get their first real experience designing aggregate objects with encapsulated properties.
- [Web App Dev](https://gilmour.online/compsci/web-development.md): Produce a full-stack web application in Python's Flask framework. While this is difficult and complex, it'll be a rewarding challenge.
- [1: Core Concepts](https://gilmour.online/compsci/web-development/1-core-conepts.md)
- [2: MVT Pattern](https://gilmour.online/compsci/web-development/2-mvt-pattern.md)
- [3: Hello Flask](https://gilmour.online/compsci/web-development/2-hello-flask.md)
- [4: Install Flaskinni](https://gilmour.online/compsci/web-development/4-install-flaskinni.md)
- [5: Tour Flaskinni](https://gilmour.online/compsci/web-development/3-flaskinni.md)
- [6: Visualize Your App](https://gilmour.online/compsci/web-development/4-html-mockups.md)
- [7: Theme & Blueprint](https://gilmour.online/compsci/web-development/flaskinni-drills.md)
- [8: Standup Your DB](https://gilmour.online/compsci/web-development/6-your-module.md)
- [9: Advanced Topics](https://gilmour.online/compsci/web-development/7-advanced-topics.md)
- [10: Deployment](https://gilmour.online/compsci/web-development/9-deployment.md): Publish your Flask app to a web server. This is a challenging process often with unique challenges for every app. We'll get there.
- [2D Game Design](https://gilmour.online/compsci/2d-game-design.md): Developing games using GameMaker Studio 2 and drag and drop programming
- [Class Overview](https://gilmour.online/compsci/2d-game-design/1-class-overview.md)
- [Gamemaker Studio 2 and Github Setup](https://gilmour.online/compsci/2d-game-design/gamemaker-studio-2-and-github-setup.md)
- [Game 1: Bouncing Ball](https://gilmour.online/compsci/2d-game-design/2-game-1-bouncing-ball.md): The bouncing ball game will provide the basics of using sprites, sounds, objects and rooms.
- [Turning in your games](https://gilmour.online/compsci/2d-game-design/turning-in-your-games.md)
- [Game 2: Maze](https://gilmour.online/compsci/2d-game-design/game-2-maze.md): The maze game increases user control with directional inputs as well as creating a game progression through multiple rooms.
- [Game 3: Ping Pong](https://gilmour.online/compsci/2d-game-design/game-3-ping-pong.md): With Ping Pong students learn to deal with multiple player inputs as well as create a simple scoring system.
- [Game 4: Breakout](https://gilmour.online/compsci/2d-game-design/game-4-breakout.md)
- [Game 5: Tank Battle](https://gilmour.online/compsci/2d-game-design/game-5-tank-battle.md)
- [Game 6 Highlights](https://gilmour.online/compsci/2d-game-design/game-6-highlights.md)
- [DO NOT DO:](https://gilmour.online/compsci/2d-game-design/game-6-mario.md)
- [Game 7: Final Project](https://gilmour.online/compsci/2d-game-design/game-7-final-project.md)
- [Publish to Opera](https://gilmour.online/compsci/2d-game-design/publish-to-opera.md)
- [FAQ](https://gilmour.online/compsci/2d-game-design/faq.md)
- [3D Game Design](https://gilmour.online/compsci/3d-game-design.md): Developing games using the Unity framework and the C# programming language
- [1: Class Overview](https://gilmour.online/compsci/3d-game-design/unit-1.md)
- [2: Installation](https://gilmour.online/compsci/3d-game-design/unit-2.md): We will be installing Unity Game Development Engine to develop your games.
- [3: Exploring the Unity UI](https://gilmour.online/compsci/3d-game-design/3-exploring-the-unity-ui.md): We will be looking at the user interface for Unity, how to navigate, where to find different aspects of our programs.
- [Game 1: Rolling Ball](https://gilmour.online/compsci/3d-game-design/3-game-1-rolling-ball.md)
- [Game 2: Tanks](https://gilmour.online/compsci/3d-game-design/game-2-tanks.md)
- [Game 3: Third Person Platformer](https://gilmour.online/compsci/3d-game-design/game-3-third-person-platformer.md)
- [Game 4: Final project](https://gilmour.online/compsci/3d-game-design/untitled.md)
- [FAQs](https://gilmour.online/compsci/3d-game-design/faqs.md): This page will be updated with videos to offer greater clarity or detail about Unity concepts.  This is also the repository for student requested videos which are outside the classroom content.
- [OLD: Distance Learning Setup](https://gilmour.online/compsci/3d-game-design/distance-learning-setup.md): This page describes how to get setup for distance learning, spring 2020.
- [OLD: GIT](https://gilmour.online/compsci/3d-game-design/unity-cloud-save.md): This video will show you how to prepare your video for version control and turning in projects.
- [3D Modeling & Fabrication](https://gilmour.online/compsci/3d-modeling-and-fabrication.md)
- [Installation](https://gilmour.online/compsci/3d-modeling-and-fabrication/installation.md)
- [Fusion 360 Interface and Sketch Modeling](https://gilmour.online/compsci/3d-modeling-and-fabrication/fusion-360-intro.md)
- [Primitive Modeling](https://gilmour.online/compsci/3d-modeling-and-fabrication/primitive-modeling.md)
- [Patterns](https://gilmour.online/compsci/3d-modeling-and-fabrication/patterns.md)
- [Appearances and Rendering](https://gilmour.online/compsci/3d-modeling-and-fabrication/appearances-and-rendering.md)
- [Building Community Gallery Spring 2026](https://gilmour.online/compsci/3d-modeling-and-fabrication/building-community-gallery-spring-2026.md)
- [Parametric Modeling](https://gilmour.online/compsci/3d-modeling-and-fabrication/parametrics.md)
- [3D Printing Concerns](https://gilmour.online/compsci/3d-modeling-and-fabrication/3d-printing-concerns.md)
- [Assemblies and Mechanical Design](https://gilmour.online/compsci/3d-modeling-and-fabrication/assemblies-and-mechanical-design.md)
- [Laser Cutting](https://gilmour.online/compsci/3d-modeling-and-fabrication/laser-cutting.md)
- [Sculpt Tools](https://gilmour.online/compsci/3d-modeling-and-fabrication/t-splines-and-sculpt-tools.md)
- [Milling Concerns](https://gilmour.online/compsci/3d-modeling-and-fabrication/milling-concerns.md)
- [Robotics 7](https://gilmour.online/compsci/robotics-7.md)
- [Software Installation](https://gilmour.online/compsci/robotics-7/software-installation.md)
- [Python basics (trinket.io)](https://gilmour.online/compsci/robotics-7/python-basics-trinket.io.md)
- [Python Turtle](https://gilmour.online/compsci/robotics-7/python-turtle.md)
- [Programming for the Ev3](https://gilmour.online/compsci/robotics-7/programming-for-the-ev3.md)
- [Setting up for clarity](https://gilmour.online/compsci/robotics-7/setting-up-for-clarity.md)
- [Robotics 8](https://gilmour.online/compsci/robotics-8.md): Introduction to App Development, Kivy, and Intermediate Python.
- [Replit](https://gilmour.online/compsci/robotics-8/replit.md)
- [Python review](https://gilmour.online/compsci/robotics-8/python-review.md)
- [Kivy Basics](https://gilmour.online/compsci/robotics-8/kivy-basics.md)
- [Calculator](https://gilmour.online/compsci/robotics-8/calculator.md)
- [Competitive Robotics](https://gilmour.online/compsci/competitive-robotics.md): The guide to getting involved in our school's FIRST Technology Challenge team.
- [Hardware Team](https://gilmour.online/compsci/competitive-robotics/hardware-team.md)
- [CAD Examples](https://gilmour.online/compsci/competitive-robotics/hardware-team/cad-examples.md)
- [Elevators](https://gilmour.online/compsci/competitive-robotics/hardware-team/elevators.md)
- [Software Team](https://gilmour.online/compsci/competitive-robotics/software-team.md)
- [Command Pattern](https://gilmour.online/compsci/competitive-robotics/software-team/command-pattern.md): Conceptual overview of the "what" and "why" of Command pattern
- [Example Command](https://gilmour.online/compsci/competitive-robotics/software-team/example-command.md): A function-by-function discussion of a Command's essential components
- [Subsystem](https://gilmour.online/compsci/competitive-robotics/software-team/subsystem.md): The composition of hardware components and their basic helper functions
- [Running Your Code](https://gilmour.online/compsci/competitive-robotics/software-team/running-your-code.md): Where our commands meet our subsystems
- [Pedro's Follower](https://gilmour.online/compsci/competitive-robotics/software-team/pedros-follower.md): What drives our autonomous motion and localization
- [Under the Hood](https://gilmour.online/compsci/competitive-robotics/software-team/under-the-hood.md): The files that drive SolversLib
- [Adiletta Archives](https://gilmour.online/compsci/archives/adiletta-archives.md)
- [Old Web](https://gilmour.online/compsci/archives/adiletta-archives/old-web.md)
- [Ex: WordPress CMS](https://gilmour.online/compsci/archives/adiletta-archives/old-web/6-wordpress-tips.md)
- [ItP](https://gilmour.online/compsci/archives/adiletta-archives/itp.md)
- [OLD: Parts of Python (old -- Mr. A)](https://gilmour.online/compsci/archives/adiletta-archives/itp/3-hello-python.md)
- [OLD: 5: Raspberry Pi](https://gilmour.online/compsci/archives/adiletta-archives/itp/4-raspberry-pi.md)
- [OLD: 6: Deploying Code](https://gilmour.online/compsci/archives/adiletta-archives/itp/5-deploying-code.md)
- [OLD 7: Nav Algorithm](https://gilmour.online/compsci/archives/adiletta-archives/itp/5-nav-algorithm.md)
- [Vanek Archives](https://gilmour.online/compsci/archives/vanek-archives.md)
- [OLD Robotics 8](https://gilmour.online/compsci/archives/vanek-archives/old-robotics-8.md)
- [OLD: End of Class Project](https://gilmour.online/compsci/archives/vanek-archives/old-robotics-8/end-of-class-project.md)
- [OLD Competitive Robotics](https://gilmour.online/compsci/archives/vanek-archives/archives_competitive_robotics.md)
- [Untitled](https://gilmour.online/compsci/archives/vanek-archives/archives_competitive_robotics/untitled.md)
- [Webots Videos](https://gilmour.online/compsci/archives/vanek-archives/archives_competitive_robotics/webots-videos.md): This page serves as a repository of the tutorial videos we are using for learning webots during virtual classes.
- [OLD Robotics 7](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7.md)
- [Trinket Introduction](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/trinket-introduction.md)
- [Lists: x/y position](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/lists.md)
- [Functions: Math program](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/functions-math-program.md)
- [Lists: Grocery List](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/lists-grocery-list.md)
- [Study Guide Program](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/study-guide.md)
- [Tic Tac Toe Game](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/tic-tac-toe-game.md)
- [Dice Roller Program](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/dice-roller.md)
- [Visualization](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/visualization.md)
- [Dice Roller + Visualization](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/dice-roller-+-visualization.md)
- [OpenSCAD: Installation](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-installation.md)
- [OpenSCAD: Command Sheet and Intro](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-command-sheet-and-intro.md)
- [OpenSCAD: Difference](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-difference.md)
- [OpenSCAD: Variables](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-variables.md)
- [OpenSCAD: Union](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-union.md)
- [OpenSCAD: For Loops](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-for-loops.md)
- [OpenSCAD: Final Project](https://gilmour.online/compsci/archives/vanek-archives/archives-robotics-7/openscad-final-project.md)
- [OLD Art I - Blender Sculpting](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i.md)
- [Class Overview](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/class-overview.md)
- [Installation](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/installation.md)
- [Lesson 1 - Tools](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-1-tools.md): In the following video, you will find an overview of some of the sculpt tools in blender.  Follow along with the video and play with the tools.
- [Lesson 2 - Detail](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-2-detail.md)
- [Lesson 3 - Base Mesh: Metaballs](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-3-base-mesh-metaballs.md)
- [Lesson 4: Converting metaballs and adding detail](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-4-converting-metaballs-and-adding-detail.md)
- [Lesson 5: Masking, Hiding, and Working with Multiple Objects](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-5-masking-hiding-and-working-with-multiple-objects.md)
- [Lesson 6: Joining Objects & Basing](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-6-basing.md)
- [Lesson 7: Sculpture Painting](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-7-sculpture-painting.md)
- [Student Gallery: Animal Sculpts](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/student-gallery.md)
- [Lesson 8: 3D Compositon](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-8-3d-compositon.md)
- [Lesson 9: The Project - Putting it all together](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-9-the-project-putting-it-all-together.md)
- [Lesson 10: Developing the image further](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-10-developing-the-image-further.md)
- [Lesson 11: Layout the base metaball mesh.](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-10-layout-the-base-metaball-mesh..md)
- [Lesson 12: Final Detail](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-12-final-detail.md)
- [Lesson 13: Basing and Painting](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/lesson-13-basing-and-painting.md)
- [Final Project Gallery](https://gilmour.online/compsci/archives/vanek-archives/archives-art-i/final-project-gallery.md)
- [OLD Fab](https://gilmour.online/compsci/archives/vanek-archives/old-fab.md)
- [OLD Building Community Project Gallery](https://gilmour.online/compsci/archives/vanek-archives/old-fab/building-community-project-gallery.md)
- [Copy of Building Community Project Gallery](https://gilmour.online/compsci/archives/vanek-archives/old-fab/copy-of-building-community-project-gallery.md)
- [old Building Community Project Gallery](https://gilmour.online/compsci/archives/vanek-archives/old-fab/old-building-community-project-gallery.md)
- [OLD: Turtle Design App](https://gilmour.online/compsci/archives/vanek-archives/4-turtle-app.md)
- [OLD Arduino Robotics 8](https://gilmour.online/compsci/archives/vanek-archives/robotics-8.md): Introduction to Arduino, circuits, and C family programming languages
- [Arduino Basic Commands Cheat Sheet](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/arduino-basic-commands-cheat-sheet.md)
- [Logging into Tinkercad](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/logging-into-tinkercad.md)
- [Arduino, Circuits, LEDs and Resistors](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/first-circuit.md)
- [Functions and Variables](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/functions-and-variables.md)
- [Serial Monitor](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/serial-monitor.md)
- [Buttons and Interrupts](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/arduino-ii.md)
- [Traffic Light Project](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/traffic-light-project.md)
- [Potentiometers + Servos](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/potentiometers-+-servos.md)
- [Piezo Buzzer and Tone();](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/piezo-buzzer-and-tone.md)
- [Sequencer Project](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/sequencer-project.md)
- [Arrays and for loops](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/arrays-and-for-loops.md)
- [Extra Loop Practice](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/extra-loop-practice.md)
- [Refining the Sequencer](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/refining-the-sequencer.md)
- [Servos](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/servos.md)
- [Ultrasonic Sensors](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/ultrasonic-sensors.md)
- [Final Project](https://gilmour.online/compsci/archives/vanek-archives/robotics-8/final-project.md)
- [Building Community Gallery Page 2023](https://gilmour.online/compsci/archives/vanek-archives/building-community-gallery-page-2023.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://gilmour.online/compsci/master.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
