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 - Spring 2020-2021 (Offered every quarter)

  • Instructor: Arun Jambulapati (
  • Location: Virtual
  • Time: Tuesdays/Thursdays 10:30-11:50 AM for four weeks (Tuesday, April 6th, 2021 to Thursday, April 29th, 2021 ).
  • Units: 1
  • Grading: Credit/No-Credit
  • Office hours:
      Friday April 16th, 2021 6-8 PM PDT
      Monday April 19th, 2021 4-6 PM PDT
      Thursday April 22nd, 2021 6-8 PM PDT
      Monday April 26th, 2021 4-6 PM PDT
      Thursday April 29th, 2021 6-8 PM PDT
      Monday May 3rd 2021 4-6 PM PDT
      Thursday May 6th, 2021 6-8 PM PDT



    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.)


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

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

    We'll typically devote some time during class to working on exercises, so you can ask for help if you're stuck.


    This a 1-unit workshop style course, offered on a credit/no-credit basis. There will be two assignments with around 1.5 weeks to complete each of them. 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.

    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: