Programmeringsteknisk översiktskurs. Introduktion till kursen



Relevanta dokument
Programmeringsteknisk översiktskurs. Introduktion till kursen

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

! Introduktion till kursen! En dators delar! Vad är ett program? " Hur fungerar ett program när det körs

Innehåll. Programmeringsteknisk översiktskurs för yrkeshögskoleprogram. Inblandade personer. Institutionen för datavetenskap. Studentexpeditionen

Kursinformation Grundkurs i programmering med Python

GPT The bitter end. Förra veckan: Rekursiva funktioner som läggs in externa filer har stor räckvidd

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Introduktion till kursen

Grundkurs i programmering - intro

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Introduktion till kursen

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Innehålls förteckning

TDIU01 (725G67) - Programmering i C++, grundkurs

Föreläsning 2. Operativsystem och programmering

Föreläsning 1: Introduktion till kursen

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Introduktionsmöte Innehåll

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Programmeringsteknik II

Introduktion till programmering och Python Grundkurs i programmering med Python

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad Programmering (TDDC77)

Programmeringsteknik I

Introduktion till programmering, hösten 2011

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

SKOLFS. beslutade den XXX 2017.

Datorsystem och programmering

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Schemaunderlag för Programmering, grundkurs (TDDB18)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Att komma igång. Föreläsning 1

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Föreläsning 1 & 2 INTRODUKTION

Att komma igång. Föreläsning 1

Poäng. Start v. DV1: Datavetenskapens byggstenar 7.5. Antal registrerade (män/kvinnor) 38 (38/0)

Introduktion till programmering

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Datateknik GR (A), Introduktion till programmering i C++, 7,5 hp

Programvaruteknik, hp

Datavetenskapligt program, 180 högskolepoäng

Inledande programmering med C# (1DV402) Introduktion till programmering

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Föreläsning 3. Programmering, C och programmeringsmiljö

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Poäng. Start v. Applikationsprogramm ering i Python 7.5. Antal registrerade (män/kvinnor) 50 (34/16)

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Inledande programmering med C# (1DV402) Introduktion till C#

Planering Programmering grundkurs HI1024 HT TIDAA

Objektorienterad Programmering (TDDC77)

Planering Programmering grundkurs HI1024 HT data

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Programmering, grundkurs

Att komma igång. Föreläsning 1

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Grundläggande programmeringsteknik Datorsystem

Programmering A. Johan Eliasson

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Kursplanering för EE3D i kursen Programmering 1, 100p.

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

OOP Objekt-orienterad programmering

Allmänna frågor om kursen: Kursutvärderare: IT-kansliet/Christina Waller. 1. Vad är ditt allmänna omdöme om kursen? Antal svar: 30 Medelvärde: 3.

SKOLFS. beslutade den -- maj 2015.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 3. Programmering, C och programmeringsmiljö

Avdelningen för informations- och kommunikationssystem Fakulteten för naturvetenskap, teknik och medier

Repetition C-programmering

Föreläsning 1 & 2 INTRODUKTION

Datorhistoria Introduktion till PBL

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Poäng. Start v. Programmeringsteknik med C och Matlab 7,50. Antal registrerade (män/kvinnor) 274 (194/80)

Introduktion C-programmering

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Evaluation Summary - CD5570 DoA, distans VT 2004 Dan Levin

översiktskurs (5DV031)

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Omtentamen i Programmering C, Fri, Kväll,

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Introduktionsföreläsning

TDDC77 Objektorienterad Programmering

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Objektorienterad Programmering (TDDC77)

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Program & programmering

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg

*Pekarvärden *Pekarvariabler & *

Nätverksdrift, 120 hp

Välkomna till DIT012 IPGO

Transkript:

Programmeringsteknisk översiktskurs (5DV031) Introduktion till kursen

Innehåll Introduktion till kursen Personal, examination, mål Vad är ett program? Lite historia Vad kan ett program vara? Hur gör man när man programmerar? Ett första program

Lärare & handledare Lärare och handledare Thomas Johansson (thomasj@cs.umu.se) Lärare Marie Nordström (marie@cs.umu.se)

MIT-huset, våning 4 Studexp support Thomas Marie

