Preliminaries CS 331: Data Structures and Algorithms Michael Saelee - - PowerPoint PPT Presentation

preliminaries
SMART_READER_LITE
LIVE PREVIEW

Preliminaries CS 331: Data Structures and Algorithms Michael Saelee - - PowerPoint PPT Presentation

Preliminaries CS 331: Data Structures and Algorithms Michael Saelee <lee@iit.edu> Computer Science Science Michael (Sae) Lee - lee@iit.edu - http://moss.cs.iit.edu - Office: SB 226A Computer Science Science Agenda - Course


slide-1
SLIDE 1

Preliminaries

CS 331: Data Structures and Algorithms Michael Saelee <lee@iit.edu>

slide-2
SLIDE 2

Computer Science Science

  • lee@iit.edu
  • http://moss.cs.iit.edu
  • Office: SB 226A

Michael (Sae) Lee

slide-3
SLIDE 3

Computer Science Science

  • Course overview & Administrivia
  • Prerequisites
  • Topics & Resources
  • Grading
  • Dev environment & Class procedures

Agenda

slide-4
SLIDE 4

Computer Science Science

Data Structures

  • How do we store, organize, and retrieve data
  • n a computer?

& Algorithms

  • How can we efficiently (in space/time) carry
  • ut some typical data processing operations?
  • How do we analyze and describe their

performance?

slide-5
SLIDE 5

Computer Science Science

  • I assume you are …
  • fluent in some programming language
  • familiar with procedural & OO paradigms
  • comfortable with development processes:
  • compilation, debugging, testing

Prerequisites

slide-6
SLIDE 6

Computer Science Science

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
slide-7
SLIDE 7

Computer Science Science

Topics

  • Python crash course
  • Algorithmic analysis
  • Linear data structures (Lists, Stacks, Queues)
  • Hashing and Hashtables (aka Maps)
  • Recursion and Trees
slide-8
SLIDE 8

Computer Science Science

  • 1. Course website:

moss.cs.iit.edu/cs331

  • static information
  • lecture calendar, lab

writeups, slides, 
 screencasts, links, etc.

Online resources

slide-9
SLIDE 9

Computer Science Science

  • 2. Piazza: discussion forum
  • all class-related questions
  • monitored by TAs
  • scales way better than e-mail
  • announcements, links to additional

readings & resources

Online resources

slide-10
SLIDE 10

Computer Science Science

  • 3. Blackboard
  • only for grade reporting!

Online resources

slide-11
SLIDE 11

Computer Science Science

  • 4. Live online discussion forum for 


remote students

  • mechanism TBA (Slack?) by TA
  • virtual lab session + office hours

Online resources

slide-12
SLIDE 12

Computer Science Science

Supplements

  • The Python Tutorial (docs.python.org/3/)
  • Problem Solving with Algorithms and Data

Structures Using Python

slide-13
SLIDE 13

Computer Science Science

Grading

  • 40% Machine Problems
  • 20% Quizzes / Self-evaluation
  • 40% Exams (3 total: 2 midterms + final)
slide-14
SLIDE 14

Computer Science Science

On Exams and Scores

  • Exams are all cumulative
  • Higher scores on later exams will replace

lower-scoring, earlier exams

slide-15
SLIDE 15

Computer Science Science

>> scores = [60, 80, 75] >> [max(scores[i:]) for i in range(3)] [80, 80, 75]
 >> scores = [75, 80, 100] >> [max(scores[i:]) for i in range(3)] [100, 100, 100]

slide-16
SLIDE 16

Computer Science Science

Machine Problems

  • Programming assignment(s) every 1-2 weeks
  • All assignments are retrieved and submitted

via the class Jupiter Notebook server: braeburn.cs.iit.edu

  • Log in using @hawk.iit.edu Google ID
slide-17
SLIDE 17

Computer Science Science

Jupyter Notebooks

  • In-browser Python development platform
  • “Cells” can contain plain text, code,
  • utput (and more)
  • All lecture notes, demos, and assignments

will be distributed as notebook files

slide-18
SLIDE 18

Computer Science Science

Jupyter Notebooks

  • You should install a notebook server locally

for convenience and in-class work

  • Install via Anaconda (with Python3) — 


see http://jupyter.org/install.html

  • But all work must be tested and submitted on the

class server! (Lab 1 will go over this)

slide-19
SLIDE 19

Computer Science Science

Class procedure

  • Review reading before arriving to class
  • Download starter notebooks before class
  • Class will consist of lots of interactive demos

(code along with me!)

  • Completed notebooks are always posted
slide-20
SLIDE 20

Computer Science Science

For Friday

  • Start reading chapter 1 of PythonDS
  • Install Jupyter notebook server locally (demo

in a moment)

  • Open up “Language Intro” notebook to

verify your setup works

  • Log in to class server to confirm account