|
Information Science 341
CS Insights via Python (CS, for IS and beyond)
Overview/Syllabus, Spring 2024
|
|
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 F 1-3pm
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 cover 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 119 or 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 Wednesday 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!
|
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, documentation, and testing.
Objectives:
- Break a broad problem down into specific subproblems
- Write an algorithm to solve a specific problem, and then translate that algorithm into a program in a specific programming language (Python)
- Use Python as an means for exploration, of 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 GANs |
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
|
|
|
|