Kapitel 1
Kursusintroduktion

Kurt Nørmark
Institut for Datalogi, Aalborg Universitet


Sammendrag
Næste lektion
Stikord Referencer Indhold
Dette er første lektion af slides til kurset 'Imperativ Programmering' på Datalogi og Software uddannelserne ved Aalborg Universitet. Vi starter med nogle slides i kategorien 'Kursusintroduktion' som beskriver praktiske forhold.

Kurset ifølge studieordningen
Slide Indhold Stikord
Referencer 

  • Formål

    • I dette kursus opnår den studerende indblik i grundlæggende begreber som algoritmer, datastrukturer og computerarkitekturer.

  • Indhold/mål/viden - forstå grundbegreber inden for:

    • Udviklingsmiljø og kompilering

    • Imperative principper

    • Datatyper og variable

    • Kontrolstrukturer

    • Funktioner og procedurer

    • Datastrukturer, herunder arrays

    • Input/Output

    • Sammensatte datastrukturer

    • Simple algoritmer (f.eks. sortering og søgning)

    • Basal test af programmer

  • Færdigheder

    • Skal kunne skrive, afvikle og teste programmer hvori de ovennævnte grundbegreber indgår i løsningen

    • Skal kunne anvende korrekt fagterminologi

  • Kompetencer

    • Den studerende kan efter kurset både selvstændigt og i samarbejde med andre implementere et imperativt program som løsning på en defineret opgave.

Hvad sker der i en lektion i IMPR?
Slide Indhold Stikord
Referencer 

En lektion i kurset består af tre dele

  • Forberedelse af lektionen

    • Se lektionsvideo, essentielle videoer og evt. andre

    • Afgivelse af feedback til disse lektioner (spørgsmål og kommentarer)

    • Læse udvalgte dele af teksten i lærebogen

  • Fælles del - i et auditorium

    • Diskussion af udvalgte emner - ud fra afgivet feedback til videolektionerne

    • Repetition af dagens stof

    • Feedback til afleveringsopgaver

    • Fælles oplæg til opgaveregning

    • Andre former for aktiviteter

  • Opgaveregning i grupperum

    • Gruppeopgaver - i det netop repeterede stof.

    • Med støtte fra underviser og hjælpelærere

Opgaveregning afhænger af det stof som er forberedt til dagens lektion, og som netop er repeteret

Programmeringsparadigme og programmeringssprog
Slide Indhold Stikord
Referencer 

Der er flere programmeringsparadigmer og mange forskellige programmeringssprog i hvert paradigme.

  • Valg af paradigme:

    • Funktionsprogrammering

    • Imperativ programmering

    • Objekt-orienteret programmering

  • Valg af sprog:

    • Et sprog der egner sig til undervisning

    • Et sprog der bliver brugt i softwareindustrien

    • Et sprog der finder anvendelse på de studier, hvor på kurset udbydes

Valget faldt på C

Bliver C dit modersmål?

C historik
Slide Indhold Stikord
Referencer 

C blev udviklet af Dennis Ritchie i 1972 på AT&T Bell Labs i USA

  • Udviklet fra et tidligere (nu uddødt sprog) kaldet B, som igen stammer fra sproget BCPL

  • C hører historisk sammen med operativsystemet UNIX

  • "C is terse, low-level and permissive"

  • Udbredt sprog til systemprogrammering

    • Mange store programpakker på både Windows og Unix er skrevet i C

Henvisning

Motivation for C
Slide Indhold Stikord
Referencer 

Hvor populær er C?

Det går ned ad bakke...

Henvisning

Figur. Tiobe Programming Community Index, August 2017

Programmering på første studieår
Slide Indhold Stikord
Referencer 

Oversigt over programmering på det første studieår på Datalogi og Software Uddannelserne

  • Første semester

    • Imperativ Programmering - i C

    • Programmering i projektet på dette semester skal ske i C

  • Andet semester

    • Objekt-orienteret Programmering - i C#

    • Programmering i projektet på dette semester forventes at ske i C#

Det forventes at den programmering, som sker i projekterne på første studieår, udføres i det programmeringsprog, hvori der undervises på det tilhørende programmeringskursus.

Lærebogen
Slide Indhold Stikord
Referencer 

