Course Introduction

Download Report

Transcript Course Introduction

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-1010
Dr. Mark L. Hornick
2
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-1010
Dr. Mark L. Hornick
3
Q: What does a computer do?
SE-1010
Dr. Mark L. Hornick
4
Jacquard Loom (1806)
SE-1010
Dr. Mark L. Hornick
5
Close-up of the Jacquard
Loom’s punched cards
SE-1010
Dr. Mark L. Hornick
6
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!) + ...
SE-1010
Dr. Mark L. Hornick
7
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
SE-1010
Dr. Mark L. Hornick
8
What is a (computer) program?
SE-1010
Dr. Mark L. Hornick
9
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-1010
Dr. Mark L. Hornick
10
Tabulating Machine
(Herman Hollerith,1890)


Incorporated the punched card concept
Hollerith’s company became IBM in 1924
SE-1010
Dr. Mark L. Hornick
11
First generation electronic
(1937-1946)…
1.
2.
3.
Iowa State electronic calculator (Atanasoff/Berry)
Colossus WWII code breaker (Turing)
ENIAC, the first gen’l purpose computer (Eckert/Mauchly:19431946)
 US Army/U-Penn project
 Calculation of ballistics & trajectories


Machine-language







Comparison (of values)
Addition
Subtraction
Multiplication
Division
Square root
Accommodated up to 20 10-digit decimal numbers


Reduced trajectory calculations from 20hr to 30s
Programmed by setting switches & cable connections
Basically a simple programmable calculator dealing with “numbers”
SE-1010
Dr. Mark L. Hornick
12
First generation electronic (19441953)…


Harvard Mark I
Harvard Mark II


EDVAC


First computer bug discovered
Stored programs
Eckert and Mauchly leave UPenn

Found UNIVAC
SE-1010
Dr. Mark L. Hornick
13
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
SE-1010
Dr. Mark L. Hornick
14
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
SE-1010
Dr. Mark L. Hornick
15
What is a computer
programming language?
SE-1010
Dr. Mark L. Hornick
16
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-1010
Dr. Mark L. Hornick
17
Time for a Class Exercise
SE-1010
Dr. Mark L. Hornick
18
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
SE Focus
Dr. Mark L. Hornick
19
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
SE Focus
Dr. Mark L. Hornick
20
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.
SE Focus
Dr. Mark L. Hornick
21
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
Course Objectives




Understand basic aspects of the objectoriented 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.
SE-1010
Dr. Mark L. Hornick
23
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
SE-1010
Dr. Mark L. Hornick
24
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 classes
It’s mandatory
3.
4.
Keep your laptop computers closed during
lectures
Do the homework
It affects your grade
5.
6.
Get started early on lab assignments
Ask questions (participate)
SE-1010
Dr. Mark L. Hornick
25
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.
SE-2030
Dr. Mark L. Hornick
26
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
SE-1010
Dr. Mark L. Hornick
27
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
SE-1010
Dr. Mark L. Hornick
28