Top Banner
SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1
28

SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

Dec 25, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1011 Software Development 1

SE-1010Dr. Mark L. Hornick

1

Page 2: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

First Quiz

When were the first programmable computers invented and what were they used for?

SE-1010Dr. Mark L. Hornick

2

Page 3: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

First Quiz

When were the first programmable computers invented and what were they used for?

This accounts for 50% of your grade in the course

SE-1010Dr. Mark L. Hornick

3

Page 4: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

Q: What does a computer do?

SE-1010Dr. Mark L. Hornick

4

Page 5: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

5

Jacquard Loom (1806)

Page 6: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

6

Close-up of the Jacquard Loom’s punched cards

Page 7: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

7

The Difference Engine(Charles Babbage, 1823)

The British government needed accurate trig and other tables for ship navigation Used method of finite differences

to compute y = ax7 + bx6 + cx5 + dx4 + ex3 + fx2 + gx + h sin x = x - x3/(3!) + x5/(5!) - x7/(7!) +

... cos x = 1 - x2/(2!) - x4/(4!) - x6/(6!) +

... ex = 1 + x + - x2/(2!) - x3/(3!) -

x4/(4!) + ...

Page 8: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

8

The Analytical Engine(Babbage, 1832 – 1991)

used punched cards (Jacquard) to store machine instructions

modern computer features: sequential control, branching, and looping.

Ada King (a mathematician) created the world’s first program for computing Bernoulli numbers

Page 9: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

What is a (computer) program?

SE-1010Dr. Mark L. Hornick

9

Page 10: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

What is a computer program?

A program is a set of instructions that can be used to solve a problem.

The term algorithm is used to refer to the logic embodied by a particular sequence of instructions.

SE-1010Dr. Mark L. Hornick

10

Page 11: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

11

Tabulating Machine(Herman Hollerith,1890)

Incorporated the punched card concept Hollerith’s company became IBM in 1924

Page 12: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

12

First generation electronic (1937-1946)…

1. Iowa State electronic calculator (Atanasoff/Berry)2. Colossus WWII code breaker (Turing)3. ENIAC, the first gen’l purpose computer (Eckert/Mauchly:1943-

1946) US Army/U-Penn project Calculation of ballistics & trajectories

Reduced trajectory calculations from 20hr to 30s Machine-language

Comparison (of values) Addition Subtraction Multiplication Division Square root

Accommodated up to 20 10-digit decimal numbers Programmed by setting switches & cable connections

Basically a simple programmable calculator dealing with “numbers”

Page 13: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

13

First generation electronic (1944-1953)…

Harvard Mark I Harvard Mark II

First computer bug discovered EDVAC

Stored programs Eckert and Mauchly leave UPenn

Found UNIVAC

Page 14: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

14

1947 - 1949 Instructions stored

internally along with numbers: von Neumann architecture

600 2-digit instructions possible

Transistor invented at Bell Labs

1951 UNIVAC - First commercial

computer Accumulated census data

1953 IBM 701 - First business

computer

Page 15: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

15

Evolution of Modern Computers

1st Generation – vacuum tubes

2nd Generation – transistors, late 1950s

3rd Generation – integrated circuits, early 1960s

4th Generation – computer chips, silicon chips, mid 1970s (microcomputer, “computer on a chip”)

5th Generation – Networks, LAN, WAN, Internet, Cloud Computing

Page 16: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

What is a computer programming language?

SE-1010Dr. Mark L. Hornick

16

Page 17: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

What is a computer programming language?

Specially defined words, grammar, and punctuation that a computer “understands”

Programming languages are used to form the instructions that can be used by the computer to solve a problem.

SE-1010Dr. Mark L. Hornick

17

Page 18: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

Time for a Class Exercise

SE-1010Dr. Mark L. Hornick

18

Page 19: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE Focus Dr. Mark L. Hornick

19

Computer Languages in the era of “Big Computers”

1954 – FORTRAN developed at IBM A language for “Scientific” calculations

1958 - Cobol language developed by Grace Hopper A language for Accounting and Business computations

1963 - BASIC developed at Dartmouth U A simple language for teaching students

Page 20: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE Focus Dr. Mark L. Hornick

20

In the 1960’s, Bell Labs created Unix and then decided they needed a “Systems” language to make it portable:

1963 to 1978 – K&R C (B. Kernigham & D. Ritchie @ Bell Labs) CPL, BCPL, B, and finally C “Systems” language doubles as “Scientific”

language C released publicly in 1978 – programmers

worldwide fall in love with it, despite it’s quirks

1970 – Pascal (N. Wirth @ ETH-Zurich) “Stuctured” language for teaching students

good programming technique Popular until about 2000

1983 – C++ (B. Stroustroup @ Bell Labs) “Object-oriented” version of C First widely-used OO language (not first OO lang) Still very popular & widely used; available on

many platforms

Page 21: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE Focus Dr. Mark L. Hornick

21

Sun vs. Microsoft:Java and C#

1995: The Java language was designed by Sun Microsystems Inc. for use in embedded consumer-electronic applications, like toasters. The evolution of the Java language is

managed by Sun, and is available on multiple platforms.

2000: The C# programming language, developed and owned by Microsoft, is very similar to Java. It is, however, proprietary to Microsoft and

generally available only on MS platforms.

Page 22: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

Why Java??Java is one of the best “modern” programming languages in widespread use.

Java is used in a broad variety of real applications, such as:

Websites (www.noaa.gov)

Mobile application development Google’s Android mobile phone www.android.com

Desktop applications Limewire www.limewire.com

Azureus/Vuze www.vuze.com

SE Focus Dr. Mark L. Hornick

22

Page 23: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

23

Course Objectives

Understand basic aspects of the object-oriented programming model.

Understand and apply basic high-level programming language (i.e. Java) syntax.

Be able to design and implement small Java programs.

Be able to use existing Java class libraries.

Page 24: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

24

Essential Information

Instructor: Dr. Mark L. Hornick email: [email protected] web: http://people.msoe.edu/~hornick/ webCT: webct.msoe.edu Office: L341 Phone: 277-2417

Page 25: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

Things your mom would tell you to do

1. Bookmark the SE1011 website:http://people.msoe.edu/~hornick/Courses/se1011/index.htm

2. Attend all classesIt’s mandatory

3. Keep your laptop computers closed during lectures

4. Do the homeworkIt affects your grade

5. Get started early on lab assignments

6. Ask questions (participate)SE-1010

Dr. Mark L. Hornick25

Page 26: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-2030Dr. Mark L. Hornick

26

Grading policy(see http://people.msoe.edu/~hornick/Courses/Course Policies.htm )

The grading formula applies only to those students who have successfully met the objectives of this course.

There is a 10% per business day (1 weekend = 1 day) late penalty for all written work. Any work more than 5 days late will receive a 0 grade.

You must ultimately complete all work in order to pass the course.

You are encouraged to discuss homework and programming assignments with your fellow students, however, each of you is responsible for doing and turning in your own work, unless otherwise specified. Cheating is not tolerated and can result in a failing grade.

Page 27: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

27

Labs and Quizzes Labs are generally due 11pm the day prior to

the following lab, but…

…specific info will be posted on the website

Quizzes (~1 per week) will generally be given at the beginning of labs

Page 28: SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.

SE-1010Dr. Mark L. Hornick

28

Plan ahead for labs Labs constitute a significant part of your grade. Expect to spend additional time outside of the lab session

working on your lab assignments