Problem Solving and Program Design in C, eighth global edition, af Hanly og Koffman

  • Karakteristik af lærebogen:

    • En typisk CS1 (Datalogi, første semester) bog

    • Såvel en akademisk som en praktisk bog

    • Støtter primært studerende med ingen eller begrænset programmeringserfaring

    • Støtter sekundært indlæring af en metodisk programudviklingsprocess

      • Fra analyse til test

På kursets hjemmeside diskuteres der alternativ og supplerende litteratur

Lærebogen gennemgås ikke slavisk på kurset

Lærebogens ressourcer
Slide Indhold Stikord
Referencer 

Lærebogen indeholder en række ressourcer som er nyttige når du skal igang med den praktiske C programmering

  • Appendix A. Mere om pointere

  • Appendix B. ANSI C Standard Libraries

    • Alfabetisk oversigt over alle funktioner

    • Header files - funktions prototyper - for alle libraries

    • Macro konstanter, variable og typer pr. header file

    • Implementation Limits - konstanter

  • Appendix C. Mere om operatorerne i C

  • Appendix D. Tegntabeller - herunder ASCII tegnsættet

  • Appendix E. Reserverede ord i C - keywords

  • Ordliste - Glossary. Omfattende ordliste

  • Foran på bagsiden. Reference guide til ANSI C - fortsat fra en tidligere side...

Videolektioner
Slide Indhold Stikord
Referencer 

Forud for hver kursusgang skal stoffet forberedes ved at se et antal videolektioner

  • Ingen traditionelle forelæsninger

    • Men vi mødes om stoffet forud for opgaveregning - repetition, diskussion og andre aktiviteter.

    • Flipped classroom

  • Typer af videolektioner

    • Lektionsvideo

    • Essentielle videoer

    • Supplerende videoer

    • Værktøjsvideoer

  • Video-håndterings system - Video Manager

    • Oversigt og struktur på kursets videolektioner

    • Tillader at I stiller spørgsmål, giver kommentarer og reflekterer over specifikke dele af stoffet

Henvisning

Slides
Slide Indhold Stikord
Referencer 

Der findes et sæt af kursusslides, herunder en del med illustrative C programmer

Henvisning

  • HTML slides - ikke Powerpoint slides

    • Flere forskellige syn

    • Tastatur navigerbarhed

  • Indeholder mange af de opgaver, som vi arbejder med på IMPR

    • Opgaveløsninger kommer typisk på nettet efter øvelserne

  • Forskellige oversigter

    • Lektioner

    • Slides pr. lektion

    • Opgaver

    • Stikord

Moodle
Slide Indhold Stikord
Referencer 

Kursets hjemmeside findes på Moodle

Modular Object-Oriented Dynamic Learning Environment

Moodle er det learning management system som AAU har valgt at anvende på alle semestre og kurser

  • Imperativ Programmering i Moodle:

    • Lektionsnumre - ikke tid og sted

      • Skemaet findes i CalMoodle - Det samlede skema for hele semestret

    • Litteratur: Læsestof

    • Video: oversigt over lektionens videoer

    • Læsevejledninger

    • Opgaver - hjemme, i grupper, og til aflevering

    • Links til andre relevante ressourcer

Henvisning

Andre ressourcer
Slide Indhold Stikord
Referencer 

Der findes mange ressource på nettet, som kan hjælpe dig med C programmering

Henvisning

Se også siden om supplerende litteratur på kursets hjemmeside

Installation of software
Slide Indhold Stikord
Referencer 

Programming i C kræver værktøj som understøtter dette

  • Teksteditor efter eget valg

  • GNU C compileren gcc

    • Windows: gcc i MinGW (eller evt. gcc i Cygwin)

    • Linux: gcc findes allerede

    • Mac: gcc kan bruges som command line værktøj.

Det giver god indsigt at opleve udvikling af C programmer med de basale og oprindelige værktøjer

Sørg for at installere software allerede ved første øvelsesgang

Opgave 1.6. Installation af Emacs teksteditoren på Windows

I dette kursus anbefaler vi en meget basal tilgang til udvikling af C programmer. Vi skriver bl.a. programmerne i en teksteditor (fordi et program er et stykke tekst).

Der er mange forskellige teksteditorer. Og mulighederne varierer naturligvis fra platform til platform (Windows/Linux/Mac). Hvis du allerede er godt i gang med en teksteditor, så brug blot denne til C programmering. Hvis ikke, kan du overveje at bruge GNU Emacs. Jeg er selv daglig bruger af GNU Emacs.

