CS357: Foundations of Artificial Intelligence - Warmup (25 Points)
Purpose, Task, and Criteria
Purpose: To get your local AI stack working before the labs depend on it, capture a baseline snapshot of your thinking about AI that you will revisit at the end of the semester, and launch your team.
Task: Install and verify a working local AI environment, write a short baseline reflection on AI agency and trust, and co-author a team charter with your semester group.
Criteria: Assessed on a complete and honest setup-verification transcript and a specific, personal reflection in equal measure, plus an actionable team charter; see the rubric below for the full breakdown.
Assignment Goals
The goals of this assignment are:- To install and verify a working local AI environment including Ollama, a pulled model, and a Python API call
- To articulate personal baseline beliefs about AI agency, trust, and delegation with specific examples
- To co-author a team charter with concrete role rotation, communication, and conflict-resolution procedures
Background Reading and References
Please refer to the following readings and examples offering templates to help get you started:- Welcome Activity
- Mitchell, Prologue and Chapter 1
The Assignment
In this warmup you will install your local AI stack, write a short baseline reflection on your experiences with AI, and co-author a team charter with your semester group. This assignment is deliberately low-stakes: it exists to make sure your tools work before the labs depend on them, to capture a snapshot of your thinking that you will revisit at the end of the semester, and to launch your team before the first real project sprint. There are no wrong answers in the reflection — this is a starting point, not an evaluation of knowledge.
What a Strong Submission Looks Like
A strong submission has three qualities:
- The transcript is complete and honest. It shows the actual terminal output — version numbers, model names, the API response — copied faithfully. If something broke, the error is quoted verbatim and the student explains what they tried. Fabricated or paraphrased transcripts earn no credit.
- The reflection is personal and specific. It names a real AI tool the student used, describes a real moment of surprise or confusion, and takes a genuine position on agency and trust — not a dictionary definition, not a summary of the course syllabus. A strong reflection reads like a journal entry from someone thinking carefully, not like an answer written to please a grader.
- The charter is actionable. It names specific meeting times, specific communication channels, and a concrete procedure for the team to follow when a member misses a deadline. Vague statements like “we will communicate openly” do not count.
A weak submission has a transcript that says “it worked” without showing output, a reflection that restates prompts without answering them, and a charter that could belong to any group of three strangers.
Part 1: Tool Setup
Install Ollama on your own machine (or a lab machine if yours cannot run it; ask the instructor if you are unsure which to use). Then complete each step below and capture the output:
- Pull a small model:
ollama pull llama3.2 - Run a CLI sanity check:
ollama run llama3.2 "Say hello in five words." - Verify the REST API responds:
curl http://localhost:11434/api/tags - From Python, send one chat request using the
requestslibrary, as we did in class, and print the response. Your script should look roughly like this:
import requests, json
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": "llama3.2",
"messages": [{"role": "user", "content": "What is 2 + 2?"}],
"stream": False
}
)
print(json.dumps(response.json(), indent=2))
Copy-paste or screenshot the output of all four steps, including the output of ollama --version and your operating system name and version.
If any step fails: document the error message verbatim, state your hypothesis about the cause, and describe what you tried. A well-documented failure with a follow-up plan earns full credit for that step. Do not delete error output or write “it eventually worked” without showing what changed.
Setup Checklist
Before moving on, confirm you can answer yes to each of these:
ollama --versionreturns a version stringollama listshows at least one downloaded model- The
curlcommand to/api/tagsreturns JSON (not a connection error) - Your Python script prints a response that includes a
"content"field
Part 2: Baseline Reflection
Write approximately one page addressing all four prompts below. This is captured now so you can compare it to your thinking at the end of the semester. There are no wrong answers.
Reflection Template (use these as section headings; write a paragraph under each):
My AI Experience So Far
Describe which AI tools you use, for what purposes, and how often. Then describe one specific moment when an AI output surprised you — either because it was better than you expected, or because it failed in an unexpected way. Name the tool, describe the task, and describe the surprise.
What “Agent” Means to Me Right Now
Write your own definition of what makes a system an “agent” rather than just a program or a tool. You do not need to match any textbook definition — write what you actually think. After the semester, we will return to this and see how your thinking changed.
What I Would and Would Not Delegate
Name one task you would happily hand to an AI agent and one you would not. For each, write one or two sentences explaining the specific reason — what is it about that task that makes delegation feel appropriate or inappropriate? The difference between your two examples is more interesting than either example alone.
What I Want to Build
Describe one thing you hope to be able to build or do by December that you cannot do today. Be as concrete as you can: what would it do, who would use it, and what would “working” look like?
Part 3: Team Charter
Note: the charter you write here is the pre-draft. Your team will expand it into the full, signed semester charter in the dedicated Team Charter and Norms activity — bring this draft with you.
With your assigned team, co-author a one-page charter. All members must contribute. Typed names at the bottom serve as signatures.
Charter Template:
| Charter Section | Your Team’s Answer |
|---|---|
| Role rotation schedule | Which POGIL role does each member hold in Sprint 1? How and when do roles rotate? |
| Primary communication channel | Where (Slack, Discord, text, email) and when (response time expectation)? |
| Meeting cadence | When does the team meet outside class? What is the minimum preparation expected before each meeting? |
| Disagreement procedure | When the team disagrees on a technical decision, what is the process for resolving it? Who has the deciding vote, or how do you reach consensus? |
| Missed deadline procedure | If a member cannot meet a deadline, what do they do, and by when? |
| Definition of “done” | What does it mean for a sprint task to be complete? Who checks? |
Deliverables
Submit a single PDF or markdown file containing:
- Your tool setup transcript (all four steps plus version and OS info)
- Your baseline reflection (one page, four sections)
- Your team charter (one per team is fine; include it with each member’s individual submission)
Frequently Asked Questions
Q: I don’t have a machine that can run Ollama. What should I do? A: Use a lab machine or contact the instructor before the due date. Do not wait until the night before — lab access may require scheduling. Document which machine you used in your transcript.
Q: My Python API call returns an error or the model responds very slowly. Is that okay? A: Slow is okay for a small model on older hardware. An error is okay as long as you document it fully: copy the full error message, describe what you tried, and state whether it was eventually resolved. A partial success with complete documentation earns full credit for that step.
Q: The reflection prompts ask about “agency” and “trust” — do I need to use the textbook definitions? A: No. This is a baseline, not a knowledge test. Write what you actually think before the course shapes your view. The textbook will be there later; this snapshot of your prior thinking is valuable precisely because it is unfiltered.
Q: Can my team charter be just a paragraph instead of a table? A: Yes, format is flexible. What matters is that every required topic is addressed concretely. A paragraph that says “we will use Discord and meet Sundays at 2pm and rotate roles every two weeks” covers more ground than a table full of vague entries.
Q: Do all team members submit the same charter, or do we each write our own? A: Submit the same jointly authored charter with each member’s individual submission. The charter is a team document; the transcript and reflection are individual.
Please also answer the following questions in your submission:
- If collaboration with a buddy was permitted, did you work with a buddy on this assignment? If so, who? If not, do you certify that this submission represents your own original work? Please identify any and all portions of your submission that were not originally written by you.
- Approximately how many hours it took you to finish this assignment (I will not judge you for this at all…I am simply using it to gauge if the assignments are too easy or hard)?
Submission
In your submission, please include answers to any questions asked on the assignment page, as well as the questions listed below, in your README file. If you wrote code as part of this assignment, please describe your design, approach, and implementation in a separate document prepared using a word processor or typesetting program such as LaTeX. This document should include specific instructions on how to build and run your code, and a description of each code module or function that you created suitable for re-use by a colleague. In your README, please include answers to the following questions:- Describe what you did, how you did it, what challenges you encountered, and how you solved them.
- Please answer any questions found throughout the narrative of this assignment.
- If collaboration with a buddy was permitted, did you work with a buddy on this assignment? If so, who? If not, do you certify that this submission represents your own original work?
- Please identify any and all portions of your submission that were not originally written by you (for example, code originally written by your buddy, or anything taken or adapted from a non-classroom resource). It is always OK to use your textbook and instructor notes; however, you are certifying that any portions not designated as coming from an outside person or source are your own original work.
- Approximately how many hours it took you to finish this assignment (I will not judge you for this at all...I am simply using it to gauge if the assignments are too easy or hard)?
- Your overall impression of the assignment. Did you love it, hate it, or were you neutral? One word answers are fine, but if you have any suggestions for the future let me know.
- Using the grading specifications on this page, discuss briefly the grade you would give yourself and why. Discuss each item in the grading specification.
- Any other concerns that you have. For instance, if you have a bug that you were unable to solve but you made progress, write that here. The more you articulate the problem the more partial credit you will receive (it is fine to leave this blank).
Assignment Rubric
| Description | Pre-Emerging (< 50%) | Beginning (50%) | Progressing (85%) | Proficient (100%) |
|---|---|---|---|---|
| Environment Setup and Verification (40%) | Little or no evidence that the environment was attempted | Some components installed, but the verification transcript is missing or incomplete | Ollama installed and verified with a transcript, with a minor omission such as a missing model listing or version information | The transcript shows all four steps completed with verbatim terminal output — the output of ollama --version, ollama list showing at least one model, the curl /api/tags JSON response, and the Python script output including a non-empty "content" field — plus the operating system name and version; any failed step includes the verbatim error message, a stated hypothesis, and what was tried |
| Reflection Essay (40%) | The reflection is missing or does not address the prompts | The reflection addresses some prompts superficially without naming specific tools or moments | The reflection addresses all four sections with specific examples, but the connection between the two delegation examples is not analyzed or the "What I Want to Build" section is vague | All four sections are present and addressed with concrete specifics — a named AI tool and a described moment of surprise in "My AI Experience," a personal definition of agency distinct from any course reading in "What Agent Means to Me," a pair of delegation examples where the contrast between the two is explicitly analyzed, and a "What I Want to Build" description naming what the system would do, who would use it, and what working would look like |
| Team Charter and Submission (20%) | An incomplete submission is provided | The submission is provided but the team charter is missing or does not address role rotation | The submission is complete with a charter that addresses roles and communication, with a minor omission such as a missing disagreement procedure or undefined response time expectation | The charter addresses all six rows of the Charter Template — role rotation schedule with named roles and rotation timing, a primary communication channel with a specific response-time expectation, a meeting cadence with a named day and time, a disagreement procedure naming who has the deciding vote or how consensus is reached, a missed-deadline procedure with a stated timeline, and a definition of done naming who checks it — and all team members' typed names appear at the bottom |
Please refer to the Style Guide for code quality examples and guidelines.