CSS 390: Notes from Lecture 1 (DRAFT)

Administrivia

Introduction

What is Engineering?

What is Software?

"Programs and other artifacts intended to be used and maintained by persons other than the original programmers"

This definition highlights several key points:

Scale matters: the world is qualitatively different at different granularity:

Lines of Code (LOC) Required Discipline
1000 math
10,000 science
100k engineering
1M politics
10M mob psychology

All that stuff you learned about classes and modules and decomposition:

If a developer can maintain a sustained rate of 100 lines of debugged code per day (hard to do!), a 100,000-line system requires 1000 person-days, approximately 5 person-years.

Footnotes