Course description

This course is recommended for students who are familiar with programming at least at the level of CS106A and want to translate their programming knowledge to Python with the goal of becoming proficient in the scientific computing and data science stack. Lectures will be interactive with a focus on real world applications of scientific computing. Technologies covered include Numpy, SciPy, Pandas, Scikit-learn, and others. Topics will be chosen from Linear Algebra, Optimization, Machine Learning, and Data Science. Prior knowledge of programming will be assumed, and some familiarity with Python is helpful, but not mandatory.

Course information

CME 193 - Introduction to Scientific Python - Winter 2023-2024

  • Instructor: Leah (Reeder) Collis (lcollis@stanford.edu)
  • Location: Shriram 104
  • Time: Wednesday 11:30 AM - 12:20 PM for 8 weeks (Staring Week 1)
  • Units: 1
  • Grading: Credit/No-Credit
  • Office hours: (starting in week 1)
    • 1pm - 3pm on Wednesday in Huang Basement.
    • Additional office hours may be approved upon request.

Prerequisites

Programming

There are no formal prerequisites. This means we won't check your previous programming experience.

However, the course material will assume prior programming experience. Ideally, you already are comfortable programming in at least one language (C, C++, fortran, Julia, Matlab, R, Java, ...), and perhaps have seen some basic Python before.

If you haven't worked with Python in the past, you may wish to complete an introduction to Python on Codeacademy and/or Udacity.

Scientific Computing

This is a course on scientific computing with Python. This will assume you

  • Have at least a basic familiarity with linear algebra, optimization, and statistics
  • Have some familiarity with a scientific computing application (simulations, machine learning, etc.)

Format

This course runs for eight weeks of the quarter and is offered each quarter during the academic year.

Lectures will be interactive using Google Colab with a focus on learning by example, and assignments will be application-driven.

CME193 is a fast-pace course, and you will learn a lot of Python in each 50 min lecture. Therefore, we'll have some preview section(called Basic Section in the notebook) before the lecture, and we'll typically devote some time post-class to working on exercises, so you can ask for help (Ed Discussion) if you're stuck.

Grading

This a 1-unit workshop style course, offered on a credit/no-credit basis. There will be two assignments with around 2 weeks to complete each of them. Each late day comes with 10% of full-score penalty (90/100 -> 80/100) and We WILL NOT ACCEPT assignments more than 2 days late . To receive credit, you must get at least 70% of the total points, although I reserve the right to change the exact cutoff percentage as the assignments are subject to change. The goal is to give you some practice and experience with the content of the course, without overwhelming you with work.

Late Days

Every student begins the quarter with a total of 2 free "late days" shared through all assignments. Each late day allows you to submit an assignment up to 1 calendar day late without penalty. For example, if a due date is Tuesday at 10:30AM PT, using 1 late day allows you to submit until that Wednesday at 10:30AM PT without penalty, and 2 late days allows you to submit until that Thursday at 10:30AM PT without penalty. Late days may only be used in 24-hour increments. You should think of free late days as extensions you have been granted ahead of time and use them when you might have otherwise tried to ask for an extension. Beyond these two late days, we WILL NOT grant any additional extensions, except in cases where EXCEPTIONAL circumstances necessitate more than a 2-day extension and further extenuating circumstances necessitate additional accommodations. All extension requests must be received 24 hours in advance of the assignment deadline. Please do not hesitate to reach out to the instructor if any personal circumstances or issues arise!

Notes: To be fair with everyone is the class, being busy with another class is not a valid excuse, as those tasks are scheduled at the begining of the quarter so there are not unexpected.

Stanford Policies

Honor Code

This course is intended to be collaborative. You can (and should) work with other students in class and on homework. You should turn in your own solutions (don't copy others). If you worked closely with someone or found an answer on the web, please acknowledge the source of your solution.

Students with Documented Disabilities

Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Office of Accessible Education (OAE). Professional staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty. Unless the student has a temporary disability, Accommodation letters are issued for the entire academic year. Students should contact the OAE as soon as possible since timely notice is needed to coordinate accommodations. The OAE is located at 563 Salvatierra Walk (phone: 723-1066, URL: https://oae.stanford.edu/).