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