Q&A
Q: Will AI take over software programming jobs?
A: Time will tell, but my personal opinion is that yes, there will be fewer software engineering and programming jobs in the semi-near future. However, economic history suggests that this will not tank our economy, as other not-yet-existing jobs will come into existence. We’ll see if GenAI follows that pattern or breaks the mold. (My prediction: the economy will be ok)
Q: Do we have to say in assignments if/when we use GenAI? Or is it just like honorary.
A: When in doubt, include a code comment and cite that it was used. My rule of thumb is that if you use GenAI to learn something, you don’t need to cite. If you use GenAI to write (more than 2) lines of code for you, cite.
Q: Why do you feel GenAI can just be freely used? (it’s a very different take/opinion as opposed to other classes/professors) (is it because this class is specifically revolved around coding?)
A: I could talk about this for a LONG time. My general teaching philosophy is that students should maximize their learning AND should be able to do this in a fair environment relative to their peers. If I ban GenAI, some students will still use it - some to learn and some to well, get answers. I don’t think it would be fair for students to be at a disadvantage for following the rules in my course, and if I were to ban it, I think it would do just that. THAT SAID, I also think it is an incredible tool for learning when used correctly and particularly for coding. So, I intend to teach how to use it for learning. Students then get to decide how they want to use it. And, even if they use it to “just get answers”, they will struggle on the exams. I’d be more than happy to discuss this further; it’s one of my favorite topics hah!
Q: What is the outline of the final project? I’m not the most creative, so having as much time as possible to think about and/or prepare to try to do it would be amazing.
A: Briefly here (more details in class later), students get to choose a topic and write code to make that happen. In the past people have made: games, chatbots for particular topics, schedulers, etc. I will give some options for topics, but the sky is the limit! I generally want this to be something students are actually interested in, so think about things in your life where automation may be helpful and there’s likely a project surrounding it!
Q: How big of a negative impact does GenAI usage have on the environment?
A: Currently, large. The carbon footprint is big. I anticipate this decreasing in the future, but do not feel confident in this prediction.
Q: What is the limit to how we use GenAI?
A: Technically, the only limit is it cannot be used on in-person exams. Beyond that though, I will encourage use to support learning (rather than just answer getting) and demonstrate in class what that looks like.
Q: Does genAI devalue learning python?
A: Maybe for some small portion of people? To be honest, I had a mini existential crisis about whether teaching intro to python is still what we should be doing. After discussing with other profs, I agreed with them that the process of learning the core concepts of computing is still massively critical for anyone who exists in the world today. Understnading the rigidity, logic, and consequences of changes are important generally and specifically for students to practice critical thinking. That said I have historically considered COGS 18 a “skills” course where the most important thing students learned was the specific act of writing python code. Now, that’s not the only/primary focus. The specific content is not AS critical as GenAI can do the skill. But, the thinking and knowing what is or is not possible and practicing critical thinking (all of which I think are central to a university education) are the focus of the course.
Q: I’m wondering which AI is best for coding?
A: Most are pretty good. I’ll demo ChatGPT, given its popularity. Claude and Gemini are also quite popular and good.
Q: Are we allowed to use AI to help us with code? If not, what are some other resources we can use?
A: Yes you can - we’ll discuss how I advise students do this to ensure learning.
Q: How formal does your speech have to be if you choose the final project? Should you prepare a formal presentation?
A: No presentation! It will be conversation and we’ll ask questions that you answer.
Q: How can it be used on the projects/final project?
A: We’ll discuss but it can be used on take-home of final exam and throughout completion of final project.
Q: If you are, how will you check for inappropriate use of GenAI?
A: While I encourage students to cite when they use GenAI with a code comment, if I think a student is turning in work that they do not understand, I could ask a student to meet to discuss what they’ve submitted. If a student does not understand the work they’ve turned in, that would be a problem. Otherwise, students are allowed to use GenAI freely…so long as they understand what they turn in. I do not use any GenAI detection systems. They are not accurate.
Course Announcements
Due next week (11:59 PM):
Pre-course survey due Sunday
VQ1 and VQ2 due Monday (I’ve extended VQ1 due date b/c it’s week 1)
VQ3 due Wednesday
Notes:
Coding Labs will be released on Fridays and due the following Friday.
This course will work best if you keep up with the videos and think/learn while watching them. The quizzes are there to keep you on track…but don’t contain all we expect you to know.
Labs and office hours begin next week
Sign up for your exams if you haven’t already: https://us.prairietest.com/pt (practice exam is totally optional)
GenAI Discussion Summary
How GenAI Has Been Helpful: Explaining and simplifying concepts, Generating practice problems and mock exams, Accessibility and convenienc, Organizing notes and creating study guide, Writing and grammar support, Brainstorming and ideation
Why Students Have not Used it (~13%): environmental concerns, ethical concerns, fear of overreliance/reduced learning, academic integrity concerns, distrust of accuracy, preference of independent learning
How Helpful in this course: debugging & error detection, explanations of concepts or code logic, step-by-step guidance, extra practice problems, checking/validating work, learning fundamentals
How It could Limit Learning: over-reliance, getting answers without underestanding, erosion of critical thinking, temptation & self-discipline, inaccuracy
Behaviors y’all want to avoid:
Asking GenAI to write code for them outright
Copy-pasting without reading or understanding the output
Turning to GenAI before attempting the problem themselves
Using it so frequently that it becomes a default rather than a tool
Skipping the struggle — which many recognized as essential to actual learning
Unique comments:
trying to teach the (wrong) AI or having thoughts and see where you disagree with AI; solidifes learning
learned helplessness - immediately search up rather than think
personal beef as a digital artist (valid)
Clarifications
PrairieLearn vs. PrairieTest
Where to find readings/videos for pre-lecture video quizzes (VQs)
Tooling#
Jupyter Notebooks
PrairieLearn
GenAI
Academic Integrity
This notebook will guide through the tools you will need for class materials and assignments, and how to get them.
Jupyter Notebooks#
Markdown
code cells
In PrairieLearn, a Workspace is where you’ll interact with Jupyter notebook.
Cells#
Cells are an independent ‘unit’. When you click into a cell, you can ‘run’ it by clicking Shift + Enter, or by pressing the play (Run) button above.
Cells come in different types for writing different things - mainly, text or code.
Markdown Cells#
Cells, can be markdown (text), like this one.
A brief note about Markdown. It’s a way to specify all formatting within the text itself.
For example, italicized text can be specified with an underscore or single asterisks.
Bold text requires two underccores or two asterisks.
Markdown Headers#
Headers are specified with a pound sign#
The more pound signs, the smaller the header#
But it’s still larger#
than just plain text.
Lists are also possible:
item 1
item 2
item 3
numbered item
item 2
item 3
Code Cells#
Whenever you’re writing code, you’ll want to be sure the cell is set to be a code cell
# Cell can also be code.
a = 1
b = 2
# Cells can also have output, that gets printed out below the cell.
c = a - b
print(c)
-1
# If you execute a cell with just a variable name in it, it will also get printed
# anything that starts with a hashtag will be ignored by the computer
c
-1
Running Cells#
The numbers in the square brackets to the left of a cell show which cells have been run, and in what order.
An asterisk (*) means that the cell is currently running
You do not need to run cells in order! This is useful for flexibly testing and developing code.
Activity time: Tooling#
Complete all questions in this Google Form (https://forms.gle/UUneqv2knV4T28RR9) and then click submit.
You are encouraged to:
Talk with your neighbor
Try the questions out in your notebok to check your understanding
If you have questions, I’m happy to come over as we work on this!
___test this out___
1 this
1 that
1 the other
my_variable = 3 + 3
print(my_variable)
6
Accessing Documentation#
? after a function or class get a window with the documentation, or a double ?? to pull up the source code.
# For example, execute this cell to see the documentation for the 'abs'
abs?
Signature: abs(x, /)
Docstring: Return the absolute value of the argument.
Type: builtin_function_or_method
Autocomplete#
# Move your cursor to the end of the line, press tab, and a drop menu will appear showing all possible completions
ra
range
PrairieLearn#
For Assessment: VQs (video quizzes), CLs (coding labs), As (assignments), and exams (E1, E2, Final)
Save & Grade -> will give you immediate feedback on correctness
Unlimited attempts for full credit: Coding labs, As
(typically) Multiple attempts for credit (diminishing): VQs, Exams
If you save but do NOT click Save & Grade, it will grade once assessment closes.
Sometimes there will be Jupyter notebooks (Lecture Notes, Assignments):
do not change file names
MUST save notebook AND click save on PL
print()statements encouraged
[demo]
PL
report an issue
Workspaces (Notebooks) in PL
The AIs#
Academic Integrity and Artificial Intelligence (or GenAI)
When GenAI?#
Class is designed to limit the ability/temptation to cheat/make a bad decision:
Notes/Internet/GenAI use permitted for everything except exams
Exams are taken in a proctored environment
This design is to maximize your learning.
…but that also means that you’re responsible for your learning.
Could you (theoretically…don’t do this!) use GenAI to complete all VQs, labs, and assignments for you?
Yes…but:
exams are worth 50% of your grade. (No GenAI)
You probably want to learn the material when given the opportunity to use outside resources.
Then, on exams, you get to show off what you’ve learned.
How to learn with GenAI:#
The most important reminder: you should understand and be able to explain any code you turn in as your own.
Think and do first -> GenAI second
Ask questions you’ve come up with (avoid copying+pasting questions I’ve written in full)
Collaborating with Integrity#
Working with others is different than copying from others. It is never acceptable to just ask someone for their answers or their code.
On Coding Labs & Assignments, it is OK to ask one another questions about what you’re working on. It is OK to share screens and talk through your answers.
If you find yourself copying + pasting someone else’s code (from a friend or from the Internet)…you’re probably making a mistake.
Activity time: GenAI#
Complete all questions in this Google Form (https://forms.gle/ykNim3W2StbYCKzx8) and then click submit.
You are encouraged to chat with your neighbors!
If you have questions, I’m happy to come over as we work on this!