Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering.

Similar presentations


Presentation on theme: "CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering."— Presentation transcript:

1 CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering

2 Today’s Lecture Discuss Computer Programming As Art Introduce Software Engineering What “Software Engineering” means What a Software Engineer does Topics included in Software Engineering

3 Donald E. Knuth Received every possible award in computer science Wrote volume of books called Art of Computer Programming First created TeX typesetting language and METAFONT font design system Major figure in algorithmic analysis, programming languages, and computer programming Major contributor to theoretical computer science

4 Half the battle is showing up Is Computer Science an art or science? Why or why not?

5 Software Engineering Book’s definition of Software Engineering [D]iscipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the client’s needs. Furthermore, the software must be easy to modify when the user’s needs change. Does this sound like art or science?

6 Software Engineering Programs often late, over budget, and buggy Led to 1967 NATO study group & 1968 conference Referred to as “software crisis” Note: Microsoft not created until 1975 Make producing software like making hardware, building bridges, or other instances of applied science Give rigor of other disciplines of engineering

7 40 Years of Software Engineers From 9236 projects completed in 2004

8 Software Engineer What does a Software Engineer do? How does this differ from a Programmer?

9 Software Engineering Topics Economics: Should we switch to faster coding method? What is included in “coding”? How were these experiments carried out? Consider costs of training Difficulty to make this switch Effect on overall productivity, finding & fixing bugs

10 Software Engineering Topics Client Relationships: How to determine what they want? Settling on requirements is incredibly hard But sooner a problem is found, easier it is to fix

11 Software Engineering Topics Psychology: What is the most productive way to get a group of ____ individuals to work on a project as a team?

12 Software Engineering Topics Abnormal Psychology: What is the most productive way of getting individuals to work on a project as a team, given that they chose a field where they spend all day in front of a computer?

13 Software Engineering Topics Warranties: We cannot prove a program will terminate. How do we find all the bugs? A bug occurs at the client site. How do we know what caused the bug? Can we prevent it from occurring again?

14 Software Engineering Topics Maintenance: Is it acceptable to put out a program knowing you will need users to add patches? Legal, Ethical, and Social Issues: We cannot be legally prevented from reselling a book, but can be prevented from giving away software that we no longer use. Why? Is this a good thing?

15 For Next Lecture Monday’s lecture will Look at how software is really developed Discuss what is done in each stages of the software lifecycle Give you a better idea of why Microsoft and EA keep putting out lousy software


Download ppt "CSC 395 – Software Engineering Lecture 2: Programming As Art & Intro to Software Engineering."

Similar presentations


Ads by Google