729g46 informationsteknologi och programmering729g46/kursmaterial/... · 2020. 2. 3. ·...

Post on 20-Aug-2021

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

729G46 Informationsteknologi och programmeringTema 1, Föreläsning 1

Jody Foo, jody.foo@liu.se

Föreläsningsöversikt⁃ Kursinformation:

Kursplan

Kursupplägg

⁃ Datorn

⁃ Program

⁃ Terminalen som gränssnitt

Om kursen, kursupplägg och kursplan

Digitala kontaktytor⁃ Kurshemsida

https://www.ida.liu.se/~729G46/

⁃ Webreg (anmälan till grupper)

https://www.ida.liu.se/webreg3/

⁃ Kursrum på Lisam (inlämningar)

https://lisam.liu.se

⁃ E-postlista

729g46_2019ht_g7@student.liu.se

Personal⁃ Examinator/kursledare

Jody Foo (jody.foo@liu.se)

⁃ Assistenter (handledda datorsalspass)

Daniel Holmer (danho775@student.liu.se)

Ludvig Fors (ludfo119@student.liu.se)

Otto Fors (ottfo694@student.liu.se)

⁃ Assistenter (seminarier)

Isabella Koniakowski (isako708@student.liu.se)

Otto Fors (ottfo694@student.liu.se)

⁃ Kursadministratör

Veronica Kindeland Gunnarsson (veronica.kindeland.gunnarsson@liu.se)

⁃ Studierektor

Jalal Maleki (jalal.maleki@liu.se)

Kontorstider⁃ Välkomna torsdagar 10-12 (dock ej 22 augusti)

⁃ Rum E 3F:482 i E-huset

Syftet med kursen⁃ Tillhandahålla

grunder i programmering

grunder i informationsteknologi

⁃ Förkunskapskrav och förberedelse inför fortsättningskurser, t.ex.

Artificiell intelligens

Språkteknologi

Projektkurser

Interaktionsprogrammering

Kandidatuppsats

⁃ Kognitionsvetares roll i arbetslivet

Kursplanvarje kurs har en kursplan där lärandemål, kursinnehåll och examination beskrivs

Kursplan⁃ Lärandemål

mål som studenter ska ha nått efter kursen

⁃ Kursinnehåll

ämnen, begrepp m.m. som tas upp i kursen

⁃ Examination

hur examineras kursmålen, hur delas examinationen upp (provkoder)

Tre huvudområden⁃ Introduktion till programmering, programmeringsspråket

Python

⁃ Diskret matematik

⁃ Grundläggande informationsteknologi

Lärandemål⁃ redogöra för och relatera grundläggande informationsteknologiska begrepp,

programmering och algoritmiskt tänkande till kognitionsvetenskap och kognitionsvetenskapliga tillämpningar

⁃ använda och förklara begrepp från grundläggande diskret matematik i formella beskrivningar

⁃ använda grundläggande datatyper/datastrukturer och styrstrukturer för att skriva enklare program

⁃ identifiera, förklara och konstruera abstraktioner i programkod med varierande grad av stöd i det underliggande programmeringsspråket

⁃ använda ett metodiskt och interaktivt tillvägagångssätt att lösa programmeringsrelaterade problem genom implementering, testning och felsökning

⁃ utarbeta och tillämpa algoritmer för att lösa problem

⁃ redogöra för vad ett program är och hur ett program fungerar, inklusive sådan programkod som de själva och andra skrivit

⁃ producera program med enkla grafiska användargränssnitt.

Blooms taxonomi för lärandemål Kognitiva mål1

Kunskapstaxonomi med några aktiva verb för lärandets resultat

Lägre nivå av lärande Högre nivå av lärande

Faktakunskaper Förståelse Tillämpning Analys Syntes Värdering Komma ihåg Förstå med egna ord Använda i den aktuella

kontexten Ta isär i komponenter för att

förstå strukturen Sammanställa nya

mönster och strukturer Bedömning genom