Denne opgave er kun relevant hvis du kører Windows, og hvis du ønsker at bruge GNU Emacs som din teksteditor.

Hvordan man downloader GNU Emacs på Windows - se også den tilhørende video:

  • Download zip filen http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-25.2-i686.zip (Ca. 90 MB). I august 2017 er den nyeste version af GNU Emacs 25.2
  • Lav kataloget Programs i C:/hvis den ikke allerede findes. (Hvorfor? Fordi der kan opstå problemer med at placere programmet i kataloget Program Files pga. mellemrum i katalognavnet).
  • Unzip den downloadede fil således at Emacs kataloget emacs-25.2 bliver placeret i Programs
    • Brug det unzip program som du plejer at bruge. Hvis ikke du allerede har en favorit unzipper, kan du downloade 7-zip fra http://www.7-zip.org/ og bruge 7-zip til at udpakke Emacs zip filen.

  • Check - for en sikkerheds skyld - at filerne er pakket ud så du får følgende katalog struktur:
  •   C:/Programs/emacs-25.2

    Hvis ikke det er tilfældet, flyt så emacs kataloget det rigtige sted hen.

  • Der er ingen yderligere skridt i installationen af Emacs. Når først filerne er bragt på plads, er installationen bragt til ende.
  • Emacs startes med c:/Programs/emacs-25.2/bin/runemacs.exe.
    • Det er bekvemt at lave en Windows Shortcut til denne exe-fil fra skrivebordet (højreklip på runemacs.exe, og brug 'Send to > Desktop').

Der findes en video Kom godt i gang med Emacs som du måske vil have gavn af at se nu - eller om et par dage. Hvis du ser og forstår denne video, er du rigtig godt på vej!

Overvej at sætte dette bidrag ind i din .emacs fil. (Som beskrevet skal du tilpasse den lidt). .emacs filen diskuteres i videoen.

Opgave 1.6. Windows: Installation af MinGW GCC compiler

I dette kursus anbefaler vi at du oversætter C programmer ved eksplicit at kalde en C compiler fra en kommando prompt (shell).

Vi anbefaler gcc (Gnu compiler collection) med MinGW (Minimalist GNU for Windows), som tillader udvikling native MS-Windows applikationer.

Bemærk at denne opgave er kun relevant hvis du kører Windows, og hvis du ønsker at bruge gcc under MinGW. Hvis du kører Linux har du sikkert allerede gcc på din computer. Hvis du har en Mac henvises du til en anden opgave.

Der findes en video, som viser hvordan installationsprocessen i denne opgave forløber. Følg evt. denne video sammen med denne opgave, mens du installerer MinGW gcc.

For at fuldføre opgaven skal du have adgang til en teksteditor. Brug gerne din favorit teksteditor. Overvej alternativt om du ønsker at downloade Emacs teksteditoren før du går videre.

