SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.
-
Upload
esther-angela-clarke -
Category
Documents
-
view
218 -
download
1
Transcript of SE-1011 Software Development 1 SE-1010 Dr. Mark L. Hornick 1.
SE-1011 Software Development 1
SE-1010Dr. 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
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
Q: What does a computer do?
SE-1010Dr. Mark L. Hornick
4
SE-1010Dr. Mark L. Hornick
5
Jacquard Loom (1806)
SE-1010Dr. Mark L. Hornick
6
Close-up of the Jacquard Loom’s punched cards
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!) + ...
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
What is a (computer) program?
SE-1010Dr. 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-1010Dr. Mark L. Hornick
10
SE-1010Dr. Mark L. Hornick
11
Tabulating Machine(Herman Hollerith,1890)
Incorporated the punched card concept Hollerith’s company became IBM in 1924
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”
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
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
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
What is a computer programming language?
SE-1010Dr. 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-1010Dr. Mark L. Hornick
17
Time for a Class Exercise
SE-1010Dr. Mark L. Hornick
18
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
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
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.
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
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.
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
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
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.
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
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