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