Datorlab MA316 & MA326 (MIT-huset plan 3) Windows 7 MA436 & MA446 (MIT-huset plan 4) Linux (Debian) Reserverade för kursen under laborationspassen se planering Alltid tillgängliga via kort Handledning (Thomas) I Lab eller på kontoret schemalagda tider (se schemat) Via mail i mån av tid

Våra målsättningar Alla ska ha skrivit flera fungerande program. Många ska känna att det är riktigt kul att programmera. Så många som möjligt ska uppfylla kursens mål. Vara öppen för en dialog i lärandesituationen.

Vad säger era utbildningsplaner? För högskoleexamen i medieproduktion vid Umeå universitet skall studenten visa kunskaper om de datorsystem som är gängse inom området. visa förmåga och sådan färdighet som fordras för att kunna hantera moderna datorbaserade system som används inom mediebranschen. http://www.teknat.umu.se/digitalassets/93/ 93493_utbildningsplan-medieproducent.pdf

Vad säger era utbildningsplaner? För högskoleexamen i nät- och kommunikationsteknik vid Umeå universitet skall studenten ha grundläggande kunskaper i teknisk programmering. utvecklat förmågan att arbeta med moderna datorbaserade system http://www.teknat.umu.se/digitalassets/90 /90788_utbildningsplan-nat-och-kommunikation.pdf

Kursplanen Moment 1, teoridel, 3 högskolepoäng Momentet behandlar grunderna i problemlösning med hjälp av datorprogram. I detta ingår en introduktion till hur man stegvis löser problem med hjälp av algoritmer. Vidare presenteras de mest grundläggande byggstenarna i ett programmeringsspråk som gör att algoritmerna kan översättas till program. Stor tonvikt kommer att läggas på programmeringsteknisk färdighet genom praktik. En delmängd av programmeringsspråket C används. Moment 2, färdighetsträning, 4,5 högskolepoäng Momentet utgörs av ett antal obligatoriska uppgifter där teorin från Moment 1 tillämpas. Färdigheter som indentering av kod, kompilering, testning, debuggning och dokumentation tränas.

FSR förväntade studieresultat Efter avslutad kurs ska studenten kunna omvandla givna enkla algoritmer till program i det aktuella programspråket följa givna konventioner för hur program ska skrivas med avseende på indentering och kommentering förklara principerna för och använda sig av variabler, uttryck och kontrollstrukturer i ett högnivåspråk konstruera och använda funktioner för att strukturera ett program använda sig av grundläggande datatyper, arrayer och strängar samt känna till deras begränsningar använda sig av ett felsökningsverktyg skriftligt och muntligt redogöra för utfört arbete med de obligatoriska uppgifterna

Fjolårets kursutvärdering Tyvärr var det bara drygt halva gruppen som svarade på kursvärderingen. Om man räknar med 60 aktiva studenter så blir svarsfrekvensen 63%. Lagom fördelning föreläsningar, labbövningar, gruppövningar Saker tas upp som man ej behöver kunna Mer utförliga OH-bilder Högre tempo/lägre tempo Basera föreläsningarna på boken

Kursmaterial Håkan Strömberg, C Genom ett Nyckelhål, Studentlitteratur, 2007, ISBN 978-91-44-03577-2 Föreläsningsunderlag (finns på webbsidan) http://www.cs.umu.se/kurser/5dv031/ht12/ Diverse material som delas ut under kursen

Institutionen för datavetenskap 2 + 2 + 4 utbildningsprogram Kandidat Datavetenskap, Kognitionsvetenskap Civ Ing Teknisk datavetenskap, Interaktion och design Master Beräkningsteknik, Datavetenskap, Människa-datorinteraktion, Robotik Forskning inom många olika ämnen Teknisk-vetenskapliga o parallella beräkningar Medicinsk informatik Kognitionsvetenskap Flera forskningscentra Programvaruteknik Teoretisk datalogi MDI Robotik

Datorsupport på datavetenskap Slut papper i skrivaren Glömt lösenordet Dator trasig Glappt tangentbord Smutsiga skärmar (rengöringsmedel på plan 4) Skicka mail till support@cs.umu.se (eller ring 786 9950) information om datorns namn, labsal, problem, vem du är Se även http://support.cs.umu.se/

Studentexpeditionen Passerkort Betalning för utskrifter Försäljning av kompendier Utlämning av tentor Utskrift av studieintyg, registreringsintyg... Anmälan till tentamen via webben! Yvonne Löwstedt (studentexp@cs.umu.se, 5598)

Administration av användare Kortaccess Alla som har kort får access automatiskt vid registrering. De som saknar kort vänder sig till studentexpeditionen Personer som inte haft en datoranvändare (xxx@cs.umu.se) på datavetenskap tidigare: Jag har en lapp med ert nya användarnamn och tillfälligt lösenord

Kursens upplägg Föreläsningar (6 st + introduktion) Kommer innehålla teoripresentation och praktiska inslag Lektioner i lab (6 st + datorintro) i 4 grupper Thomas och Marie närvarande, arbete med övningar Gruppövningar (6 st) Genomgång av lablektionen Obligatoriska inlämningsuppgifter

Examination Moment 1, teoridel, 3 hp Vanlig tentamen i skrivsal, 4 timmar Omtenta och uppsamlingstenta i skrivsal Moment 2, färdighetsträning, 4.5 hp 3 obligatoriska uppgifter Läs Hederskodex och Riktlinjer för labgenomförande!

Obligatoriska uppgifter Ordinarie sista redovisningsdag står på varje uppgifts webbsida. Uppgiften bedöms med G, K, O eller U Om en komplettering (K eller O) krävs skall den göras inom fem arbetsdagar. Om man inte är klar med alla OU måste man komplettera vid ett uppsamlingstillfälle (påsk/augusti). Måste göra om alla uppgifter Kan vara nya uppgifter/nya handledare

Obligatoriska uppgifter En uppgift som är 5 minuter sen är för sen. Ansökan om uppskov pga exvis sjukdom ska ske minst en dag före sista inlämningsdag. Kursansvarig bedömer uppskoven. Resultat anslås på kursens hemsida.

Hur kan man lägga upp sina studier? En 7,5 hp kurs motsvarar 200h total studietid för normalstudenten. 5 veckor ger ca 40h/vecka. Delta på undervisningen Läsa boken Övningsuppgifter i lab Göra obligatoriska uppgifter Repetera/ tentaplugga

Hur kan jobbet fördelas? 50h läsa boken (10 min*300 sidor) 15h övrigt tentaplugg 42h schemalagd undervisning (F/L/G) 40h övningsuppgifter 53h kvar till de obligatoriska uppgifterna 15h till OU1 15h till OU2 23h till OU3 PLANERING AV ARBETET VIKTIGT!

Vad är ett program? Lite historia, vad är ett program, hur programmerar man?

Kort historik 1387 kom ordet Abacus en manuell miniräknare Idén mycket äldre!

Kort historik 1600-talet mekaniska miniräknare tex 1642 The Pascaline, räknare som kunde de enklaste räknesätten Blaise Pascal 1623-1662 Bilderna hämtad från http://en.wikipedia.org/wiki/pascaline och http://en.wikipedia.org/wiki/blaise_pascal

Ada Lovelace 1815-1852 Kort historik Charles Babbage 1791-1871 1822 The Difference Engine av Charles Babbage den första datorn som hade minne, processor, in- och utenheter samt program (i form av hålkort!) Ada Augusta King var den som skrev ned Charles Babbages arbete och brukar räknas som den första programmeraren Bilderna hämtad från http://en.wikipedia.org/wiki/babbage och http://en.wikipedia.org/wiki/ada_lovelace

Kort historik 1946: ENIAC en av de första elektroniska datorerna 17 468 vacuum tubes, 7,200 crystal diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors and around 5 million hand-soldered joints. It weighed 30 short tons (27 t), 2.6 m by 0.9 m by 26 m, took up 63 m² Consumed 150 kw of power. ENIAC's main control panel http://en.wikipedia.org/wiki/eniac

Kort historik 1977, den första persondatorn Apple I Första datorn som använde sig av ett tangentbord. http://en.wikipedia.org/wiki/apple_i Steve Wozniak 1950- Steve Jobs 1955-2011

Kort historik 80-talet kom nya Macintosh-datorer och IBM-PC började också bli populär Bilderna från wikipedias texter om macintosh, ibm-pc, zx spectrum och amiga

Program Operativsystem Ordbehandlare Webbläsare MP3- spelaren i mobilen...

