|
Information Science 341
CS Insights via Python (CS, for IS and beyond)
Overview/Syllabus, Spring 2025
|
|
General Information
|
|
Instructor:
Zach Dodds
Office: McGregor 326 on
Harvey Mudd's campus, corner of 12th and Dartmouth
Phone: x71813 (909-607-1813)
Email:
dodds@cs.hmc.edu
Official Office Hours T 7-9pm in the
McGregor CS Labs: 201 Platt Blvd., Claremont, CA. It's the building on the
NE corner of 12th and Dartmouth, a couple blocks N of CGU's ACB.
Real Office Hours Anytime, just email me
to set up a meeting...
|
|
Is IST 341 for you?
|
|
Absolutely! IST 341 is intended as an introduction to programming
and problem solving in the python language, and it can be
used even by experienced programmers who want to learn or
brush up on a powerful language. It does not assume
prior knowledge of programming. If you do have some, that's ok too.
A similar course, CS5, is part of the Harvey Mudd core
curriculum, and this one is tailored to be a
technical elective at CGU's School
of Information Science. As a graduate class, IST341 includes a
substantial part of HMC's CS181y/CS35 electives, which emphasize Python's
data-science and machine-learning workflows.
Students from very different majors and paths have
found IST341's skillsets and mindsets useful!
|
Date / Time /
Place
|
|
When it's taught as HMC's CS5/CS181y/CS35, there are separate lecture and
lab meeting times. For this graduate elective, we combine
everything our weekly meeting in ACB.
(Saturdays, 1:00-3:50pm).
- IST 341 at CGU: Saturdays in ACB - usually Room 208. You can also join via Zoom.
|
Textbooks and Software
|
|
You will not need a text for this class. That said, there is an
excellent, free, online textbook that many students
have found useful. It is
IST341 does not work through the book
chapter-by-chapter. Rather, in our investigations as
to "How to think like a computer scientist," we will use the book as
appropriate. We use lots of other materials -- and you are both welcome and
invited to seek out resources and use them. (That is an essential practice!)
|
Grading
|
|
Your grade in the course will be based on a combination
of your homework and projects. The basic intent is
that the homeworks will act as experience-building while the
final project gives you the chance to explore more
open-ended challenges... .
%
of points |
letter grade |
95-100% |
A |
90-94.9 |
A- |
86-89.9 |
B+ |
83-85.9 |
B |
80-82.9 |
B- |
76-79.9 |
C+ |
73-75.9 |
C |
70-72.9 |
C- |
65-69.9 |
D+ |
60-64.9 |
D |
< 60 |
F |
|
Here is how the points are approximately divided:
Assignments |
1000 points (each assignment is about
100 pts) |
Final project |
400 points |
Participation/"Quizzes" |
100 points (the "Quizzes" are simply
our in-class exercises - everyone will get a chance
to try them...)
|
|
|
Homework
Assignments
|
|
There will be weekly homework assignments, due at the following
times:
11:59pm Friday evenings
These assignments are intended to exercise and
solidify your understanding of the week's material, review
older material, and look ahead to new topics. They are the
most important part of the course!
|
Demos!
|
|
There are no exams in IST 341.
In place of exams, there are three required Demos -- these are in-person (or on-Zoom)
opportunities to demonstrate your ability to run, understand, and expand your skillset:
- In some ways, these are similar to practice "tech interviews," which have started becoming part of
every professional path (not only software, computing, and IT!)
- However, they are less formal than interviews! They are a great way to get more comfortable talking about
technical behaviors (in software) while maintaining the thread and pacing of a natural conversation.
- Over the past three years, alums -- both from CGU (Tim, Joyce, Oke, Bill, ...) and from the Claremont Colleges (all!)
-- have been emphasizing that the ability to bridge technical execution with human context and conversation
is the most sought-after professional skill. Smooth conversationalists who don't feel comfortable giving and
explaining demos are at a serious disadvantage. So, too, technical creators who don't feel comfortable describing
the context, value, and opportunities/repercussions of what they have built are at a marked disadvantage.
- So, IST341 has traded in its tests/exams for demos/discussions. (Plus, they're fun -- and low-worry!)
|
Getting Help
|
|
Your work in IST341 must be your own, and this applies equally for teams.
Teams are encouraged - extra eyes are a great way to work on
exploratory software!
Often, being able to talk through things
with a partner makes the process smoother, more efficient, and more fun!
Teams may be pairs or trios. (Larger groups should create smaller teams.)
The standard is the same, whether solo or in a team: all participants must be
equal and full owners and creators of all of the work.
Programming and CS are unnatural (alas!)
Too often, a student will bang his or her head
against a wall for hours trying to figure out why a program
isn't working, when a few minutes with the professor or another
student is enough to make it clear! Don't spend more than 15-20 minutes
on a problem if no progress is being made! Use the Canvas site to post a question
or drop me an email directly or touch base with others in the class!
ChatGPT
You are welcome and encouraged to use ChatGPT (or its many AI siblings) to help deepen understanding, find bugs, ask for explanations, etc. in cs5. Guidelines:
- Quote output ChatGPT created, e.g., ChatGPT: "(4!+4) - (4/4) = 42"
(This is a real ChatGPT quote, in fact.)
- Digest! That is, edit, adapt, test, and understand the results.
- Author. Your submission is your work. ChatGPT was a source for helping you accomplish
your work.
As noted, when working in a team, each individual is responsible for being a full owner, decider, and understander of the work submitted.
So, too, with ChatGPT and AI, you as an individual are responsible for being a full owner, decider,
and understander of the work submitted. Just as with appropriately citing other authors' work, other uses
do not meet the CGU or 5Cs' or HMC's academic use or integrity standards.
|
|
Course Aims and Objectives
|
|
This course has two central aims, each with a number of associated objectives:
- Aim 1: To take a computational problem through the process of design, implementation, testing, demonstration,
and discussion
Objectives:
- Break a broad problem down into specific subproblems, using AI as appropriate
- Write an algorithm to solve a specific problem, and then translate that algorithm into a program in a specific
programming language (Python, for us)
- Practice demonstrating and discussing software artifacts you've created, including the technical details of how they could be augmented, modified, adapted to new tasks.
- Use Python as an means for exploration of others' and one's own data and processes.
- Develop and present insights from computing-based explorations.
- Aim 2: To experience a first-hand understanding of the breadth of Computing
and how it can help across many disciplines.
Objectives:
- Create a variety of data- and process-modeling applications
- Build confidence and comfort with widely used libraries and workflows for machine learning
- Demonstrate a variety of machine learning and AI approaches to model datasets and processes
- Develop and present insights from ML/AI and data-modeling investigations.
|
Content Overview
|
|
In brief, the material CS 5 covers is a superset of the following:
Week 0 | Introduction to computation: Python and its
ecosystem |
Week 1 | From data to information: strings, structures, and slicing |
Week 2 | CS's fundamental building blocks: functions |
Week 3 | Computing's strongest suit: data |
Week 4 | Modern modeling / Machine Learning |
Week 5 | Decision Trees and Random Forests |
Week 6 | Neural Networks |
Week 8 | Natural-Language Processing |
Week 9 | Images and pixel-processing |
Week 10 | More pixels (so many!) |
Week 11 | Generative models and LLMs |
Week 12 | Piecing everything together: final projects |
Week 13 | Final-project guidance and progress |
Week 14 | Final-project presentations |
Remember that IST341 also covers a large part of CS181y and CS35 -- and goes beyond!
Around week 2-3, we will start to transition, including
- workflows and files
- web content as output: auto-generating HTML
- web content as input: parsing and scraping HTML
- model-building and machine learning, the big-picture
- machine learning: nearest neighbors and k-means
- machine learning: decision trees and random forests
- machine learning: neural networks
- applications: natural language
- applications: pixel processing
- final projects! (in IST341, these are all self-designed)
Here is the homepage for CS5
Here is the homepage for CS35
|
|
|
|