If you have not setup your Python environment yet,
STOP!
Complete the environment setup using Anaconda or miniconda using the requirements.txt file, or the ai_env.yml file. You can find these files in the repository at the top of the page, above the README section. If you need a refresher on python environment setup, please refer to the instructions here. Please DO NOT install any other IDE, since you will be provided with the Nosi IDE to finish the homework.
A video demonstration of the instructions below can be found here from 1:09 – 06:43.
The TLDR version:
- Install Anaconda or miniconda.
- Open a terminal window and run
conda create --name ai_env python=3.9to create an python virtual environment calledai_env, with a python version = 3.9. - Activate your newly created environment by running
conda activate ai_envin the terminal. - Download the
requirements.txtfile, or find it after you clone or download this repository. - In the same terminal where you acticated your
ai_envenvironment, runpip install -r /path/to/requirements.txt(replace/path/to/to the path the file is in, for example ~/Downloads/)Alternatively, you can also use the provided
.ymlfile to configure everything (create environment, install python=3.9, install dependencies). - Install Anaconda or miniconda.
- Download the
ai_env.ymlfile, or find it after you clone or download this repository. - run
conda env create -f path/to/ai_env.yml(replace/path/to/to the path the file is in, for example ~/Downloads/)
Table of Contents
Setup a local repository
Georgia Tech has paid for Enterprise Github and you have the ability to build and store your code in private repositories. This instruction you are reading is in a private repo hosted on GT’s Enterprise Github. We generated this repository for you. All your other repositories can be found at https://github.gatech.edu/[YOURSTUDENTGT_ID], where [YOUR_STUDENT_GT_ID] should be replaced with your Georgia Tech username (i.e. gburdell3). Please make sure that any repository you create is private to avoid any honor code violations. You are not allowed to share your code, including the homework templates, with others. Do not view or obtain any code, including homework templates, from any unofficial sources.
First things first, let’s pull this repository to your local machine (replace [YOURSTUDENTGT_ID] with your GTID, i.e. gburdell3):
git clone https://github.gatech.edu/CS6601-Spring26/assignment0-[YOUR_STUDENT_GT_ID].git
You can also get the link above by clicking the green < > code button on the upper right corner of this github page.
NOTE: You will be provided a private repository for each of the rest of the assignments, more details will be provided on Edstem on where to find them. Please make sure to clone from the provided personal private repository for the assignments.
Tutorials to create a private forked repository for assignments (optional & skipable)
If you find that you need to work off of a copy of a repository (like this one), you can follow the instructions below to create a personal copy of the repository. Remember that the repository you create needs to be private so that you do not accidentally violate OSI policies. The instructions below are modified to reflect URLs for this Assignment 0 repository.
- Login to github.gatech.edu and create a private repo with a name of your choosing. We will call ours
cs6601_a0, and for demonstration purposes, our GT ID will begburdell3. Double check that the repo is private, otherwise you may violate the OSI policy. - Clone the class repository for Assignment 0 by using the command in a local file directory of your choice.
git clone https://github.gatech.edu/CS6601-Spring26/assignment0-gburdell3.git
- Change your directory into the newly cloned repository and then mirror this to the private repo you created on Github.
cd assignment_0.git
git push --mirror https://github.gatech.edu/gburdell3/cs6601_a0
cd ..
- You can now delete the
assignment0-gburdell3directory from your local files if you wish (you will no longer need it). - Now that your private repository on Github matches the Assignment 0 repository, you can clone the private repo onto your local system.
git clone https://github.gatech.edu/gburdell3/cs6601_a0
- Next you can change your local directory to point to this newly cloned repo and add a remote branch upstream pointing to the original Assignment 0 repository it was cloned from.
cd cs6601_a0
git remote add upstream https://github.gatech.edu/CS6601-Spring26/assignment0-gburdell3.git
You check if the remote branch has been added using git remote -v
- Now you can use your repository like so:
git pull upstream master # the original repo
git push origin master # your repo
If you do not specify the remote, it will default to the origin (your repo)
- If you are scared of pushing to upstream you can disable pushing to upstream using
git remote set-url --push upstream PUSH_DISABLED
Packages