En liten dator Ett chip 7.5 x 7.5 mm Inte så mycket mer! Programmerad i C!

Vad är programmering? Olika betydelser: Modellera ett beteende Del av problemlösningsarbete Instruktioner till maskinen Skriva program i programspråk

Vad är ett datorprogram? Instruktioner som talar om hur ett problem ska lösas. Programspråk Maskinkod eller lågnivåspråk Lätt att förstå för datorn. (har varit) Lämpligt för maskinnära tillämpningar. Kan ge snabbare exekvering (körning). Högninvåspråk Lätt att förstå för människan. Måste oftast kompileras till maskinkod för att datorn ska kunna köra programmet. Lämpligt för mer komplicerade algoritmer

Programspråk, syntax och semantik Ett programspråk specificerar ord och symboler som får användas för att skriva program regler som bestämmer hur ord och symboler får sättas ihop Syntaxen (satslära) hur giltiga programstrukturer (satser) måste se ut Semantiken (betydelselära) vad olika satser exakt betyder (dvs hur datorn ska tolka programmen)

Kan en dator lösa alla typer av problem? Problemet måste gå att beskriva för datorn. Man måste kunna skriva en algoritm. Vissa problem kan inte lösas inom ändlig tid. Satser som varken kan bevisas eller motbevisas Vissa problem kan inte lösas exakt. Numeriska problem

Hur löser man problem med hjälp av en dator? Förstå problemet Problemspecifikation Problemlösning Utveckla en algoritm Skriva kod Implementera algoritmen Testa och debugga programmet Dokumentera och underhålla programmet

C ett imperativt programspråk Utvecklat 1972 Dennis Ritchie (AT & T Bell Labs) Hand i hand med Unix (Ken Thompson) Standardiserat (ANSI C -89, ISO -90, 95, -99) Ken Thompson 1943- (vänster) Dennis Ritchie 1941-2011 (höger) http://en.wikipedia.org/wiki/dennis_ritchie

C ett imperativt programspråk Hantverksmetafor, man har ett (passivt) objekt som bearbetas steg för steg tills man nått målet. Passar extra bra till problem som kan lösas med hjälp av en steg-för-steg algoritm. Samma algoritm kan appliceras på många olika mängder av data. Fördelar Produderar program som går snabbt att köra och som använder systemresurser effektivt. Nackdelar Passar inte så bra till ostrukturerade problem och komplexa algoritmer Tvingar programmeraren att se problem/problemlösning som en sekvens av steg

Kompilatorn Code::Blocks Header.h Rutinbibliotek Källkod.c Objektfil.obj Körbar.exe Code::Blocks tar hand om allt - nästan

Ett exempel Skriv in ett tal: 12 Ett till: 23 Summan blir = 35

Vad vill vi göra? Skriv ut lite text på skärmen Skriv in ett tal: Läs ett värde från tangentbordet och spara i en variabel. Skriv ut lite mer text på skärmen Ett till: Läs in ett värde till en annan variabel Summera de två talen i en tredje variabel Skriv ut text och summan Summan blir =

Källkod #include <stdio.h> #include <stdlib.h> int main(void){ int a,b,c; printf("skriv in ett tal: "); scanf("%d",&a); printf("ett till: "); scanf("%d",&b); c = a + b; printf("summan blir = %d\n",c); } system("pause"); return 0;

Detaljerna Rader som börjar med # Hanteras av preprocessorn <filnamn> filen finns på det vanliga stället filnamn söker först lokalt #include gör en kopia av filen och lägg in här stdio.h hanterar standard in- och utmatning av text stdlib.h behövs för att raden system( pause ); ska fungera

Detaljerna int main(void) Funktionsdefinition Alla program har en main { } Omger funktionsdefinitionen (begin-end) Grupperar satser, ett block Strängkonstant, en följd av karaktärer inom dubbelsnuttar \n specialtecken för ny rad return 0; I funktionshuvudet har vi sagt att funktionen skall returnera ett heltal

Ett program Är en textfil med källkod Notera att filnamnet ska sluta på.c Innehåller funktionen main int main(void){ } deklaration av variabler int a,b,c; Kommunikation - anrop av funktioner printf, scanf Beräkningar c = a + b;