{"id":31021422,"url":"https://github.com/sisl/aa120q","last_synced_at":"2025-09-13T11:21:32.624Z","repository":{"id":83919901,"uuid":"61324134","full_name":"sisl/AA120Q","owner":"sisl","description":"AA120Q Course Materials","archived":false,"fork":false,"pushed_at":"2025-01-28T19:10:40.000Z","size":30959,"stargazers_count":28,"open_issues_count":0,"forks_count":9,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-01-28T20:22:39.104Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sisl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-16T20:34:43.000Z","updated_at":"2025-01-28T19:10:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3e5d7b7-76d8-42b2-9746-bf039533ff32","html_url":"https://github.com/sisl/AA120Q","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sisl/AA120Q","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisl%2FAA120Q","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisl%2FAA120Q/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisl%2FAA120Q/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisl%2FAA120Q/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sisl","download_url":"https://codeload.github.com/sisl/AA120Q/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisl%2FAA120Q/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274955834,"owners_count":25380669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-13T11:21:25.545Z","updated_at":"2025-09-13T11:21:32.602Z","avatar_url":"https://github.com/sisl.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AA120Q\n## Building Trust in Autonomy\n[![website](https://img.shields.io/badge/website-Stanford-b31b1b.svg)](https://aa120q.stanford.edu/)\n[![Lectures](https://img.shields.io/badge/coding_lectures-Pluto-175E54.svg)](https://github.com/sisl/AA120Q/tree/main/lectures)\n[![Assignments](https://img.shields.io/badge/coding_assignments-Pluto-175E54.svg)](https://github.com/sisl/AA120Q/tree/main/assignments)\n\nCoding Lectures and Assignments for Stanford's AA120Q: *Building Trust in Autonomy*\n\n### Coding Lecture Notebooks\nThe coding lectures introduce computational tools and concepts through interactive Pluto notebooks. Topics include:\n- Julia programming fundamentals \n- Scientific computing tools and visualization\n- Machine learning and probabilistic modeling\n- Simulation and analysis techniques\n- System evaluation and testing\n\nSee the [lectures directory](lectures/) for more information about each lecture notebook.\n\n### Coding Assignment Notebooks\nThe coding assignments provide hands-on experience implementing key concepts through guided Pluto notebooks. Projects include:\n- Estimating π using Monte Carlo methods\n- Learning aircraft encounter models\n- Simulating collision avoidance scenarios  \n- Implementing and analyzing safety systems\n\nSee the [assignments directory](assignments/) for more information about each assignment.\n\n\n## Installation\n### Install Git\n- https://git-scm.com/downloads\n\n### Install Julia\nInstall Julia version 1.11+ from https://julialang.org/downloads. Once installed julia will be available via the command line interface. The commands will also install the Juliaup installation manager, which will automatically install julia and help keep it up to date. The command `juliaup` is also installed. To install different julia versions see `juliaup --help`.\n   - The commands from the Julia website are echoed below:\n     - \u003cdetails\u003e\u003csummary\u003e\u003cb\u003eWindows\u003c/b\u003e\u003c/summary\u003e\u003cp\u003e\n        Open the command prompt and run the following:\n\n           winget install julia -s msstore\n        \u003c/p\u003e\u003c/details\u003e\n     - \u003cdetails\u003e\u003csummary\u003e\u003cb\u003eMacOS \u0026 Linux\u003c/b\u003e\u003c/summary\u003e\u003cp\u003e\n        Open a terminal and run the following:\n\n           curl -fsSL https://install.julialang.org | sh\n        \u003c/p\u003e\u003c/details\u003e\n\n### Clone the Repository\nOpen a terminal, navigate to a directory where you want to store the course materials, and run:\n    ```\n    git clone https://github.com/sisl/AA120Q\n    ```\n\n### Install the Packages\nFrom the AA120Q directory, run:\n```bash\njulia install.jl\n```\nThe `install.jl` script will add Pluto and PlutoUI to your default Julia environment. It will also activate the AA120Q package, download the project dependencies, and compile the project. If you do not experience any errors during this process, you are ready to run the notebooks!\n\n## Package Management\nThere are a couple of ways to open Julia. The following options assume you are in the AA120Q directory.\n\n### Activate the AA120Q Package After Opening Julia\nTypeing `julia` will open julia, and then you can use `]` to open the package manager. You should see `(@v1.11) pkg\u003e ` in the prompt and then run `activate .` to activate the AA120Q package. You should see `(@v1.11) Pkg\u003e ` change to `(@AA120Q) Pkg\u003e ` to confirm that the AA120Q package is active. Then you can press backspace to return to the normal prompt.\n```julia\n(@v1.11) pkg\u003e activate .\n(AA120Q) pkg\u003e\njulia\u003e\n```\n      \n### Activate the AA120Q Package When Opening Julia\nAnother option is to open julia with the AA120Q package activated. From the AA120Q directory, run the following in the terminal:\n```bash\njulia --project=.\n```\n\n### Using the Julia Package Manger\nThe Julia package manager is a useful tool for managing packages used for a projct and to help with reproducibility. To inspect the packages used in the AA120Q project, you can type `]` to open the package manager and then type `status`. You should see something similar to the following:\n```julia\n(AA120Q) pkg\u003e status\nProject AA120Q v0.2.0\nStatus `~/Documents/AA120Q/AA120Q/Project.toml`\n  [ba4760a4] BayesNets v3.4.1\n  [336ed68f] CSV v0.10.15\n  [159f3aea] Cairo v1.1.1\n⌅ [5ae59095] Colors v0.12.11\n  [a81c6b42] Compose v0.9.5\n  [a93c6f00] DataFrames v1.7.0\n  [6e83dbb3] Discretizers v3.2.4\n  [31c24e10] Distributions v0.25.115\n  [033835bb] JLD2 v0.5.10\n  [f0f68f2c] PlotlyJS v0.18.15\n⌃ [91a5bcdd] Plots v1.40.7\n  [c3e4b0f8] Pluto v0.20.4\n  [7f904dfe] PlutoUI v0.7.60\n  [ce6b1742] RDatasets v0.7.7\n  [10745b16] Statistics v1.11.1\n⌅ [2913bbd2] StatsBase v0.33.21\n  [37f6aa50] TikzPictures v3.5.0\n  [37e2e46d] LinearAlgebra v1.11.0\n  [44cfe95a] Pkg v1.11.0\n  [de0858da] Printf v1.11.0\n(AA120Q) pkg\u003e\n```\n\n## Running Pluto\n\nTo run Pluto to interact with the notebooks:\n1. Open Julia and activate the AA120Q package (above options)\n2. Run `using Pluto` followed by `Pluto.run()`:\n```julia\nusing Pluto\nPluto.run()\n```\nYou should see a url similar to `http://localhost:####/?secret=####` that you can open in a browser (this will open Pluto!).\n\n\n## Troubleshooting\nPost issues you expereince on Ed or here on GitHub.\n\n## Update AA120Q (if necessary)\nIf we update the course materials, you can update your local copy of the repository by running `git pull` from the AA120Q directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsisl%2Faa120q","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsisl%2Faa120q","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsisl%2Faa120q/lists"}