We will be using multiple python packages throughout this class. Here are some of them:
- jupyter – interactive notebook (you will learn more about them soon)
- numpy – a package for scientific computing (multi-dimensional array manipulation)
- matplotlib – a plotting library
- networkx – a package for manipulating networks/graphs
- pandas – a package for data analysis
- pgmpy – library for probabilistic graphical models
Making sure that you are in an active Conda environment (i.e. (ai_env) as seen in the setup), you can install all the packages for this and future assignments by using the command pip install -r requirements.txt, if the assignment comes with a requirements.txt file.
If you haven’t already, in a terminal, please navigate (cd) to your cloned Assignment 0 directory, activate your environment (conda activate ai_env), and run pip install -r requirements.txt.
Once installed, you can run pip freeze to see the list of all of the packages installed in your ai_env environment.
Nosi install
This semester, you will use the Nosi IDE as your tool to finish the coding assigments. It is a VSCode fork we built in-house to help enforce the course’s antiplagiarism policies. Unless explicitly stated, we don’t allow using large language model (LLM) based tools to generate code in finishing your coding assignments. For the purpose of this course, you will treat LLMs as people. You are not allowed to share your code to another person, and you are not allow to view or obtain code from another person. The coding assignments we distribute to you are encrpyted. Nosi IDE is your only way to view, edit, and run your assignment files. The .nosi files are originally .py files, and the .nosib files are originally .ipynb files. Copying texts from the encrypted files (.nosi, and .nosib) to outside will only results in encrpyted texts. Your editing interactions with the assignment files are logged and analyzed to detect potential violations.
Note that at this stage, Nosi is still highly experimental. We hope to deliver a coding experience similar to a relatively modern IDE, just without the LLM part. As of now, it is still not without limitations and quirks. Please refer to this living doc for pitfalls and FAQs in setting up and using Nosi. Later in the semester, you may also receive instructions from us to reinstall Nosi to the latest version as we gradually fix bugs and add features to it. After you finish the assignment, if you want, we would really appreciate it if you can fill in this survey about using Nosi to help us improve.
To install Nosi, please access this Google drive link and follow the file structure to download the Nosi editor installer base on the OS, and CPU architecture of your computer.
Windows
Most people’s computer should be x64(also called amd64) architecture (Intel and AMD). If so, use the installers in win32-x64. If you have a windows on ARM64 CPU (e.g. Anything with a Qualcomm Snapdragon), use the installer in win32-arm64. You can use the system-setup installer for all users, or user-setup for only your user account.
MacOS
Please download the .dmg image based on your chip architecture. If you are using a MacOS device with an Apple silicon M-series CPU (M1-M5), use the .dmg installer image in AppleSilicon. If you are using a MacOS device with an Intel CPU, use the .dmg installer in the Intel folder. Download the dmg file, double click to open, and drag the Nosi - ACS.app to the Applications folder
Linux
We built nosi for a variaty of formats to cover most popular distributions. Please download the format you want based on your distributions.
Install .deb on Ubuntu (Debian)
sudo dpkg -i /path/to/nosi-acs-xxxxx.deb
Install .rpm on Fedora/CentOS/REHL:
sudo dnf install /path/to/nosi-acs-xxxxx.rpm
Install .snap file on linux:
- Make sure snapd is installed:
sudo apt install snapd - Install the .snap file:
sudo snap install /path/to/nosi-acs-xxxxx.snap --dangerous --classic
Using the portable AppImage format
Running AppImage on Fedora/CentOS/Red Hat Enterprise Linux (RHEL):
- Install fuse-libs which is required to run AppImage:
sudo dnf install fuse-libs - Change AppImage permission:
chmod +x /path/to/nosi-acs-xxxxx.AppImage
Run AppImage: /path/to/nosi-acs-xxxxx.AppImage, Or Just right click, and click Run.
Running AppImage on Ubuntu (Debian)
Change AppImage permission: chmod +x /path/to/nosi-acs-xxxxx.AppImage
Double click nosi-acs-xxxxx.AppImage or run in terminal: /path/to/nosi-acs-xxxxx.AppImage
Launching nosi on Linux:
Find nosi-acs IDE in desktop app launcher
Type nosi-acs in a terminal console and then press enter
Jupyter (.nosib) notebook
After installing Nosi. Please start the Nosi application, click File in the top menu bar, and click Open Folder... to open the repository folder you cloned. Then click on the notebook.nosib file to view the assignment instructions. The file may not render correctly if you directly open the file using Nosi in your operating system’s file explorer. You need to select your python interpreter envrionment you setup for this assignment first (python 3.9 and dependencies in requirements.txt) before moving on to finish the assignment. Press the key combination ctrl + shift + P (or cmd + shift + P for MacOS) to bring up the command palette. Then, type or select Python: Select Interpreter (NOTE: NOT Jupyter: Select Interpreter), click on it (or use arrow keys and enter key), and follow the graphical interface to set the envrionment to be the one you set up for this assignment. Note: the python interpreter or Jupyter kernel select button on the upper right corner does not work. Valid python syntax in a jupyter cell is suported, but Jupyter magic commands (e.g. lines that starts with % and %%) are not yet supported.


Assignment 0
Your first assignment in this course is to setup your Python environment following the above instructions and then to follow the tutorial in the provided Jupyter Notebook using the Nosi IDE. These files cannot be viewed correctly using regular IDEs since they are encrypted. Note that you can only run your code using the Nosi IDE as well, NOT the terminal, since the file is encrypted. Upon completion of the tutorial, please submit the two nosi (python) files (first_submission.nosi and priority_queue.nosi) to Gradescope. This submission is worth 2 points of your final grade. More details and instructions can be found in the provided Jupyter notebook. Good luck!
Note: It is EXTREMELY IMPORTANT that you submit this assignment before the deadline as completion of the assignment is necessary for us to release the remaining course assignments to you. Please submit the first task at a minimum (it takes minimal effort) as soon as you have everything set up.






