Mobiel programmeren Jeroen Fokker.

Slides:



Advertisements
Verwante presentaties
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Advertisements

Objectgeoriënteerd Programmeren in C++
Computers Door: Jelle Smits 3TG erste.
Hoofdstuk 1 Programmeren.
1/1/ / faculty of Computer Science eindhoven university of technology 2IC20:Computersystemen Week 1: inleiding.
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
OOP met Java Sessie 1.
JAVA1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering.
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Processor Hart van de computer.
Programmeerparadigma’s
Inleiding Informatica
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker  Werking van vertolker  Voor- en nadelen.
Hoofdstuk 1 Programmeren.
De processor.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Frank Stalpers en Ad Baars
Herhaling: For, While en Do
Visual Basic .NET voor studenten
Van elektronische rekenmachine tot rekensoftware
1 Inleiding Programmeren in Java Ma 29 januari 2001.
Presentatie Het BIOS (wat is dat) Rondkijken in het BIOS
Microsoft Small Basic Cum 11/01/2009 Rudy. Basic Vroeger beschikten bijna alle homecomputers over basic als programmeertaal voor de gebruiker Altair BASIC.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
MICROCONTROLLERS.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Analoog/Digitaal Analoog Digitaal
Refactoring en Unit Testing. Geschiedenis Hoe maken we complexe code duidelijker? Hoger abstractieniveau –Assembly –“Hogere” programmeertalen –Object-orientatie.
tircms02-p les 1 Operating Systems practicum
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
Hoorcollege 1a Praktische zaken. Gameprogrammeren Doel van het vak: Games programmeren (de game loop, sprites, audio, physics, animatie…) Basisprogrammeertechnieken.
JAVA: een platformonafhankelijke taal
PROGRAMMEREN LOGISCH en FUNCTIONEEL Ik zeg wat ik denk!
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Inleiding Computersystemen
Ca1-1 Les 1: Inleiding Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable techniques.
Programmeren.
BEWERKEN VAN GEGEVENS Programmeertalen.  Machinecode  Assembleertalen  Hogere programmeertalen  Vierde-generatietalen  Objectgeoriënteerde talen.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
7 Databases i&i-conferentie 25 november Databases i&i-conferentie 25 november 2015 Van boek naar interactief 2001: Turing (voorloper Enigma) twee.
1 Software Engineering EINDPROJECT INFORMATICA. SOFTWARE ENGINEERING 2 Managen van grotere softwareprojecten Onstaan uit noodzaak: betrouwbare software.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Turing deel 2 Hoofdstuk 8 Programmeren met Java Objectgeoriënteerd programmeren, klasse Applet, variabelen (primitieve typen en referentie typen), arrays.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
1 K. Werschkull Programmeren in Delphi 7 De ontwikkeling van de computer Programmeertalen Compilers Hoofdstuk 1 Hoofdstuk 1: De ontwikkeling van de computer.
C++ Les 1: introductie. Programmeren Programma’s scripts Websites libraries (Sound, GUI, netwerking…)
Informatica Welkom! maandag 16 November Les B-1.
Webwinkel in het D-cluster van de opleiding Logistiek Ad van Kooten – docent ERP toepassingen  Pract. 1.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Operating Systems Informatica.
Programmeren.
Imperatief programmeren
Arjan Egges & Paul Bergervoet
Aanroep van een methode voert opdrachten uit in de body daarvan
Objectgeoriënteerd Programmeren
Gameprogrammeren: Introductie
Object georiënteerd programmeren
De programmeertaal C++
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Programmastructuur
Programmeren woensdag 4 oktober 2017.
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Hardware en Software dr. Boris Rogge 16 oktober 2003.
Eindproject informatica
Software Development fundamentals
Java Masterclass Sar Maroof.
Software Development fundamentals
Transcript van de presentatie:

Mobiel programmeren Jeroen Fokker

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 www.cs.uu.nl / docs / vakken / b1mop

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

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

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

