Top Banner
Preliminaries CS 331: Data Structures and Algorithms Michael Lee <[email protected]>
21

Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Jul 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

PreliminariesCS 331: Data Structures and Algorithms Michael Lee <[email protected]>

Page 2: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

- [email protected]

- http://moss.cs.iit.edu

- Office: SB 226C

- Hours: Wed/Fri 1-2PM (on Discord/Zoom)

Michael Lee

Page 3: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

- Course overview & Administrivia

- Prerequisites

- Topics & Resources

- Grading

- Dev environment & Class procedures

Agenda

Page 4: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Data Structures- How do we store, organize, and retrieve data on a computer?

& Algorithms- How can we efficiently (in space/time) carry out some typical data

processing operations?

- How do we analyze and describe their performance?

Page 5: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

- I assume you are …

- fluent in some programming language

- familiar with procedural & OO paradigms

- comfortable with development processes:

- compilation, debugging, testing

Prerequisites

Page 6: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Python- We’ll use the Python programming language to explore data

structures & algorithms

- Easy-to-learn, clean (“one obvious way to do” things), and popular language

- Ton of useful, powerful libraries

Page 7: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Topics- Python crash course

- Algorithmic analysis

- Linear data structures (Lists, Stacks, Queues) - Hashing and Hashtables (aka Maps)

- Recursion and Trees

Page 8: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

1. Course website: moss.cs.iit.edu/cs331

- static information

- lecture calendar, slides, external resources, etc.

Online resources

Page 9: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

2. Learning platform: Mimir

- interactive lab and lecture notebooks with built-in tests

- quizzes and exams

Online resources

Page 10: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

3. Blackboard

- Collab Ultra (for labs)

- Final gradebook

Online resources

Page 11: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

4. Discord: discussion forum

- text/voice chat + screen share

- monitored by TAs and myself

- all office hours here!

Online resources

Page 12: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Teaching Assistants- Section 01: Ismael Lopez

- Hours: TBA

- Section 02: Benny Vazquez-Elvir

- Hours: TBA

- Section 03: TBA

- Hours: TBA

- Section 04: TBA

- Hours: TBA

- Section 05: Vincent Tran

- Hours: TBA

Page 13: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

TA Lab & Office Hours- Labs will be run on Blackboard Collab Ultra

- Demos + live QA

- Office hours will be held on Discord

Page 14: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Supplements- The Python Tutorial (docs.python.org/3/)

- Problem Solving with Algorithms and Data Structures Using Python

Page 15: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Grading- 35%Machine Problems

- 5% Quizzes / Self-evaluation

- 60%Exams (3 total: 2 midterms + final)

Page 16: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

On Exams- Tentative midterm exam dates published on class website

- Oct 8, Nov 12 — available for 24 hour period on Mimir

Page 17: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Machine Problems- New programming assignment most weeks

- All assignments are retrieved and submitted on Mimir

- Provided codebase typically covered in preceding lectures

Page 18: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Jupyter Notebook- In-browser Python development platform

- “Cells” can contain plain text, code, output (and more)

- All lecture notes, demos, and assignments will be distributed as notebook files

Page 19: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Jupyter Notebook- You can optionally install a notebook server on your own

computer for convenience

- See http://jupyter.org/install.html — either JupyterLab & “Classic” Jupyter Notebook are fine (with Python3)

Page 20: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

Interactive Lectures- Lecture notebooks released as 0-point “assignments”

- Open on Mimir (or download into local notebook server) to edit and follow along during class

- Class is usually one long interactive demo. Bring your laptop to follow along!

- Completed notebooks will be posted on the class website

Page 21: Preliminaries - Illinois Institute of TechnologyJupyter Notebook - In-browser Python development platform - “Cells” can contain plain text, code, output (and more) - All lecture

§ Demo