CSCI 379: Foundations of AI

2026-08-25 15:54

the big picture

what?

Welcome to CSCI 379, Foundations of Artificial Intelligence.

What is this course about? The course catalog says:

Artificial intelligence is an extremely broad field in which the overarching goal is the creation of an autonomous agent with human-level capabilities. Students study the fundamental algorithms and techniques used to create agents with varying degrees of autonomy and function, including search algorithms, first-order logic, Bayesian networks and simple neural networks. Students learn how to represent problems for specific techniques, and how to select the best technique for a given problem.

A key disclaimer: what we mean in this course when we say “artificial intelligence” is not really what, in 2026, most people think of when they hear that term. We will not be directly studying the computer science topics that underpin ChatGPT, Claude Code, Deepseek, Kimi, Qwen, Gemini, Huggingface, and their ilk – this course is more about the classical computer science subject of AI. But when we say “foundations”, we mean it, though. What you’ll learn here really is the deep underlying foundations of the chatbots and coding agents and such. In other words, and making the “foundation” metaphor more explicit: the chatbots are on the uppermost floors of a very tall skyscraper; your previous CS and math courses are a sort of bedrock, upon which this course will pour the concrete, rebar, and basement-level infrastructure for that skyscraper. We may not behold the breathtaking views from the top, but those top floors wouldn’t exist without the foundation we make here.

why?

Why study the foundations of AI?

On the one hand, the practical value of understanding artificial intelligence technology in 2026 needs no justification.

But, even though we won’t directly address the details of modern AI systems, this is a fascinating useful area of computer science. The algorithms, ideas, and topics we study are interesting not just as something in CS but also beyond. What does it mean to learn? To be intelligent? Can computers think?

who?

I’m Dan Drake. My email address is drake3@stolaf.edu.

when, where?

We meet in RNS 203, Tuesdays 11:45 to 1:10 and Thursdays 12:45 to 2:05.

The final exam will be December 19 at 13:00 in a room to be announced.

My office is room 600, Regents Hall of Mathematical Sciences; the times for my office hours will posted on Moodle and held in either my office or the 6th floor lounge next to it. Or perhaps elsewhere; I’m willing to meet elsewhere on campus. There’s even the idea of a “walking meeting” – instead of a typical meeting where we all sit inside, we meet and…go for a walk. There’s lots of psychological studies that show doing so is very beneficial. Really! You are literally smarter, in some ways. I like walks. Let’s try some “walking office hours”.

how?

How are we going to go about conducting this course?

A typical class meeting will feature some lecturing and in-class activities – both analog and digital, so to speak – that is, sometimes you’ll be working on a computer, and sometimes you’ll be working without one. Please bring paper and pen or pencil to class.

There will be homework assignments roughly weekly.

There will be three in-class exams: two during the semester and the final one at…the final exam time. There will also be an oral component to the exams; some details below, and more later.

Towards the end of the semester, you will complete a project. This will be “bigger” than the homework assignments, in that it will involve more work, both in the amount and complexity. You will be given less guidance, but more freedom. Details will be provided later.

text and other materials

The text for our course is Artifical intelligence: a modern approach by Russell and Norvig. You are not required to purchase it, but I recommend getting a copy. It is also on reserve at the library.

the grading system

You may be expecting to see percentages and points here. Nope. No points, no weighted averages, no mapping from percentages to letter grades.

In this course you will be assessed, and your final grade determined, using a so-called “alternative grading” system – in particular, a hybrid of what’s called standards-based grading and specifications grading.

I do this because the “traditional” form of grading with which you are familiar makes no sense and is actively harmful to learning. It does not meaningfully measure learning. It is, however, very good at ranking students; at providing a false sense of objectivity; at saving your instructor’s time; at being a form of data that is portable and legible to people with no idea of the context and particulars of what we will do here.

But what I care about is what you learn. At the end of this semester, your brain will be different than it is now. You will differ in the knowledge, skills, beliefs, attitudes, and feelings you have. But how? I want that difference to consist of a large increase in your knowledge of the foundational topics of artificial intelligence and related fields, for you to have the ability to apply that knowledge, relate it to other knowledge (in CS and beyond), and to synthesize new things with it. I want you to believe that this class was valuable and interesting, that you made a contribution to the community of our class and learning of your colleagues, and that the topic is worth further study. I want you to have the attitude that you can figure out hard things, have a growth mindset about your abilities, and continue to learn about them. I want you to leave with positive feelings about this course and your experience in it.1

The points, percents, and averages with which you are accustomed measure that kind of difference poorly, if at all. They are little more than an elaborate exercise in arithmetical legerdemain; a sort of artifact of the Industrial Revolution – in the name of efficiency, we automated and standardized the production of goods; traditional numeric systems automate and standardize the production of humans into workers. Those grading systems turn you, too, into another cog in the machine; another kind of widget whose production is to be optimized for profit. It’s a good system for producing economically valuable workers in the same way we produce goods.

I don’t think you should be a widget that will roll off the educational assembly line having been produced in a way maximally profitable to the owners of capital. Or of the owners of the labor producing such widgets.

In other words, you might say: students of the world, unite! You have nothing to lose but your grades!

(I truly had no idea that I would stumble into Karl Marx while writing this syllabus. I suspect you didn’t, either.)

Some things to read for further considerations:

laying my cards on the table

I still have little experience actually using this kind of grading system. The traditional form of grading is familiar and comfortable for me too – it’s super easy for me to assign points, sum them up, toss ’em in a spreadsheet and call it a day. But I just can’t stomach doing that anymore when I am so keenly aware of their irredeemable flaws.

I got into this business because I deeply love figuring things out. I absolutely love learning and understanding new ideas, particularly mathematical and computer science-y ideas, and I love sharing that learning and understanding with others.

My aim with this system is for you, too, to figure lots of things out, share them with others, and delight in the process of doing so, while fairly and accurately measuring your learning and achievement.

I’ve worked to craft something that does that. But I am, well…still figuring things out, and I know the alignment between the best learning experience for you and a good grade according to this system is not perfect. So I ask for your patience, understanding, constructive feedback, and trust that I have your best interests at heart and am dedicated to promoting your learning and measuring it well.

Therefore: this system is subject to change if it becomes clear that some component is unfair and does not meaningfully serve the lofty goals set out above.

enough with the manifesto, give me the details

My goal here is to craft something in which your aim is always to clearly demonstrate learning and ability – not to simply accumulate points. What’s below may seem complicated, and in some ways it is, but the intent is that your incentive is always to focus on “how can I make my understanding of this obvious?”

the big picture

I have tried to make a system that reflects the “benchmark achievement levels” for grades at St. Olaf: see this academic regulations page on grades and the marking system.

There are several components that contribute to your course grade. Each one will be assigned its own letter grade, and your final grade will be the minimum of those.

The components are:

Your homework assignments, project, and exams will contribute to the learning standards.

The CS program attendance policy applies to your grade. Chronic absence will affect your grade as described by that policy.

learning standards

Here are the “standards” for the course. Note that the last one is related to the course project and counts double.

  1. uninformed search
  2. informed search
  3. game-theoretic searching
  4. constraint satisfaction problems
  5. logic
  6. theorem proving
  7. probability, Bayes
  8. supervised machine learning
  9. unsupervised machine learning
  10. decision trees, random forests
  11. regression
  12. advanced ML: convolutional neural networks, natural language processing

For each of them, at the end of this semester you’ll receive a summative assessment of your flouncy of each standard, following the “CPN” scale. For individual assignments or submissions, think of it this way:

Complete

your submission is complete and clearly represents thorough, meaningful work.

Partially complete

work for which you’ve done some of, but not all of the assignment. A key part of the assignment is missing or wrong.

Not complete
nothing submitted on time, or so incomplete it cannot be said you understood the assignment and took it seriously.

For some of these assignments, you will be able to resubmit P or N work to earn a “complete”.

For the standards component, you’ll earn a letter grade according to this table. The project is counted twice, so is can contribute two “completes”.

A all 13 standards complete
B 10-12 complete; none incomplete
C 8-9 complete; at most 1 incomplete
D 6-7, at most 2 incomplete

components of the standards

Homework assignments: these will be programming assignments, and for each major topic/standard assessed by the homework, you’ll earn marks on the “EMRN” scale. It has four categories:

Excellent

work that truly exceeds expectations. Flawless, or very, very nearly so. The kind of work that could be used as-is as an example in the textbook or lecture. A response that very clearly communicates your superior understanding.

Meets requirements

work the meets all the requirements for the problem or assignment. A clear, complete response that makes your complete understanding obvious. No mistakes or flaws in content or communication, except perhaps for something not crucial for this assignment.

Revision needed

