Lab 1: Initial System Setup
Overview
In this lab, we will be setting up some tools that you will be using throughout this class. To complete this lab, you should do all of the steps below as instructed. If you are unable to complete all the steps today, you must complete them outside of the lab time.
To receive credit for this lab, you MUST show your work to the TA during the lab, and push it to the github before the deadline. Please note that submissions will be due on Wednesday at 11:59 p.m. in the following week.
There is a "NO LATE SUBMISSIONS" policy for labs.
Learning Objectives
LO1. Learn how to correctly use Generative AI.
LO2. Get comfortable with installing software on your computer.
L03. Set up git and GitHub
L04. Learn to set up Docker containers
LO5. Understand the configuration settings in a Docker-compose.yaml file
LO6. Learn to run the Docker containers
Part A
All instructions in this lab must be run on your local machine. Please DO NOT use coding.csel.io or any other cloud environment.
Using Gen AI tools appropriately
In this section we will aim to practice using a generative AI tool. We will also learn how to correctly cite the usage of the tool.
-
Select a Programming Problem: Identify a concise programming problem of your choice. The problem should ideally result in a solution that does not exceed 50–75 lines of code. Here are some examples that you could consider working with:
- Reversing a string
- Remove duplicates in an array
- Count the number of occurances of a word in file
- Find the second largest number in an list
-
Choose a Generative AI Tool: Select one of the following generative AI tool from the following options to assist in solving the problem:
- ChatGPT
- GitHub Copilot
- Perplexity
- Replit
- Cursor
Some of these provide free access to the premium versions with the university account. You can choose to take advantage of that.
-
Provide an Appropriate Prompt: Craft a well-structured and detailed prompt for the chosen generative AI tool to generate the solution to the selected problem. Here are some useful pointers:
- Give a specific and clear description of the problem
- Provide context, i.e., information about the purpose of writing the prompt
- Specify the format of the output - in this case, it could mean specifying which programming language you want the program written in
- Define constraints if any - for example, are there any edge cases to the problem you're trying to solve? how do you want those handled?
-
Document the Prompt and Response: Copy the following information into a file named
genai_usage.txt:- name of the AI tool
- prompt provided to it
- the response Generated
Ensure that any text added to the file includes appropriate headings for clarity.
-
Evaluate the Generated Solution:
Within the
genai_usage.txtfile, write your answers to the following questions:- What was the problem you were attempting to derive the solution for?
- Was the response accurate and aligned with the expected solution to the problem?
- If not, identify what aspects of the solution were incomplete or incorrect.
- What are the changes you would propose to correct the solution generated by the AI tool?
-
Include the Corrected Solution:
Lastly, append the correct solution to the programming problem in the
genai_usage.txtfile, ensuring it is clearly labeled and well-documented.
Please follow the steps 4-6 to cite/correctly reference any and all usage of Generative AI in the assignments for this course.
For this section, you will include the genai_usage.txt file in the submission folder of the repository you will create in the next step.
Setup Github
For students working on a Windows machine, if you do not already have WSL installed on your computer, please follow these instructions to install WSL2. You can then follow Linux based instructions, except for Docker installation, in your WSL terminal for all lab activities.
To work with your repository in Github you either need a SSH key or a personal access token.
Before we get started, please make sure you are working on the terminal on your local machine and are NOT within the online coding.csel.io environment.
- Setup SSH key
- Setup Personal Access Token (PAT)
Connecting to GitHub with SSH
You can connect to GitHub using the Secure Shell Protocol (SSH), which provides a secure channel over an unsecured network. Refer this link to connect to Github with SSH.
Since this mechanism is meant to be a means to establish secure communication between a remote server and a local machine, you will need to create a new SSH for every device/system you intend to link securely to your GitHub account.
Hence, even if you already have an SSH key set up to connect with your coding.csel.io environment, you will need to create a new SSH key for the laptop you are working with.
Install Git
This section is os-dependent, so only complete one of the panels!
- Linux
- MacOS
Run the following command to install Git
sudo apt install git
Check if Git is installed properly
git --version
Set your git name to match your real name
git config --global user.name "John Doe"
Don't forget to replace "John Doe" with your name.
Verify your git name was updated
git config --global user.name
Set your git email to match your github account
Note that this email should be the email that is associated with your GitHub account. You can check by visiting your Github Settings.
git config --global user.email "myUserName@gmail.com"
Verify your git email was updated
git config --global user.email
Clone your GitHub repository
Github Classroom Assignment
- Using an SSH key
- Using a Personal Access Token (PAT)
git clone git@github.com:CUBoulder-CSCI-3308-Fall2026/cu-csci3308-fall2026-lab-1-initial-set-up-___YOUR_USER_NAME___.git
git clone https://github.com/CUBoulder-CSCI-3308-Fall2026/cu-csci3308-fall2026-lab-1-initial-set-up-___YOUR_USER_NAME___.git
Navigate to the repository on your system.
cd cu-csci3308-fall2026-lab-1-initial-set-up-___YOUR_USER_NAME___
Create a new file (to test your connection)
- Open a text editor of your choice.
- Add some sample text to it.
- Save the file as
test.txt
Add & Commit your changes to the repo
git add .
git commit -m "Commit message goes here"
git push
For this section, you are not required to record any output.
Install Docker
This section is os-dependent, so only complete one of the panels!
- Linux
- MacOS
- Windows
Download Docker Desktop
Go to Docker-Desktop and click on “Download for Mac”.
Install Docker Desktop
Click on the downloaded dmg file from the previous step. Move the installed docker application to the applications folder if you wish to.
Opening the application
Open the Docker application using the spotlight search. Click on “Open” when prompted with the box below.
Hit “OK” to provide privileged access to Docker Desktop.
Verify that Docker Desktop is starting on your system.
Observe the little icon for docker on the menu bar of your system showing that the “Docker Desktop is starting”.
Verify that Docker Desktop is finally running on your system.
Observe the little icon for docker on the menu bar of your system showing that the “Docker Desktop is running”.
Docker Dashboard - Explore running containers and applications
From the Docker icon on the menu bar, select Dashboard. This lists all your running containers and applications. You must have running or stopped containers and applications to see them listed on the Docker Dashboard.
This is how the Docker Desktop looks initially.
