Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID
Vad gör vi här?
Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad Java (generics, interfaces, exceptions,...) Rekursion Datastrukturer (stackar, träd, hashtabeller,...) Algoritmer (t ex sortering) och tidskomplexitet Grafiska användargränssnitt Tar vid där EDA011/017 slutar Förkunskapskrav för de flesta av institutionens kurser
Sommarinläsning av fördjupningskursen sommaren 2017 Läs in EDAA01 Programmeringsteknik fördjupningskurs på egen hand Vi tror att du behöver ha betyg 4 eller 5 från grundkursen Sommaren 2017 erbjuder vi möjligheten att göra detta Vi tillhandahåller viss handledning under sommaren, men ingen regelrätt kurs (du tillhör formellt höstens kursomgång) Första mötet 23/5 (preliminärt) Mer information på http://cs.lth.se/edaa01/sommar/ Anmäl dig med mail till patrik.persson@cs.lth.se
Objektorienterad modellering och design (EDA061; 4,5hp) Valfri för F Förkunskapskrav: EDAA01 Programmeringsteknik fördjupningskurs Utveckling av program som kan återanvändas och modifieras med hänsyn till förändrade krav i ett industriellt sammanhang Design av datorprogram; principer och tumregler Designmönster och ramverk UML
Realtidsprogrammering (EDA040; 6hp) Valfri för F & BME Förkunskapskrav: EDAA01 Programmeringsteknik fördjupningskurs Realtidssystem: system med krav på svarstid (t ex multimedia, styrsystem) Parallella förlopp Trådar, jämlöpande processer, synkronisering
Nätverksprogrammering (EDA095; 7,5hp) Valfri för F & BME Förkunskapskrav: EDAA01 Programmeringsteknik fördjupningskurs Kursen ger en översikt över grunderna för hur man skriver applikationsprogram som kommunicerar över nätverk och fungerar som en startpunkt för vidare fördjupning inom området. TCP/IP, client/server-arkitekturer, HTTP, webbteknologi, strömmande video,
C-programmering (EDAA25; 3hp) Valfri för F, N och BME Jämte Java vanligt språk i industrin, bl a i inbyggda system Minneshantering och pekare mer komplicerat än i Java #include <stdio.h> int main() { printf("hello, World!\n"); return 0; }
Programvaruutveckling i grupp projekt (EDAF45; 7,5hp) Valfri för F Förkunskapskrav: EDA061 Objektorienterad modellering och design Hur bär man sig åt för att utveckla större system? Samverka i team för att ta fram en mjukvaruprodukt Agil utveckling; test first; refactoring; parprogrammering Laborationer + projekt + kontrollskrivning
Vad kan man när man läst EDA011/017 Programmeringsteknik? Färdighet och förmåga För godkänd kurs skall studenten kunna konstruera och implementera algoritmer för att lösa enkla uppgifter kunna implementera Javaklasser utgående från givna specifikationer kunna strukturera program, både med hjälp av underprogram och med hjälp av klasser och metoder kunna använda enkla verktyg för att skriva in, testa och felsöka program
Vad kan man när man läst EDA011/017 Programmeringsteknik? Delta i utveckling av tekniska system, där datorer utgör en del Programmering, även om det inte är ens huvudsyssla Lära sig nya språk och programmeringsmiljöer (t ex Matlab) Sätta sig in i befintliga system, göra mindre utökningar och förändringar
Android Presenterades av Google i nov. 2007 I telefoner i okt. 2008 (HTC Dream) Inriktat på att nå så många utvecklare som möjligt Fria utvecklingsverktyg (Android Studio) Prispott på 10M USD (2007) Appar skrivs i Java Program kan köras i en virtuell telefon Källkoden (C och Java) är fritt tillgänglig open source (...)
Applikationer i Android Skrivs i Java, i Android Studio Massor av standardklasser: en del kända, en del nya En applikation består av en eller flera aktiviteter (subklasser till Activity) Aktiviteter har vyer grafiska komponenter (subklasser till View) Man behöver inte veta så mycket om Android för att komma igång!
Applikationernas livscykel När applikationen startas, händer följande: ett objekt av min Activity (dvs. en subklass) skapas Metoden oncreate anropas på det nya objektet public class MyActivity extends Activity { } protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate);... }...
Att rita användargränssnitt Applikationens användargränssnitt beskrivs i en layout Vilka element visas på skärmen? Var ligger de? Vilka namn har de? Vilka egenskaper har de? text på knappar, format på inmatad text,... Redigeras med fördel grafiskt
Hollywood-principen: Don t call us we ll call you! Vi ser aldrig någon main-metod: istället anropar Android callbackmetoder i vår applikation när något händer, t ex när användaren trycker på en knapp. Programmeraren anger vilka callbacks som ska anropas.
saippuakivikauppias
En möjlig applikation Vi slår världen med häpnad med vår palindrom-algoritm! (Per Holms bok, övning 11.1c)
Kör din egen Java-kod i din telefon Memory (laboration 8) som Android-app Färdiga klasser: MemoryView MemoryActivity MemoryCardImage Lägg till dina klasser från labb 7 8: MemoryBoard PairSequence Instruktioner på http://cs.lth.se/androidmemory
Relaterade kurser i datavetenskap EDAA01 Programmeringsteknik, fördjupningskurs: nästa steg EDA061 Objektorienterad modellering & design EDA040 Realtidsprogrammering EDA095 Nätverksprogrammering EDAA25 C-programmering EDAM05 Examensarbete i datavetenskap Inriktningar: BME F Signaler, bilder och e-hälsa (fördjupningskurs, realtid, ) Programvara (fördjupningskurs, objektorienterad modellering, realtid, programvaruutveckling i grupp,, ) Vill du läsa en datavetenskapskurs som inte ingår i ditt program? Snacka med oss!
Vill du bli övningsledare? Bli ännu duktigare på programmering och ha roligt! Meriterande: Bra betyg på EDA011/017 Bra betyg på (eller följer) fördjupningskursen EDAA01 Läser F, N eller BME Kontakta mig i oktober/början av november om du är intresserad!
Lunds Tekniska Högskola Xxxxxxxxxxxxxxxx Xxxxxxxxxxxxxx ÅÅÅÅ-MM-DD