CS 410: A Challenging and Transformative Class by Dave Eckhardt, Slides of Computers and Information technologies

An insight into the cs 410 class taught by dave eckhardt. The class is described as transformative, hard, and requiring genuine achievement. Students are expected to understand various concepts such as operating systems, concurrency, and debugging. The document also emphasizes the importance of academic integrity and the consequences of failing to meet the class's expectations.

Typology: Slides

2010/2011

Uploaded on 10/07/2011

rolla45
rolla45 🇺🇸

4

(6)

133 documents

1 / 37

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Boot Camp
Dave Eckhardt
de0u@andrew.cmu.edu
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Partial preview of the text

Download CS 410: A Challenging and Transformative Class by Dave Eckhardt and more Slides Computers and Information technologies in PDF only on Docsity!

Boot Camp

Dave Eckhardt

[email protected]

Query

Who has a class that conflicts with the 410

lecture?

  • (^) Contact me after class (big potential for trouble)

Source code

The purpose of code is for people to read

  • (^) By a reviewer / security auditor
  • (^) By your group
  • (^) By your manager
  • (^) By your successor
  • (^) By you six months later (6 hours later if no sleep) ●

Oh, yeah, the compiler reads it too

This is a Transformative Class

Genuine achievement, available to you

  • (^) What is an OS, really?
  • (^) Concurrency (locks, races, deadlock)
  • (^) What is VM, really?
  • (^) Process model, C run-time model
  • (^) Interrupts
  • (^) Design synthesis, planning
  • (^) Serious competence in debugging! ●

If that sounds like a lot, it is!

The Shape of a Class

Effort/Excitement by Project Yow! Focus... Feasible! Workable Groovin' Hard! Challenge!! Done!!!

Effort/Excitement by Project

  • 15-
    • P
    • P
    • P
    • P
    • P

Implications

“Trouble with one assignment” is real trouble

  • (^) You can't just “swing at the next ball” ● (^) The next ball is two to four times faster!
  • (^) Each project is training for the next (like Math) ● (^) If you skip part of one project, the next one might be unachievable. ●

So...

  • (^) Aim to do really well on P ● (^) Start the first day ( for sure by the second)
  • (^) Then recover, aim to do even better on P

Good News

Good news...it can be done!

  • (^) Spring 2010 ● (^) Two groups dropped ● (^) One “lone wolf” dropped ● (^) Two groups half-dropped (merged into one, finished ok!) ● (^) One group split ● (^) All other groups turned in working kernels ●

Remainder of this lecture

  • (^) How to get from here to there

Academic Integrity

“We expect you to fail”

  • (^) It is possible to fail an assignment and pass the class ● (^) (If you come from another university this may be new)
  • (^) It is not possible to copy or cheat on an assignment and pass the class ● (^) Beyond failing, other dreadful things happen too - (^) Dean of Student Affairs - (^) Scholarship problems - (^) Graduation delays ● (^) Please don't turn a simple failure into a giant catastrophe

Work Flow – You may be used to...

Assignment handout ⇒ code outline

Compilation implies correctness

Graded by a script

All done!

  • (^) Never use it again
  • (^) Delete it at end of semester ●

Total opposite of real life

Surprises

“Code complete” means “I am far behind”

  • (^) Merge can take three days
  • (^) Then you start to find bugs (1-2 weeks) ●

Code with “the right idea” will immediately crash

  • (^) If you're lucky! ●

This is not a “basic idea is right” class

  • (^) You can't ship “basic ideas” to customers
  • (^) Understand all details– then you have the basic idea

On Debugging

As soon as we started programming, we

found to our surprise that it wasn't as easy to

get programs right as we had thought.

Debugging had to be discovered. I can

remember the exact instant when I realized

that a large part of my life from then on was

going to be spent in finding mistakes in my

own programs.

  • (^) Maurice Wilkes (1949)

What Does A Bug Mean?

“It tells me 'triple fault' – why??”

  • (^) Research: 20 minutes
  • (^) Think: 20 minutes
  • (^) Debug: 2 hours.
  • (^) ...three times. ●

May need to write code to trap a bad bug

  • (^) Asserts or more-targeted debug module ●

Then you will find your design was wrong!

  • (^) Don't be shocked – this is part of 410 / life

“All Done”?

Finally, when you're done...

  • (^) You will use your code for the next assignment!
  • (^) We will read it (goal: every line)