work that meets many or most of the requirements, but which has one or more nontrivial flaws that are directly relevant to the assignment. A response for which it’s not clear whether you do understand the entire assignment. You may submit a revision correcting mistakes and improving your work. If the revision constitutes “E” or “M” work, the “R” mark will be replaced by that. (Details on what constitutes a revision, and how to submit it, will vary by assignment and will be specified later.

No evidence
work that is so flawed or so poorly communicated it cannot be said to provide meaningful evidence of understanding. A response that may contain some correct parts, but which is very incomplete, or riddled with mistakes. In some cases, this work may also be revised for a higher mark. (As above, details will vary.)

This scale is, roughly, a form of pass/fail, with E and M being a form of “pass”, and R and N as “fail”. But I avoid using the word “fail”, because it is simply incorrect: a submission that earns R or N does not mean you have failed; it is feedback that indicates you have more work to do.

The descriptions I’m using are a minor variation on the original version take a look there to see another way to look at this.

Each exam of them will assess your understanding of the relevant standards, and you will receive EMRN marks for each of those.

I also intend to conduct oral exams. I am contemplating that the exams will have both a written and oral component; you’ll take a usual kind of exam during class, and then come to my office for a further question or two. The scheduling and logistics of all this are not yet determined.

Standards: for each of the standards, you will earn a Complete mark if all of the homework and exam questions for that standard are at an E or M level. You will earn Partially Complete if you have at least one E or M and at least one R or N, and Incomplete if all the marks are R or N.

  1. late homework tokens

    This class proceeds briskly, and for sheer logistical and organizational reasons, late homework will not be accepted.

    However, you will have five late-homework tokens, each of which can be used for a 1-day extension. If you need to submit an assignment late, submit a response to this form. If you are out of tokens but need more, come to me and we’ll discuss.

beyond the text reports

All too often in computer science and math (and across the sciences, really), subjects are presented with absolutely no context of their history, development, or context. They are set before you as some sort of complete Platonic form, without any description of their probably-messy, complex, nonlinear development. We seem uncomfortable with the fact that our knowledge is not a perfectly objective intellectual artifact, some fully-formed thing that Prometheus (representing here the scientists and mathematicians who developed it) brought to us from the gods.

Your textbook and much of the lecture in our course presents this subject in exactly that way. However, I believe that you will more thoroughly understand the overall academic discipline of computer science and artificial intelligence, and its body of knowledge and practices, if you investigate a related bit of history or culture.

So: you will make a report on some topic related to the history or culture related to AI and its development. You will submit a written artifact, and optionally present it to the class. Fully completing this will involve some consultation with me (to confirm your topic), submitting a draft or two, the final version, and possibly your presentation to the class. Details to come.

I will post topic suggestions, but also encourage you to find your own. This will be open for most of the semester and you may finish it at any time, within reason.

For this category, you will earn a letter grade according to this table:

A E or M on presentation and written
B written report only, E or M
C written report, R
D no submission, or N

engagement and participation

This component will not receive a particular letter grade; rather, it will be used to adjust, up or down, the result from the two letter-graded component.

This is admittedly a somewhat more vague component, but I feel it’s important. You are not here as some sort of empty cognitive container, into which I, your instructor, will deposit knowledge.2 I hope you are not here just to accumulate credentials, check a box, or jump through a hoop. I really do believe our class for this semester really is a little community, and that you will learn and enjoy this class more if you treat it that way. What’s more, your fellow students will learn and enjoy more, too.

In more CS terms: if we conceive of your role here as a single entity into which is input facts, and which outputs assignment submissions as proof that you received the input, then the total amount of learning is linear, or \(O(n)\): double the students, double the amount of learning that occurs. But if you treat this like a community, contribute your ideas and understanding, try to help others and seek help in turn, the amount of learning is quadratic, \(O(n^2)\), because the number of student-student connections is on the order of \(binom{n}{2}\).. Game-theory people would say it’s a positive-sum game.

To this end, this component may be used to adjust the rest of your grade. I will be much more likely to adjust up if you:

I also encourage you to simply independently do extra work. Some homework assignments may include optional pieces. Did you encounter some AI-related topic that you’d like to explore? Perhaps you want to do two beyond-the-text reports? I am very amenable to this, and would ensure your grade reflects it.

Another way to view this: at this point in your academic career, you should possess some independence. You are not a baby bird, waiting helplessly for me to fly back and stuff worms down your gullet. Get out of the nest, fly around, and explore!

computer science program attendance policy

Attending class is essential for learning the content of the course, as well as practicing communication and collaboration. Missing class hinders your ability to achieve these important learning outcomes. That said, you understandably may need to occasionally miss class due to illness or a scheduling conflict. In these situations, I do not want to judge which absences should count as “excused” or “unexcused.” So, all absences will be treated equally, since they all result in missing important class time. Additionally, arriving late disrupts not only your own learning but also your classmates’ ability to engage fully in class activities. Any tardiness over 5 minutes (subject to instructor adjustment) will also be counted as an absence.

  1. If you have accrued three unexcused or unexplained absences without contacting me in advance, I’ll notify your academic advisor and the Dean’s Office by filing an Early Alert Form to make sure you’re getting the support you need.

  2. If you have accrued five absences, whether or not you contacted me in advance, you must meet with me to discuss your standing in the course and what you need to do to get back on track for successfully completing the class.

  3. If you have accrued nine absences, whether or not you contacted me in advance, you will automatically fail the class. Nine absences means missing nearly a quarter of all class sessions, indicating that you have not legitimately completed a student-centered course that requires class engagement. If you do need to miss class, I strongly encourage you to check in with another student on what you missed, and attend office hours to discuss any questions that you have.

by continuing in this class, you commit to

treat it like a community

We are here because we keenly want to learn about the foundations of AI. That includes me! This is my first time teaching this kind of course, and while I am broadly conversant with the content, there is a lot I don’t know. You never know everything. There is always more to learn. I will presume that you too feel this way.

Therefore, we will support each other to best promote our learning. This means you will be helpful, supportive, and share when collaborating – because that helps you and other students learn. It also means you will;, when called for, work by yourself, because that helps you learn.

It means you resolve to actively participate during class as best you can and seek to improve. It means you will work against the fear of being wrong, or of being intimidated by seemingly-brilliant, never-wrong classmates.

You commit to scrupulously follow the academic integrity principles and the St. Olaf honor code, and embody their values.

To best promote learning, it is necessary for us to know that your submitted work genuinely represents your labor and understanding. If there is a mismatch between what we think you have learned and what actually know and can do, it limits what we can do to help you learn and furthermore has a corrosive effect on the shared culture and norms of our class and reduces what we can collectively accomplish.

You should likewise hold your classmates to this high standard.

inclusivity, diversity, belonging

You will strive to be welcoming and understanding to all, regardless of race, ethnicity, and various forms of self-identity and self-expression, and to foster a sense of belonging. We do this in service of our learning goals. We are obligated to do so as members of several increasingly-broad learning communities: this particular CSCI 379 class; your fellow MSCS majors, of the St. Olaf community, and even, to some extent, all those devoted to scholarly inquiry.

communicate effectively

You commit to communicating well with me and others. Be timely – this refers to to time-of-day or week, and of the amount of time between your message and relevant course deadlines.

If you assume I will reply with alacrity to messages outside of “normal adult” work hours, or just before a deadline, you will likely be disappointed.

Bear in mind that checking and rsponding to email is not (and should note be!) a 24/7 activity. I don’t follow the typical sleep or work schedule or communication habits of college students. Put another way: I am old. How old? Some of you were born after I finished my PhD. It turns out I am a morning person and get up early. How early? Let’s just say I am often out of bed at an hour so early, most college students aren’t even aware that it exists.

In addition to time, please communicate with me and others in a fashion that is professional, efficient, and polite. Please eschew effusive, prolix throat-clearing in your emails – in particular, you may assume that your email finds me well, and omit an expression of hope that it does so. Do not use AI to draft or “improve” your message; if you fear that I will think less of you for some grammatical infelicity or inapt turn of phrase, rest assured you will earn much more opprobrium by forcing me to scan thru the florid output of some LLM prompted into politeness mode.

(I am aware that my writing here violates, somewhat, what I’ve written above.)

One particular: if you will miss class, you must email or contact me beforehand if reasonably possible.

address ailments, physical, psychological, and otherwise

There are certain prerequisites to your learning and that of others: you need to be physically and mentally well enough. To best serve your learning and wellness, please take suitable action whenever you are not perfectly well. Sick? Stay home, or mask up, or visit the doctor, or so on. Beset by stress, anxiety or any other mental health difficulty? Get help! Speak to me, please. I can and will listen and help.

A bit more about me

My journey to teaching here isn’t quite like that for typical faculty: the usual path is undergrad → graduate school → perhaps a postdoc or 1-2 year visiting position → St. Olaf.

My own path includes a PhD in mathematics from the U of M; five years at KAIST, a science and technology university in Daejeon, South Korea; other positions at the rather St. Olaf-like University of Puget Sound, and the not-at-all-St. Olaf-like University of Wisconsin–Madison.

Then I worked as a software developer at Epic, a health care software/tech company, for nearly ten years.3 I then returned to academic, spent a year at Macalester, and now here I am here in CSCI 121 with you.

The more personal side

Come to my office hours and tell me which ones you think are true or false!

Footnotes


  1. And, to be perfectly honest, I’d like you to have positive feelings about me as a teacher.↩︎

  2. See Paulo Freire’s famous “banking model of education” – his metaphor for this flawed conception of education.↩︎

  3. You can expect lots of ancedotes and war stories about surgery, implants, scheduling, hospitals, operating rooms, anesthesia, and so on – as well as war stories of doing battle with computer code and other technical topics.↩︎