kriterier Värdera Jämföra

Komma fram till Konstrastera

Kritisera Förklara Motivera Bevisa Avgöra Relatera

Sammanfatta Stödja

Försvara Föreslå

1 Bloom Benjamin S. and David R. Krathwohl. Taxonomy of Educational Objectives: The Classification of Educational Goals, by a committee of college and university examiners. Handbook I: Cognitive Domain. New York, Longmans, Green, 1956.

Definiera Beskriva Nämna Välja

Identifiera Lista

Lokalisera Citera

Recitera Upprepa Markera

Ange

Förklara Försvara

Skilja Utveckla

Generalisera Ge exempel

Förutse Skriva om

Sammanfatta Använda

Kunna tillämpa Beräkna Bevisa

Upptäcka Modifiera Verkställa

Förutse Förbereda Producera Relatera

Visa Lösa

Använda Skissera

Identifiera Urskilja Illustrera Peka ut Relatera

Välja Separera Indela Sortera

Differentiera Skissera

Ange Kritiskt bearbeta

Kategorisera Kombinera

Ställa samman Utarbeta Skapa

Tänka ut Konstruera

Förklara Framställa Modiviera Organisera

Planera Rekonstruera

Relatera Sammanfatta Ta ställning

Repetera någon annans definition av

en princip

Förklara principen genom exempel på dess användning

inom andra områden

Personligen använda principen på procedurer i

verkliga situationer

Kan separera fakta från antaganden i principer

Kombinerar ett antal principer till en ny fungerande strategi

Bedöma användningen av den nya strategin

Modellen bygger på en sammanfattning och översättning som Khalid El Gaidi gjort efter Gronlund N.E. How to Write and Use Instructional Objectives. (2000)

Kursinnehåll⁃ Grundläggande informationteknologi som t.ex. filsystem, filer, internminne, processor, internet, nätverk,

server, klient, databas, kryptering, dataformat som XML, JSON, CSV

⁃ Översiktlig introduktion till datavetenskap

⁃ Handhavande av aktuella datorsystem

⁃ Programmeringsspråket Python

⁃ Kodstil i Python

⁃ Datatyper/datastrukturer, t ex tal, strängar, tupler, listor, sekventiella och hierarkiska strukturer, uppslagsbaserade strukturer

⁃ Styrstrukturer, t.ex. loopar och villkorssatser

⁃ Läsa och skriva information till/från filer

⁃ Läsa data från internetresurser

⁃ Grundläggande objektorienterad programmering

⁃ Grundläggande datavetenskapliga algoritmer som kan tillämpas inom kognitionsvetenskap och för kognitionsvetenskapliga tillämpningar.

⁃ Introduktion till programmeringsmetodik och tekniker för programdesign (t.ex. diagram, pseudokod)

⁃ Grundläggande diskret matematik, t ex mängder, relationer, funktioner, diskreta datastrukturer

⁃ Programmering av enklare grafik och användarinteraktion.

729G46. Provkoder/Examinationsmoment⁃ LAB1. 2,5hp: Temauppgifter, Tema 1-3

⁃ EXA1. 2,5hp: Inlämningsuppgifter och seminarier, Tema 1-3

⁃ LAB2. 4,5hp: Temauppgifter, Tema 4-6

⁃ EXA2. 1,5hp: Inlämningsuppgifter och seminarier, Tema 4-6

⁃ DUG1. 1hp: Dugga i programmering

Betygsättning⁃ Moment med endast U/G:

EXA1 (begreppsseminarier, inlämningsuppgifter Tema 1-3)

DUG1 (dugga + uppgifter inför duggan)

⁃ Moment med U/G/VG:

LAB1, LAB2 (Temauppgifter, Tema 1-6)

EXA2 (seminarier, inlämningsuppgifter, Tema 4-6)

⁃ Kursbetyg

För G på kursen krävs G på alla examinationsmoment.

För VG krävs VG på LAB1, LAB2 och EXA2.

Kurslitteratur⁃ Informationsteknologi

Janlert, L.-E. (2015). Tänkande och beräkning: en inledning till datavetenskap och kognitionsvetenskap. Studentlitteratur AB.

Lunell, H. (2011). Datorn i världen, världen i datorn: en introduktion till data- och informationsteknik. Studentlitteratur AB.

⁃ Python

Punch, W. F., & Enbody, R. (2017). The Practice of Computing Using Python, Global Edition, 3/E. Boston: Pearson.

⁃ Diskret matematik

Kuhlman, M., & Dahllöf, M. (2014). Matematik för språkteknologer. (PDF)

Ytterligare litteratur finns på kurshemsidan

Frihet och eget ansvar⁃ "Offensiv kunskapsinhämtning"

⁃ Eget ansvar för aktivt deltagande i dina universitetsstudier

⁃ Finns inte möjlighet att gå igenom allt kursinnehåll på föreläsningar

⁃ Om du missar något moment kommer ingen jaga dig. Du får helt enkelt inga poäng.

⁃ Kogvets "Rekommendationer om examination och kursupplägg" (se kandidatprogramsidorna)

https://www.student.liu.se/program/kognitionsvetenskap-180-hp/student/om-examination-och-kursupplagg?l=sv

Kursupplägg(hur kursplanen genomförs)

729G46 Informationsteknologi och programmering⁃ 12hp ~ 320 timmar totalt över 20 veckor.

⁃ Kursen är designad för knapp halvfart (40%) dvs 16h vecka (parallell kurs 24h/vecka)

⁃ Hur många timmar som behövs för varje individ varierar

⁃ Kursen är uppdelad i 6 st teman:

Tema 1-3 grunder

Tema 4-6 fortsättning

⁃ Varje tema 3-4 veckor (48-64h)

Tema 1-3⁃ Schemalagt / tema

3 föreläsningar

1 lektion

1 seminarium (1h)

4-5 handledda pass i datorsal

⁃ Redovisningar och inlämningar / tema

Seminarium i mindre grupper (3 par)

Temauppgift, muntlig redovisning

Inlämningsuppgift (Diskret matematik + reflektionsuppgift)

⁃ Dugga i mellan Tema 3 och Tema 4 (29 oktober)

⁃ Självstudier

Ni kommer behöva jobba med programmering utanför schemalagd tid

~20h schemalagt av totalt 48-64h tid/tema

Tema 4-6⁃ Schemalagt / tema

2 föreläsningar

1 lektion

1 seminarium (1h)

4-5 handledda pass i datorsal

⁃ Redovisningar och inlämningar / tema

Temauppgift, muntlig redovisning

Seminarium i mindre grupper (3 par)

Inlämningsuppgift (Rapport)

⁃ Självstudier

Ni kommer behöva jobba med programmering utanför schemalagd tid

~20h schemalagt av totalt 48-64h tid/tema

⁃ Alla uppgifter med undantag av uppgifterna i diskret matematik samt reflektionsuppgifterna genomförs i av en pargrupp. En pargrupp består av två studenter.

⁃ Tre par (dvs 6 personer) bildar en seminariegrupp.

⁃ Samma pargrupp Tema 1-3. Ny pargrupp Tema 4-6.

Grupper

Registrera pargrupp för Tema 1-3 i Webreg⁃ Registrera er pargrupp i Webreg.

https://www.ida.liu.se/webreg3

⁃ Pargrupp registreras för två examinationsmoment: LAB1 och EXA1.

⁃ OBS! Se till att ni registrera pargruppen så att den har samma gruppbeteckning i båda examinationsmomenten!

⁃ Om ni registrerar er som grupp D.3 i LAB1 ska ni också registrera er som grupp D.3 i EXA1.

Uppgifter/seminarier/redovisningar

Temauppgift⁃ Genomförs i pargrupp.

⁃ Programmeringsuppgift.