Følg denne vejledning for at installere MinGW på Windows:

  • Hvis du har en gammel installation af MinGW, skal du først afinstallere denne på sædvanlig vis. (Hvis ikke du finder MinGW under installerede systemer, så drop blot dette). Slet dernæst alle filerne i den gamle installation, typisk fra kataloget c:/Programs/MinGW/
  • Download http://sourceforge.net/projects/mingw/files/latest/download?source=files, som er et lille installationsprogram. Gem først filen. Find frem til den downloadede fil, og kør den. Dette vil starte installationsprogrammet.
  • Vælg Install i den første dialogboks, der vises.
  • Vælg installations directory. Vi anbefaler c:\Programs\MinGW. Undgå at installere i kataloger som har spaces i katalognavnet. Lav om nødvendigt (og om muligt) kataloget Programs i roden af dit filsystem. Det er muligt at oprette MinGW kataloget i Programs fra MinGW installationsprogrammet. - Inden du trykker 'Continue' skal der altså stå c:\Programs\MinGW i feltet Installation directory.
  • Tryk blot Continue i de næste to dialoger. Det tager nok lidt tid inden Continue nr. 2 dukker op (mens MinGW Installation Manager downloades).
  • Nu dukker MinGW Installation Manager op. Her skal du vælge følgende komponenter: mingw-developer-toolkit, mingw32-base, mingw32-gcc-g++ og msys-base. Under 'all packages' skal du endvidere vælge de tre pakker som hedder mingw32-pthreads-w32. Du vælger ved at højre-klikke og vælge 'Mark for Installation'. msys-base udvælges formodentlig automatisk.
  • Aktiver menu punktet Installation > Apply Changes
  • I dialogen 'Schedule of Pending Actions', 'Ok to proceed?' Tryk på Apply
  • Nu downloades og installeres systemet - det tager sikkert 5-10 minutter. Vær tålmodig.
  • Når systemet melder: All changes applied successfully, så tryk Close og luk blot MinGW Intallation Manager. (Du kan vende tilbage til Installation Manager fra filen libexec/mingw-get/guimain.exe i din installation).
  • Du kan sikkert springe dette punkt over, fordi den fil vi bekymrer os om allerede findes. Den hedder fstab i msys/1.0/etc. Gå evt. ind i kataloget msys/1.0/etc i din MingW installation. I dette katalog skal du lave tekstfilen fstab. I efteråret 2017 findes den måske i forvejen, med korrekt indhold. Sørg for at fstab afsluttes med følgende linje (under antagelse af at du har installeret MingW i C:/Programs):
      C:/Programs/MinGW /mingw
    Vær opmærksom på ikke at gemme filen som fstab.txt. Filen skal være uden fil extension - navnet skal være fstab. (Hvis du bruger Notepad, tryk 'gem som' og skriv fstab i double quotes (gåseøjne). Dermed undgår du txt extension).
  • Gå nu ind i msys/1.0/ og lav en shortcut til filen msys.bat, som du trækker/sender ud på din desktop. Dette gør det let for dig at starte et terminal vindue, hvorfra du kan kalde gcc.

I august 2017 er den nyeste version af gcc i MinGW 6.3.0.
Hvis du starer terminal vinduet (via msys.bat) og hvis du skriver gcc --version får du oplysninger om versionsnummeret af gcc.

Nu har du installeret systemet. Følgende laver en lille nyttig tilpasning.

  • For at være konkret vil vi her antage at dit brugernavn er peter. Jeg antager at du fremover vil placere alle dine C filer i kataloget c:/users/peter/c. (Lav meget gerne underkataloger til hver lektioner, hver opgave mv.) Det er en rigtig god ide at du er systematisk med placeringen af dine C filer, så du let kan finde dem igen.
  • Gå nu ind i filen msys/1.0/etc/profile i dit MinGw installations katalog (med brug af din teksteditor) og erstat cd "$HOME" (i bunden af filen) med følgende
  •     cd c:/users/peter/c/
        PS1='$ '

Med denne tilpasning vil din MinGW terminal på bekvem måde starte op i kataloget c:/users/peter/c/ hver gang du bruger den, og du vil få en prompt der blot består af et dollar tegn.

Du har også mulighed for at tilføje MinGW til din Windows PATH. Måske vil dette være nødvendigt på nogle nogle maskiner. Udfør kun dette skridt hvis du får problemer. Og vær forsigtig her!

  • Gå ind i kontrolpanelet på din computer og søg efter 'environment variable'. (På danske Windows systemer hedder de miljøvariabler). Gå ind i 'Edit the system environment variables'. Vælg knappen 'Environment Variables...'. Tilføj med 'New...' eller 'Edit...' følgende til PATH:
      C:\Programs\MinGW\bin
    Tilføj helst i PATH i variablene for en aktuelle bruger (i stedet for System variable). Der er semikolon mellem de forskellige dele i PATH. Der bruges backslash i PATH... Tryk OK et par gange, og gå ud af kontrolpanelet.

Hvis du ændrer din Windows PATH som beskrevet ovenfor, kan du også aktivere gcc fra en Windows prompt.

Brug nu gcc i en MinGW shell på følgende måde - ved at aktivere den shortcut som du har lavet ovenfor:

  • Skriv pwd (som betyder print working directory). Dette giver dig blot information det nuværende katalog - det skulle gerne være dit c katalog, som du har lavet ovenfor.
  • Skriv gcc --version, og få bekræftet at du har den rigtige version af gcc.
  • Skriv et Hello World program i din valgte teksteditor, og gem filen i hello.c i dit c katalog. Vær sikker på du ved hvor du gemmer din C fil.
  • I MinGW terminalen: naviger om nødvendigt til kataloget med dine C filer (ved at bruge cd kommandoen et antal gange) og oversæt nu C filen med brug af gcc: gcc hello.c
  • Check at filen a.exe er skabt netop nu. Brug ls -l. Check tidsmærkningen af a.exe.
  • Kør Hello World programmet fra din MinGW shell ved simpelthen at skrive: a.exe.
  • Hvis du ønsker at lære flere terminal (shell) kommandoer - så se her.
  • Nu er du godt i gang med gcc i MinGW!


Opgave 1.6. Windows: Alternativ installation af MinGW GCC compiler - Mingw-w64

Dette er et alternativ til MingW installationen i en anden opgave: MinGW-W64. Opgaven er kun relevant hvis du kører Windows. Denne installation leder udelukkende frem til aktivering af C-compileren fra en Windows command prompt. (C-compileren i den anden opgave kan både aktiveres fra en Windows command prompt, og fra en Linux-agtig command prompt).

Brug evt. det direkte download link, for at få fat i det lille installer program.

Følg iøvrig de lette anvisninger i denne video. Videoen er lavet for et par år siden, så versionen af MinGW-w64 har givetvis ændret sig lidt. Men det er kun fint.

Opgave 1.6. Mac OS X: Installation of GCC

Hvis du gennemgår denne opgave kommer du godt i gang med gcc fra en command prompt på en Mac

I dette kursus anbefaler vi at du oversætter C programmer ved eksplicit at kalde en C compiler fra en kommando prompt (shell).

Vi anbefaler at Mac OS X brugere installerer programmerne GCC (Gnu compiler collection) og GDB gennem pakkehåndteringsystemet Homebrew. Homebrew er et pakkehåndteringsystem til Mac OS X der automatisere installationen af mange forskellige programmer, her i blandt GCC og GBD. Du kan læse mere om Homebrew på hjemmesiden http://brew.sh/.

Bemærk at denne opgave kun er relevant hvis du kører Mac OS X 10.6 eller nyere, og du ønsker at installere GCC og GDB gennem pakkehåndteringsystemet Homebrew.

Der er lavet en video (uden lydspor) der viser installationen.

Først installeres Homebrew på Mac OS X:

  1. Åben programmet Terminal, det kan ligger under Applications -> Utilities -> Terminal
  2. Kopier den følgende kommando fra http://brew.sh/ over i Terminal vinduet og afslut med enter:
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. Du vil nu bliver informeret om at xcrun behøver Command Line Developer Tools, til dette klikker du Install og dernæst Agree
  4. Når installationen er færdig klikker du Done og vinduet lukkes.
  5. Herefter fortsætter du installation af Homebrew ved at trykke enter i Terminal vinduet, og dernæst indtaste dit kodeord efterfulgt af enter.
  6. Når installationen melder Installation Succesful! er Homebrew installeret og du kan gå videre til installationen af GCC og GDB.

Derefter installer GCC og GDB gennem Homebrew på Mac OS X:

  1. Åben programmet Terminal, det kan ligger under Applications -> Utilities -> Terminal
  2. Kopier den følgende kommando over i Terminal vinduet og afslut med enter: brew tap homebrew/dupes
  3. Kopier den følgende kommando over i Terminal vinduet og afslut med enter: brew install gcc gdb
  4. GCC og GDB kan herefter køres i Terminal vinduet med kommandoerne gcc-versionummeret, hvilket på nuværende tidspunkt er gcc-5, og gdb

NOTE 1: På Mac OS X skal GDB køres med ekstra rettigheder, dette gøres med kommandoen sudo gdb.

NOTE 2: Kommandoen gcc i de nyeste udgaver af Mac OS X starter ikke GCC men derimod programmet Clang, der er en alternativ C compiler til GCC. Du kan se hvilken af de to programmer der blive kaldt på dit system med kommandoen gcc -v der printer versions information i Terminal vinduet.

Tak til Søren Kejser Jensen for formuleringen af denne opgave.

Opgave 1.6. Installation af Cygwin GCC compiler

Bemærk at dette IKKE er den anbefalede C installation i efteråret 2017, eller senere. Se i stedet for en anden opgave.

I dette kursus anbefaler vi at du oversætter C programmer ved eksplicit at kalde en C compiler fra en kommando prompt (shell).

