Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdLien Kuipersё Laatst gewijzigd meer dan 9 jaar geleden
1
Mobiel programmeren Jeroen Fokker
2
www.cs.uu.nl / docs / vakken / b1mop
Wat heb je nodig? Collegediktaat In afleveringen downloaden en evt.uitprinten Laptop – bring your own device Microsoft Visual Studio Community 2015 Met Xamarin.Android plugin Android device eventueel gesimuleerd in software / docs / vakken / b1mop
3
Wat gaan we doen? Theorie (16 colleges + 2 deeltentamens)
Praktijk (16 keer, 3 inleveropdrachten) Oefening (4 werkcolleges) college prakt. college prakt. college prakt. college prakt. college prakt. 1 werkcoll college prakt. 1 college prakt. 1 college prakt. 1 college prakt. 2 werkcoll college prakt. 2 Tent. 1 college prakt. 2 college prakt. 2 college prakt. 3 college prakt. 3 werkcoll college prakt. 3 college prakt. 3 werkcoll Tent. 3
4
Groeps-indeling Niet zoals in Osiris, maar: 017: kappa, lambda
020: mu, pi 106: rho, sigma 175: tau, phi, psi, omega, overige 1ejaars 103: tweedejaars, keuzevak, premaster 109: ouderejaars
5
Verplichtingen Meedoen aan 2 deeltentamens
Inleveren van 3 practicumopgaven (in teams van 2) Als je er eentje ontbreekt of 40/60-gemiddelde is <5: Aanvullende toets in maart Als je er eentje ontbreekt of 20/30/50-gemiddelde is <5: Aanvullende opdracht in periode 3
6
Hoofdstuk 1 Mobiel Programmeren
7
om opdrachten uit te voeren
Programmeren Von Neumann’s computer-model (1950): computer = + geheugen om waarden op te slaan processor om opdrachten uit te voeren
8
Opdrachten Opdracht: voorschrift om het geheugen te veranderen
Programma: lange reeks opdrachten, die één voor één worden uitgevoerd door de processor opdrachten staan zelf ook in het geheugen maar veranderen zichzelf niet
9
Programmeertalen Programmeertaal: notatie voor programma’s
sinds 1945: 4000 verschillende talen gepubliceerd
10
Geschiedenis van computers: ~1820-1871
Charles Babbage Difference Engine (ontwerp 1821, bouw 1991) Analytical Engine (ontwerp )
11
Geschiedenis van telefonie: 1875
Thomas Edison Alexander Bell microfoon telefoon
12
Geschiedenis van telefonie: 1880
Commerciële telefoonnetten 1881: Amsterdam 50 abonnees, 1882 Rotterdam,Arnhem; 1883 Groningen,DenHaag; 1884 Utrecht
13
Geschiedenis van telefonie: 1890
Interlocaal telefoneren 1888 Interlokaal Amsterdam-Haarlem
14
Geschiedenis van telefonie: 1922
Automatische centrale, kiesschijf 1822 Automatische central, 1829 automatische interlokale verbinding; 1831 telefooncel
15
Geschiedenis van computers&programmeren: 1936
Alan Turing: On computable numbers, with an application to the Entscheidungs- problem 1822 Automatische central, 1829 automatische interlokale verbinding; 1831 telefooncel
16
Geschiedenis van computers&telefonie: 1941-44
1822 Automatische central, 1829 automatische interlokale verbinding; 1831 telefooncel Bomba (Engels/Poolse crypto-cracking machine) Enigma (Duitse versleutelingsmachine)
17
Geschiedenis van computers&programmeren: 1940-45
Z3 (Dld 1941) Eniac (USA 1943) “Electronic Numeric Integrator And Computer”. Z3 (Duitsland 1941) heette oorspronkelijk V3 maar dat gaf verwarring met raketten; werd niettemin gebombardeerd – de foto is reconstructie uit de 60er jaren met ontwerper Konrad Zuse; had een heuse programmeertaal “PlanKalkül”, maar dat wist na de oorlog niemand meer. Colossus, Engels apparaat voor decodering van de Enigma – eigenlijk geen computer, want niet programmeerbaar. ENIAC (USA 1943) Colossus (Eng 1943)
18
Geschiedenis van computers&programmeren: 1945-50
Programmeertaal: Machinetaal Mark-I (Eng 1948) Illiac-II, Mark-I Illiac (USA 1948)
19
Geschiedenis van computers&programmeren: 1950-55
Programmeertaal: Assembler Univac (1951) “Universal automatic Computer” Univac (1951)
20
Geschiedenis van telefonie: 1950-60
Univac (1951) “Universal automatic Computer” Eerste autotelefoons
21
Geschiedenis van computers&programmeren: 1955-60
Programmeertaal: Fortran NCR304 (1957) fabrikant “National Cash Registers” Zebra (“Zeer Eenvoudige Binaire Reken Automaat”), gebouwd bij het Mathematich Centrum in A’dam (voorloper van het CWI) NCR304 (1957) Zebra (NL, 1958)
22
Geschiedenis van computers&programmeren: 1960-65
Programmeertaal: Cobol Algol Lisp IBM mainframe (“International Business Machines”), en Dec (Digital Equipment Company) PDP-1 (“Programmable Data Processor”) (minicomputer, ca $ ) IBM PDP-1
23
Geschiedenis van telefonie: 1960-65
Univac (1951) “Universal automatic Computer” Automatisch telefoonnet voltooid Commerciële radiotelefonie
24
Geschiedenis van computers&programmeren: 1965-70
Programmeertaal: Basic LINC-8 (1966) PDP-8 (1966) LINC-8 (1966) PDP-8 (1966)
25
Geschiedenis van computers&programmeren: 1970-75
Programmeertaal: Pascal PDP-11/40 (1970) (minicomputer, $20.000) PDP-11 (1970)
26
Geschiedenis van computers&telefonie: 1975-80
Apple-II (1977) (microcomputer, $2000) Apple-][ (1977) Motorola Dyna-Tac (1973)
27
Geschiedenis van computers&programmeren: 1980-85
Programmeertaal: C Vax-11 (1981) VAX-11 (80er jaren), IBM PC (1981) “Personal computer”, commodore64 (1984) spelcomputer Commodore64 (1984) IBM-PC (1981)
28
Geschiedenis van computers&programmeren: 1985-90
Apple Mac (1985) Windows 2.0 (1988)
29
Geschiedenis van telefonie: 1990-95: “2G” GSM-netwerk
1992 Kermit Greenpoint Nokia (1996) IBM Simon (1994) Kermit (1992)
30
Geschiedenis van telefonie: 1995-2000 “PDA”
1992 Kermit Greenpoint Nokia (2000)
31
Geschiedenis van computers&programmeren: 1990-95
Programmeertaal: C++ Moscaic (1994), XS4all eerste NL internetprovider (1993), windows 3.1
32
Geschiedenis van computers&programmeren: 1995-2000
Programmeertaal: Java Netscape ( ), Google (1998) SGI Onyx (1996)
33
Geschiedenis van computers&programmeren: 2000-2005
Windows-XP, Apple OS-X
34
Geschiedenis van computers&programmeren: 2000-2005
Programmeertaal: C# PHP Windows-XP, Apple OS-X
35
Geschiedenis van computers&telefonie: 2005-2010
Netbook, iBook, iPhone
36
Geschiedenis van telefonie&programmeren: 2005-2010
Apple iPhone (2007) HTC Dream (2008) Windows Phone (2010) Netbook, iBook, iPhone Programmeertaal: Objective C Swift Programmeertaal: Java C# Programmeertaal: C++ C#
37
Geschiedenis van computers&programmeren: 2010-2015
iPad
38
Geschiedenis van telefonie: 2010-2015
iPad iOS 8.4 (2015) Android 6.0 (2015) Windows 8.1 (2014)
39
Geschiedenis van computers, telefonie, programmeren: 2015-2020
E-health iPad Self-driving car
40
Geschiedenis van programmeertalen
1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 Assembler Mach.taal Fortran Algol Basic Pascal Simula C C++ Java Cobol SQL Lisp Prolog Haskell PHP Perl Python C# Swift
41
Geheugencapaciteit 65er jaren: 8 kB RAM ponskaarten
70er jaren: 16 kB RAM tape 80er jaren: 64 kB RAM floppy-disk 85er jaren: 640 kB RAM 90er jaren: 4 MB RAM harddisk 95er jaren: 16 MB RAM CD 00er jaren: 128 MB RAM DVD 05er jaren: 1GB RAM 10er jaren: 8GB RAM Stick / Cloud
42
Programmeer-problemen
vroeger: hoe kan ik het geheugen zo efficiënt mogelijk gebruiken? nu: hoe kan ik die overvloed van geheugen nog overzien? Mobiel: Hoe spaar ik mijn batterij?
43
Indeling van het geheugen
plaats in het geheugen met een naam groepje variabelen dat bij elkaar hoort variabele object object groepje objecten dat bij elkaar hoort
44
Indeling van het programma
voorschrift om het geheugen te veranderen groepje opdrachten dat bij elkaar hoort opdracht methode klasse groepje methoden dat bij elkaar hoort namespace groepje klassen dat bij elkaar hoort
45
Programmeer-paradigma’s
Imperatief Declaratief Assembler Fortran Basic Functioneel Lisp Procedureel Algol Swift Haskell Pascal C Object georiënteerd Logisch Simula Prolog C++ Java C#
46
Vertalen 1/5: Assembler Een assembler vertaalt machine-specifieke broncode naar objectcode, die vervolgens kan worden uitgevoerd .asm sourcecode voor processor 1 Assembler voor processor 1 .exe machinecode voor processor 1 .asm sourcecode voor processor 2 Assembler voor processor 2 .a machinecode voor processor 2
47
Vertalen 2/5: Compiler Een compiler vertaalt de broncode naar machine-specifieke objectcode, die vervolgens kan worden uitgevoerd .cpp sourcecode Compiler voor processor 1 .exe machinecode voor processor 1 Compiler voor processor 2 .a machinecode voor processor 2
48
Vertalen 3/5: Interpreter
Een processor-specifieke interpreter leest de broncode en voert die uit .php sourcecode Interpreter voor processor 1 Interpreter voor processor 2
49
Vertalen 4/5: Compiler+Interpr.
Een universele compiler vertaalt de broncode naar een bytecode, die gemakkelijk kan worden geïnterpreteerd .java sourcecode .class bytecode Interpreter voor processor 1 Compiler Interpreter voor processor 2
50
Vertalen 5/5: Compiler+Compiler
Een compiler vertaalt de broncode naar een intermediate language , die vervolgens wordt gecompileerd .cs sourcecode .il Intermediate language Compiler voor processor 1 .exe machinecode voor processor 1 Compiler .a machinecode voor processor 2 Compiler voor processor 2
51
Vertalen 5/5: Compiler+Compiler
Een compiler vertaalt de broncode naar een intermediate language , die vervolgens wordt gecompileerd .cs sourcecode Compiler .il Intermediate language Compiler voor processor 1 .exe machinecode voor processor 1 .vb sourcecode .a machinecode voor processor 2 Compiler voor processor 2 Compiler
52
“Code”
53
“Code”
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.