⁃ Redovisas muntligt på schemalagt redovisningstillfälle.

⁃ Missad redovisning kompletteras via screencast som lämnas in via Lisam (mer info finns på kurshemsidan)

Pythonuppgifter (Tema 1-3)⁃ Genomförs som del av Temauppgift 1-3

⁃ Består av 3 delar. T.ex. Pythonuppgifter 1 = 1.1, 1.2, 1.3

⁃ Genomgång av nya programmeringskonstruktioner.

⁃ Övning inför duggan.

⁃ Automatisk rättning:

skriv kod i textfil

kör rättningsskript via terminalen

kopiera rättningskod till textfil (en textfil för varje del)

lämna in textfilerna via Lisam

Begreppsseminarium⁃ Seminariegrupper: 3 par (6 personer)

Seminariegrupp A består av paren A1, A2 och A3.

45 minuter per seminariegrupp.

⁃ Format

Demonstration på dator

frågor/diskussion

max 12 min per par inklusive frågor

⁃ Komplettering

Missat seminarium kompletteras genom att spela in screencast som lämnas in via Lisam

Inlämningsuppgift i slutet av teman⁃ Uppgifter i diskret matematik: grundläggande notation och

begrepp

⁃ Reflektion kring temat.

Översikt, Tema 1-3

Föreläsning 1-3⁃ Föreläsning 1: Kontext. Vilka färdigheter behöver en

kognitionsvetare? Vad betyder det att programmera en dator? Vad är en dator?

⁃ Föreläsning 2: Programmeringsspråk, Python: operationer och funktioner, variabler och datatyper.

⁃ Föreläsning 3: Datorn som ett diskret system. Diskret matematik: mängder.

Datorn

Turing-maskinen (1936)⁃ Teoretisk beskrivning av en beräkningsmaskin / dator

⁃ Maskinens beståndsdelar:

Ett band med oändligt antal rutor som kan innehålla en symbol (eller vara tom)

Ett läs- och skrivhuvud som kan läsa och skriva symboler till/från bandet

En ändlig lista över tillstånd.

Ett tillståndsregister som lagrar maskinens aktuella tillstånd.

En ändlig uppsättning instruktioner som beskriver vad som ska göras givet maskinens tillstånd, samt aktuell symbol.

⁃ En instruktion beskriver

vad som ska göras med aktuell ruta (skriva/sudda)

om/hur huvudet ska flytta på sig

maskinens nya tillstånd efter

ENIAC - dator utan lagring av program (1945)

USArmyPhoto

von Neumann-arkitekturen (1945)⁃ En beskrivning av en fysisk arkitektur

⁃ Central processorenhet, Central Processing Unit: styrenhet & aritmetisk-logisk enhet

⁃ Primärminne, Random Access Memory (RAM)

⁃ Input- och output-enhet

von Neumann-arkitekturen⁃ Data och program lagras i gemensamt minne

⁃ Instruktioner utförs sekventiellt, en instruktion i taget

⁃ En operand ("en styck data") bearbetas åt gången

von Neumann-arkitekturen⁃ Gemensam lagring av program och data

Ett program kan skriva data som sedan används som program

Vi kan skapa program som hjälper oss skapa mer avancerade program!

⁃ Sekventiell exekvering: förutsägbarhet när program körs

Några exempel särskilt stora och små datorer

IBM System/360 Modell 91 på Goddard Space Flight Center slutet på 1960-talet

ByUnknown-NASA,PublicDomain,h:ps://commons.wikimedia.org/w/index.php?curid=931293

SIM-kort (JavaCard)

h:ps://www.oracle.com/technetwork/java/embedded/javacard/documentaLon/smartcards-136372.html

Program

Program⁃ samling instruktioner som utför en specifik uppgift när de

körs på en dator

Typer av program⁃ Systemprogram/Plattform

Program som systemprogram som hanterar datorns resurser; hur tillämpningsprogram kan/får använda dem.

Exempel: Operativsystem

