preliminaries - illinois institute of technologyjupyter notebook - in-browser python development...
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/1.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/2.jpg)
- 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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/3.jpg)
- 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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/5.jpg)
- 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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042605/5f51b3a6b0893262a7013e67/html5/thumbnails/21.jpg)
§ Demo