• Nu S-Au Găsit Rezultate

13 (14) In this decade, IBM sold 140 computers ◦ Fortran ◦ LISP 14 (15) Computers in the world: O(1e2

N/A
N/A
Protected

Academic year: 2022

Share "13 (14) In this decade, IBM sold 140 computers ◦ Fortran ◦ LISP 14 (15) Computers in the world: O(1e2"

Copied!
34
0
0

Text complet

(1)

Cursul 07 – 29 martie

(2)

Alan Turing

'On computable numbers, with an application to the Entscheidungsproblem‘

First code we could recognize

Binary

Ran on electronic machines

Uses variables, macros, subroutines

2

(3)

Bletchley Park – The Bombe

Used to crack Enigma Code

Created using

electro-mechanical relays

Clock rate ~ 100 ms

3

(4)

Colossus- first programmable computer

4

(5)

Designed by Alan Turing

Worked in base 32

Used Cathode Ray Tubes for memory

5

(6)

6

(7)

Turing writes code

Uses binary base 32

Uses add and not

Floating point

Subroutines

Stack (for data and subroutine return addresses)

and many more

7

(8)

“We shall need a great number of

mathematicians of ability”, “there will

probably be a good deal of this work to be done” – Turing, Lecture on the ACE

“One of our difficulties will be the

maintenance of an appropriate discipline, so that we do not lose track of what we a re

doing” – Turing, Lecture on the ACE

8

(9)

Computers in the world: O(1)

Programmers in the world: O(1)

9

(10)

One of the first working computers

Vacuum tubes for processing

12 Mercury Delay Lines for memory (audio)

32 instructions/words of 32 bits per line

Frequency ~ 1Mhz

10

(11)

Memory is expensive

1-10 $ per BIT

Cheaper versions: Magnetic-core memory

11

(12)

12

(13)

John McCarthy – LISP

(defun factorial (n)

(if (= n 0) 1

(* n (factorial (- n 1)))))

13

(14)

In this decade, IBM sold 140 computers

Fortran

LISP

14

(15)

Computers in the world: O(1e2)

Programmers in the world: O(1e3)

Programmers were:

Mathematicians

Engineers

Scientists

Etc.

15

(16)

16

More than 10000 IBM 1401 computers sold in the 1960s

Decimal Machine

(17)

Computers in the world: O(1e4)

Programmers in the world: O(1e5)

In less than 20 years, the number of programmers increased by a factor of 100000

Though most were not mathematicians, they were experienced, disciplined professionals

17

(18)

IBM produces 1000 IBM 360 each month

18

(19)

First object oriented programming language

Created by Ole-Johan Dahl, Kristen Nygard

Objects

Classes

Inheritance

Virtual procedures

Garbage collection

etc.

19

(20)

Edsger Dijkstra

(physicist) – GOTO Considered Harmful

Beginning of structured

programming

20

(21)

Ken Thompson, Dennis Ritchie, mathematicians

21

(22)

Computers in the world: O(1e5)

Programmers in the world: O(1e6)

Tens of thousands of CS and EE graduates (among the first series)

All were young

Almost all male

22

(23)

Until now

Programmers were disciplined

Didn’t need much management

Could manage their own time, work in groups and communicate

They understood deadlines

They used a form of Agile development

Agile is the process used by disciplined professionals in the wild

23

(24)

Young, inexperienced programmers, need top down supervision

Average age of programmers drops by 10 years

Winston Royce describes the waterfall development model

an example of a flawed, non-working model

24

(25)

Number of programmers increases

exponentially (roughly doubles every 5 years)

Tens of millions of programmers

Half of them have less than 5 years experience

25

(26)

Hardware

Demographichs

26

(27)

Software

27

(28)

Original programmers start retiring

First generation of career programmers are now about 40 years old

These career programmers foresee the need for change

Scrum – Schwaber, Beedle, DeVos, et al.

XP – Beck, Cunningham

FDD – Coad

Crystal - Cockburn

28

(29)

29

(30)

Working with fixed time spans

Customer communication

Collaboration

Estimating in relative units

Continuous integration

etc.

Agile is NOT a process

It is a set of promises

30

(31)

The most technical

TDD

Acceptance tests

Simple design

Refactoring

31

(32)

Turing mentioned discipline

Agile is about

Discipline

Craftsmanship

Professionalism

Business understands discipline but does not understand computer programmers or our

disciplines

32

(33)

Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers

themselves.

A response to the problems of the

mainstream software industry, including financial concerns over developer

accountability.

A previously rigorous approach becomes increasingly engineering in nature

33

(34)

All images and examples courtesy of Robert Cecil Martin and Wikimedia Commons

Robert C. Martin, Engineering Notebook columns for The C++ Report

Robert C. Martin, The Future of Programming

34

Referințe

DOCUMENTE SIMILARE

• Hazard sources identification ⇒ elimination (Some specific faults prevented or removed.).. • Traditional QA (but with

› Provide a uniform environment to AUTOSAR Software Components to make the implementation of the software components independent from communication mechanisms and channels. › The

 Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other7. attributes

At this level of abstraction the model describes important characteristics of the domain in terms of classes and their attributes, but without making any platform specific choices

Coverage and Usage Testing Based on FSMs and Markov Chains.. • Finite-State

 Fiecare grup de lucru va negocia relativ la ceea ce va face și relativ la ceea ce a făcut va primi punctajul pe care-l merită.  Acest punctaj va fi împărțit apoi de Team

• Testarea aplicatiei pentru a verifica daca functionalitati existente sunt corecte dupa adaugarea de noi functionalitati in aplicatie. •

The number of vacancies for the doctoral field of Medicine, Dental Medicine and Pharmacy for the academic year 2022/2023, financed from the state budget, are distributed to