⁃ Tillämpningsprogram/applikationer

Program som gör att datorn kan användas för en specifik tillämpning av användaren (utöver att bara "fungera")

Exempel: ordbehandlingsprogram, webbläsare

Operativsystem⁃ Syfte (bl.a.)

Gränssnitt mellan hårdvara och andra program

Gränssnitt mellan program och användare

⁃ Består av flera komponenter

⁃ Exempel på komponenter

processhantering

filsystem

⁃ Exempel på operativsystem

Windows, macOS, Linux, Solaris

ThinLinchttps://www.ida.liu.se/local/students/remote/index.sv.shtml

Terminalen som gränssnitt

Varför använda ett textbaserat gränssnitt⁃ Syfte: miljö för att utveckla och köra egna program

⁃ Enklare (färre rörliga delar):

Output: text (en rad/tecken i taget)

Input: textkommandon

⁃ Kraftfullt

⁃ Jämfört med grafiskt gränssnitt:

Output: fönster med olika interaktiva grafiska komponenter

Input: musposition, musklick, tangenttryckningar, objekt som dras och släpps m.m.

"Terminalen"⁃ Terminalprogrammet tillhandahåller funktionalitet för

program att visa text och ta emot tangentbordstryck från användaren.

⁃ Terminalprogrammet kör ett skalprogram: bash (Bourne Again SHell) som tillhandahåller ett interaktivt gränssnitt för att köra kommandon

⁃ Prompt: sekvens av tecken som visar att skalet är redo att ta emot ett kommando.

⁃ Tecknet $ används ofta för att representera prompten.

"Skriva kommandon"⁃ I terminalen kan man köra inbyggda kommandon,

kompilerade program och skript

⁃ Ingen skillnad på kommandon, program och skript till "utseendet"

⁃ Både kommandon och program körs genom att rätt ord skrivs i prompten

⁃ Jämförelse med grafiskt gränssnitt: "i gränssnittet kan du klicka på knappar, program och skript"

⁃ I kursen kommer ordet "kommando" att användas för att referera till alla varianter

Argument⁃ De flesta kommandon tar emot argument

⁃ Som användare använder vi argument för att styra ett programs beteende

⁃ Syntax för kommando + argument:

$ kommando argument1 argument2

Sökväg⁃ Beskrivning av en plats i filsystemet

⁃ Filsystem: består av kataloger och filer

Kataloger kan innehålla kataloger och filer

Filer innehåller data

⁃ Tecknet / används som skiljetecken mellan namnet på en katalog och kataloger eller filer som ligger i den

Filsystemets trädstruktur⁃ katalog1

⁃ katalog1/katalog1_1

⁃ katalog1/katalog1_1/fil4

⁃ katalog2/hejsan/hoppsan/fallerallera

Rot-, arbets- föräldra- och hemkatalog⁃ Toppen av filträdet, "roten": /

⁃ Aktuell katalog (arbetskatalog): ./

⁃ Föräldrakatalog: ../

⁃ Din användares hemkatalog: /home/<liuid>

/home/jodfo01

Absoluta och relativa sökvägar⁃ Absolut sökväg har med roten

/courses/729G46/kursmaterial/temauppg1

/home/jodfo01/katalog1/fil1

/home/jodfo01/katalog1/katalog2/fil2

/home/jodfo01/katalog1/katalog3/fil3

⁃ Relativ sökväg har inte med roten och utgår från aktuell arbetskatalog (katalogen man står i)

kursmaterial/temauppg1

katalog1/fil1

../katalog3/fil3

Exempel på kommandon⁃ echo: skriver ut dess argument

⁃ ls: visar innehåll i katalog

⁃ cd: byter katalog

⁃ mv: flytta fil eller katalog

⁃ mkdir: skapa katalog

⁃ cat: skriv ut innehåll i fil

⁃ touch: skapa ny fil/uppdatera senast ändrad hos existerande fil

⁃ man: hjälptext för kommando

top related