Denne opgave er kun relevant hvis du kører Windows, og hvis du ønsker at bruge gcc (GNU C Compileren) under Cygwin.

Cygwin etablerer en Unix/Posix omgivelse på Windows, og gcc på Cygwin laver programmer som kræver tilstedeværelsen af Cygwin (særlige cygwin DLL filer) for at kunne køre. I modsætning til dette skaber MinGW programmer, som er tættere på Windows (og uafhængig af særlige DLL filer).

Følg denne vejledning for at installere Cygwin på Windows - se også den tilhørende video (som vil blive opdateret i 2013)

  • Download og kør http://cygwin.com/setup-x86.exe, som er et lille installationsprogram, som guider dig gennem installation fra Cygwin fra internettet.
  • Vælg Next i den første dialogboks, der vises.
  • Vælg 'install from Internet' (som er default muligheden).
  • I dialogen 'Select Root Install Directory' angiv C:\cygwin og 'Install for All Users', som begge er defaultvalget.
  • I dialogen 'Select Local Package Directory', vælg det katalog som foreslås pr. default.
  • I dialogen 'Select your internet Connection' vælg Direct Connection hvis du forbinder dig via AAU.
  • I dialogen 'Choose a download site' kan du vælge blot det øverste http sted. Jeg har også gode erfaringer med http://ftp.inf.tu-dresden.de.
  • Nu ser du siden 'Select Packages', hvor du skal vælge hvilke dele af Cygwin du ønsker at installere. Fold først Devel gruppen ud ved at trykket på + symbolet. Foruden 'default-valget' foreslås det at du installerer følgende

    • Devel > gcc-core: C compiler. Core C compiler subpackage.
    • Devel > Make: The Gnu version of the 'make' utility
    • Devel > GDB: The GNU Debugger

    Du vælger ved at trykke på Skip ikonet en eller flere gange indtil der vises et versionsnummer. Der er mange ting at vælge mellem i Devel gruppen. Det kan være en fordel at søge efter de tre ting via 'Search feltet' og dermed begrænse valgmulighederne.

    I august 2013 er den nyeste version af gcc core 4.5.3.

    Prøv under ingen omstændigheder at downloade alle dele af Cygwin! Og du skal ikke downloade sources.

  • Igangsæt nu, med 'Next >' installationen af de udvalgte dele. Installationsprogrammet foreslår endnu et antal pakker, som du blot accepterer. Når du vælger 'Next >' igen starter installationen, som tager et stykke tid. Der vises progress bars, så du kan følge med i installationsprocessen. Dette kan tage nogle minutter. Hvis det går alt for langsomt, så vælgt et andet download site!
  • Afslut med Finish - og angiv at du ønsker et CygWin ikon på din desktop.
  • Hvis Windows siger at 'this programs might not have installed correctly' angiver du blot at 'this program installed correctly'.
  • Start Cygwins kommando fortolker (shell), og naviger med cd path, f.eks. cd c:/users/peter/c/, til det sted, hvor du ønsker at lagre og organisere dine C filer. Vær sikker på at du laver fornuftige subkataloger i dit c katalog, f.eks. et katalog for hver øvelsesgang.
  • Jeg har tilpasset Cygwin en anelse, så det bliver lidt lettere at arbejde med værktøjet. Tilpasningen sker ved at tilføje et par linier i bunden af filen .bashrc, som typisk findes i kataloget C:/cygwin/home/peter hvis dit Windows brugernavn er peter.

Hvis du har lavet en eller anden fejl i din Cygwin installation kan du på ethvert tidspunkt køre installationsprogrammet igen, og ændre på din opsætning.

Afprøv nu dit setup:

  • Skriv et Hello World program i din valgte teksteditor, og gem filen i hello.c i dit c katalog.
  • I Cygwin's kommando fortolker (shell): Check lige at du har den rigtige version af gcc: gcc --version (4.5.3 eller nyere)
  • I Cygwin's kommando fortolker (shell): naviger til c directoriet og oversæt C filen: gcc hello.c
  • Check at filen a.exe er skabt netop nu. Check gerne tidsmærningen af a.exe.
  • Kør Hello World programmet: ./a.exe    (det første punktum betyder 'det nuværende katalog').
  • Nu er du i gang gcc i CygWin !