Hoofdstuk 1 Mobiel Programmeren

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

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

Programmeertalen Programmeertaal: notatie voor programma’s sinds 1945: 4000 verschillende talen gepubliceerd

Geschiedenis van computers: ~1820-1871 Charles Babbage Difference Engine (ontwerp 1821, bouw 1991) Analytical Engine (ontwerp 1830-1870)

Geschiedenis van telefonie: 1875 Thomas Edison Alexander Bell microfoon telefoon

Geschiedenis van telefonie: 1880 Commerciële telefoonnetten 1881: Amsterdam 50 abonnees, 1882 Rotterdam,Arnhem; 1883 Groningen,DenHaag; 1884 Utrecht

Geschiedenis van telefonie: 1890 Interlocaal telefoneren 1888 Interlokaal Amsterdam-Haarlem

Geschiedenis van telefonie: 1922 Automatische centrale, kiesschijf 1822 Automatische central, 1829 automatische interlokale verbinding; 1831 telefooncel

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

Geschiedenis van computers&telefonie: 1941-44 1822 Automatische central, 1829 automatische interlokale verbinding; 1831 telefooncel Bomba (Engels/Poolse crypto-cracking machine) Enigma (Duitse versleutelingsmachine)

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)

Geschiedenis van computers&programmeren: 1945-50 Programmeertaal: Machinetaal Mark-I (Eng 1948) Illiac-II, Mark-I Illiac (USA 1948)

Geschiedenis van computers&programmeren: 1950-55 Programmeertaal: Assembler Univac (1951) “Universal automatic Computer” Univac (1951)

Geschiedenis van telefonie: 1950-60 Univac (1951) “Universal automatic Computer” Eerste autotelefoons

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)

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 $100.000) IBM PDP-1

Geschiedenis van telefonie: 1960-65 Univac (1951) “Universal automatic Computer” Automatisch telefoonnet voltooid Commerciële radiotelefonie

Geschiedenis van computers&programmeren: 1965-70 Programmeertaal: Basic LINC-8 (1966) PDP-8 (1966) LINC-8 (1966) PDP-8 (1966)

Geschiedenis van computers&programmeren: 1970-75 Programmeertaal: Pascal PDP-11/40 (1970) (minicomputer, $20.000) PDP-11 (1970)

Geschiedenis van computers&telefonie: 1975-80 Apple-II (1977) (microcomputer, $2000) Apple-][ (1977) Motorola Dyna-Tac (1973)

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)

Geschiedenis van computers&programmeren: 1985-90 Apple Mac (1985) Windows 2.0 (1988)

Geschiedenis van telefonie: 1990-95: “2G” GSM-netwerk 1992 Kermit Greenpoint Nokia 1610 (1996) IBM Simon (1994) Kermit (1992)

Geschiedenis van telefonie: 1995-2000 “PDA” 1992 Kermit Greenpoint Nokia 3310 (2000)

Geschiedenis van computers&programmeren: 1990-95 Programmeertaal: C++ Moscaic (1994), XS4all eerste NL internetprovider (1993), windows 3.1

Geschiedenis van computers&programmeren: 1995-2000 Programmeertaal: Java Netscape (1994-1998), Google (1998) SGI Onyx (1996)

Geschiedenis van computers&programmeren: 2000-2005 Windows-XP, Apple OS-X

Geschiedenis van computers&programmeren: 2000-2005 Programmeertaal: C# PHP Windows-XP, Apple OS-X

Geschiedenis van computers&telefonie: 2005-2010 Netbook, iBook, iPhone

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#

Geschiedenis van computers&programmeren: 2010-2015 iPad

Geschiedenis van telefonie: 2010-2015 iPad iOS 8.4 (2015) Android 6.0 (2015) Windows 8.1 (2014)

Geschiedenis van computers, telefonie, programmeren: 2015-2020 E-health iPad Self-driving car

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

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

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?

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

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

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#

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

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

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

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

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

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

“Code”

“Code”