En compiler
Slide Indhold Stikord
Referencer 

En C compiler analyserer et kildeprogram, og transformerer det til en form som kan fortolkes (køres)

  • Analyse

    • Finder fejl inden programmet transformeres og køres

    • Syntaxfejl eller typefejl, men ikke logiske fejl

  • Transformation

    • Oversætter programmet, typisk til maskinnær kode

  • Options

    • Styrer forskellige compiler variationer

    • Parametre til compileren

    • Eksempler på anvendelse af gcc options

      • gcc -o outputFil inputFil.c

      • gcc -ansi -pendatic -Wall -lm -g inputFil.c

En teksteditor
Slide Indhold Stikord
Referencer 

Et program er et stykke tekst - derfor er der brug for en teksteditor

  • Ønskede egenskaber

    • Skal kunne arbejde med - og gemme - ren ASCII tekst

    • Skal anvende 'monospaced typefaces'

    • Skal kunne gemme teksten uden TABs

  • Valg af teksteditor

    • Hvis du allerede har en favorit teksteditor, så brug gerne denne

    • Du kan anvende en editor fra en integreret C-udviklingsomgivelser

      • Men muligvis får du ikke tilstrækkelig erfaring med C compileren...

    • Ellers, kan du overveje at bruge GNU Emacs

MS Word er ikke egnet til programmering

Timeregnskab på kurset
Slide Indhold Stikord
Referencer 

Kursets er normeret til 5 ECTS svarende til 150 timers studieindsats

Forventet disponering af kursets 150 timer

  • 13 samlinger i auditoriet: 26 timer.

  • 13 gange fælles opgaveregning i grupperummet: 26 timer.

  • Individuel forberedelse:

    • 38 timer til læsning i bogen, videolektioner studier af kursusvideo og quizzer.

    • 20 timer til hjemmeopgaver mv. herunder afleveringsopgaver.

  • 20 timer til udvikling af eksamensopgaven.

  • 20 timer til repetition forud for den mundtlige eksamen.

Quizzer på kurset
Slide Indhold Stikord
Referencer 

En del videoer følges op af en quiz.

Quizzen sikrer den faglige forståelse af det stof som videoen omhandler

  • Quiz egenskaber

    • Multiple choice og numeriske spørgsmål

    • Samlet opgørelse over opnåede points på tværs af quizzer

    • En quiz kan besvares flere gange - mod en mindre point fradag

    • Quiz rangliste

Henvisning

Konkurrence momentet i quizzerne tænkes som en motivation til at arbejde med stoffet

Afleveringsopgaver
Slide Indhold Stikord
Referencer 

Efter de fleste lektioner skal der afleveres et program

  • Hvorfor afleveringsopgaver?

    • Fremmer den individuelle øvelse i praktisk programmering

    • Træning forud for eksamensopgaven - den sidste afleveringsopgave

    • Giver et overblik over status og evt. problemer på holdet

    • Gør det muligt at adressere typiske problemer i starten af den følgende forelæsning

  • Kræver individuel login - med AAU id og et særligt password

Henvisninger

Erfaring fra de forrige år viser at studerende, der afleverer mange opgaver, typisk består eksamen i kurset uden de store problemer

Eksamensopgave og eksamen
Slide Indhold Stikord
Referencer 

Eksamen er baseret på en opgave, som løses efter at kurset er gjort færdig

  • Eksamensopgaven:

    • Individuel udvikling af et program, der løser et bestemt problem.

    • Udviklingsperiode: 23. november - 30. november 2017

  • Mundtlig, individuel eksamen:

    • Besvarelsen af eksamensopgaven er udgangspunktet for den mundtlige eksamen.

    • Ved eksamen diskuteres det afleverede program (der stilles spørgsmål om programdetaljer).

    • Eksamen kan gradvis bevæge sig over i mere generelle spørgsmål inden for kursets stofområde

    • Aktivt kendskab til fagets terminologi er vigtig for at få succes ved den mundtlige eksamen.

  • Individuel, 7 trins karakter, intern censor

Hjælpelærere og opgaveregning i IMPR
Slide Indhold Stikord
Referencer 

Der er seks hjælpelærere i IMPR

  • En hjælpelærer er fast afsat til Interaktionsdesign 3

    • I det seminarrum der fremgår af IMRP skemaet til hver lektion

  • 4-5 hjælpelærere er afsat til at besøge DAT/SW grupperum

    • I fire zoner

  • Kurt forsøger at besøge så mange grupper som muligt

    • Herunder IxD3 seminarrummet

Andre Opgaver
Slide Indhold Stikord
Referencer 

Opgave 1.8. Programmeringsstil

Denne opgave handler om hvordan et C program 'ser ud'. Opgaven giver dig indsigt i programmeringsstil, og den træner dig i brug af din valgte teksteditor og C-compiler.

Se indledningsvist på 'Hello World' programmerne på på denne slide. Læs kommentaren øverst i hvert program. Oversæt og kør programmerne (hvis det giver mening).

Et C program kan formateres på mange forskellige måder. Indrykning, tomme linier og ekstra mellemrum kan relativt frit tilføjes i ethvert C program. En bestemt programmeringsstil (programming style, coding style) giver anvisninger på, hvordan et program skal formateres. Dårlig og inkonsistent programmeringsstil hæmmer læsbarheden af et program. Formålet med denne opgave er at skabe bevidsthed om programmeringsstil. Emnet vil blive bragt op gentagne gange undervejs i kurset. Så hvorfor ikke starte allerede i dag?

Her er et eksempel på et program, som er formateret på en overordentlig uheldig måde:

#include              <stdio.h>  

int    main(
void
)
{float
first_number   ,
xxx, sidsteTal

;

  printf(
"Give me three: "    )

;scanf("%f    %f             %f"
,
&first_number,      &   xxx,    &
           sidsteTal);   printf(
"Theresult: %f\n", (first_number+xxx     +
sidsteTal                  ) / 3.0)

;  return 0
;}

Kan programmet oversættes? (Kopier det fra browseren over i en tekstfil via din teksteditor, og forsøg at oversætte programmet). Kan det køres?

Diskuterer svaghederne i det viste program. Kan du/I forstå hvad der sker i programmet?

Introducer en bedre programmeringsstil i programmet, ved udelukkende at ændre på 'white spacing' (indrykning, tomme linier, og antallet af mellemrum mellem programmets dele). Dette er en god øvelse, idet den tvinger jer til at tage stilling til rollen af hvert symbol I møder, uafhængig af hvordan symbolet indgår i opstillingen af programmet. Compileren arbejder på samme måde - i det mindste i udgangspunktet.

Lav evt. en version af programmet, som giver endnu større læsbarhed ved f.eks. at ændre på variabelnavngivning. Du må også gerne ændre på promten og øvrige udskrifter i programmet.

Der er mange ressourcer af programmeringsstil (i C) på nettet. Læs indledningsvis Wikipedia's artikel om emnet.

Opgave 1.8. Kopier, editer, compiler og kør et program

Formålet med denne opgave er at øve dig i arbejdsprocesserne på tværs af en teksteditor, en shell terminal, og en compiler.

Kopier først et program fra undervisningsmaterialet ind i din teksteditor. Du kan passende kopiere programmet som vises øverst i lektion 2 slide 23.

Lav en simpel ændring af programmet: Oversæt f.eks. den fast engelske tekst i printf til dansk.

Lav så et nyt directory (katalog/mappe) fra din terminal med navnet c-programmer. Brug kommandoen mkdir til dette. Dette nye directory kan passende placeres i dit bruger directory på din PC. Se meget gerne på de forskellige terminalkommandoer.

Gem programmet, som du har i din teksteditor, på filen prog.c i det nye directory c-programmer.

Gå ind i c-programmer med cd kommandoen, og oversæt programmet med gcc. Brug -ansi -pedantic og -Wall options, som beskrevet på compiler sliden.

Kør programmet, typisk med a.exe.


Samlede referencer
Indhold Stikord
Foldoc: C
Tiobe programming community index
IMPR video manager
2005 version af undervisningsmaterial - i lærebogsform
IMPR Moodle
Supplerende litteratur
Quiz Login
Mine afleverede programmer
Afleveringsside på nettet

 

Kapitel 1: Kursusintroduktion
Kursets hjemmeside     Forfatteren's hjemmeside     Om frembringelsen af disse sider     Forrige lektion (top)     Næste lektion (top)     Forrige lektion (bund)     Næste lektion (bund)     
Genereret: 11. september 2017, 14:16:38