Indtil 2004

På basis er det besluttet, at der skal være et grundlæggende kursus i
programmering på D og E-retningerne. I Esbjerg har man besluttet, at dette skal
foregå i C++. Det er derpå blevet besluttet, at det skal være i et Windows-miljø,
hvorfor man her anvender Borlands C++ Builder, som det praktiske værktøj.
Kurset er et StudieEnhedskursus (SE-kursus), det betyder bl.a. at kurset
evalueres med en eksamen.
Kurset evalueres ved en mundtlig prøve.
Bedømmelsen vil der blive afsluttet med et Bestået
eller Ikke bestået. Bedømmelsen vil blive baseret på en
diskussion over et miniprojekt.
Miniprojektet er en større skriftlig opgave inde for det gennemgåede pensum.
Miniprojektet kan udarbejdes af hele gruppen i fællesskab, eller gruppen kan
beslutte at dele sig i undergrupper, på basis af aktuelle interesser. Et miniprojekt er et
program udarbejdet i Borland C++ Builder, programmet skal demonstreres i
funktion under gruppens fremlæggelse. Programmet skal være velstruktureret,
læseligt og med forståelige kommentarer i tilstrækkeligt omfang.
Arbejdsindsatsen for miniprojektet forventes at svare til ca. 2 dage pr.
deltager i projektgruppen. Under udarbejdelsen af miniprojektet vil der være
mulighed for at få hjælp af kursusholderen i begrænset omfang.
Man vil ikke på disse sider finde en oversættelse af lærebogen. Forudsætningen for at forstå disse sider er, at man læser i lærebogen, hvorefter disse sider vil være supplering til lærebogens tekst. Desuden vil der på disse sider være ekstra eksempler og forslag til øvelser, som der kan arbejdes med i kursusperioden. Disse sider er ikke fuldstændig selvforklarende, det anbefales, at man inden hver lektion udskriver siderne og anvender siderne til at tage notater på, når programteksterne gennemgås.
Programmet afleveres til storgruppesekretæren i form af 2 stk. sidenummererede programudskrifter, samt 2 stk. disketter med kildetekster og hjælpefiler. Afleveringsfristen meddeles senest efter 6. kursusgang. Hvis gruppen selv har formuleret opgaven, skal gruppen endvidere selv formulere en kort beskrivelse af det problem, som programmet løser.
Husk klart at angive gruppe-nr. og navnene på alle deltagerne i miniprojektet, både på udskrifterne og på disketter/CD'er.
Den mundtlige prøve finder sted med de gruppemedlemmer, som
har udarbejdet miniprojektet sammen. Rækkefølgen af gruppernes eksamination vil
fremgå af eksamensplanen.
Hver studerende medbringer en kopi af miniprojektet, som er
identisk med den afleverede kopi, dvs. både udskrift og diskette. Eksaminationen
starter med en kort demonstration af det udviklede program på en PC i
eksamenslokalet. Hver studerende eksamineres via en samtale i kursets teoretiske
stof. Samtalen belyser det teoretiske stof så vidt muligt med udgangspunkt i det
udviklede program.
Der afsættes ca. 15 min. pr. studerende til eksamen, dvs. 45 min., til en gruppe
med 3 studerende. Bedømmelsen foretages individuelt og er en helhedsvurdering
med hovedvægten lagt på den mundtlige præstation.
Pensum fremgår af disse hjemmesider.
Emnet for miniprojektet fastlægges efter projektgruppens valg. Nedenfor er vist nogle eksempler på miniprojekter, men gruppen er velkommen til selv at finde på projekter. Gruppen kan efter ønske få en vurdering af egnetheden af egne forslag til et miniprojekt. Dette sker ved henvendelse til kursusholderen.
Følgende er eksempler på emner til miniprojekter:
Database, med mulighed for at indsætte data, redigere
data, slette data og udskrive data både til skærmen og på papir, f.eks. med et
af følgende emner, grupperne må også selv finde andre emner.
Advarsel: Brug ikke
Builderens indbyggede databasefunktion, hvis der kun udarbejdes et simpelt
databaseprogram, I vil udvikle. Det vil give for lidt programmering, og så er
der risiko for at dumpe:
a. Adresselister
b. CD-kartoteker
c. Bogregistrer
Matematiske programmer, som beregner volumen, overflade, tyngdepunkt osv. af geometriske emner.
Diassjov, f.eks. billeder af familien eller en sommerferie, billederne kan enten vises sekventielt eller med mulighed for at vise billederne i tilfældig orden.
Oprettelse af en aftalekalender.
Spil.
a. Hangman
b. Yatzy
c. Mastermind
d. Kabaler
e. Minefelt
f. Mahjong
g. Find selv på andre
Histogrammer til illustration af statistiske problemer.
Opgave i tilknytning til gruppens P1?
For at man skal have en rimelig chance for at bestå eksamen skal, der i programmet indgå både løkker og forgreninger, det er ikke nok med blot en enkelt løkke og eller en enkelt forgrening. Hvis I er i tvivl så tal med vejlederen, således at I ved, om omfanget af programmeringen kan tilfredsstille eksamenssituationen.
Da lærebogen endnu ikke er ankommet, kan det
anbefales, at man læser lektionerne på hjemmesiderne på adressen:
www.aue.auc.dk/c-kursus.
1. Introduktion til Borland C++ Builder
Lærebogen siderne 1 - 16 og 165 - 190
Gennemgang af
programmeringsfladen
Ethvert Windows-program er
hændelsesstyret (Event driven)
Et simpel program udarbejdes
2. Farver og billeder
Lærebogen siderne 261 - 297 og 357 - 274
Indsætning af objekter
(komponenter) på en form
Konstruktion af kode til at få
objekterne til at reagere
Et simpelt eksempel på træk og slip
teknik til flytning af egenskaber
3. Typebegrebet og listebokse
Lærebogen siderne 17 - 43 og 279 - 292
Gennemgang af typer til erklæring af variabler
Konstruktion af kode til demonstration af
heltalstyper
Konstruktion af et program til
demonstration af tekster
Konstruktion af program med forskellige
funktioner i relation til Listebokse
4. Menuer og mere om hændelsesstyring
Lærebogen siderne 129 - 148 og 241 - 259
Der fremstilles et lille program, hvor funktionerne styres via en menu
Der fremstilles et eksempel med en Popup-menu
De næste eksempler handler om afkrydsningsknapper og alternativknapper
Sidste eksempel viser, hvorledes man kan registrere forskellige museklik
5. Forgreninger, løkker og selvdefinerede typer
Lærebogen siderne
43 - 78
Simple forgreninger og forgreninger med
flere valg
Tælleløkker og uendelige løkker
Tabeller og poster
Selvdefinerede typer
6. Procedurer og funktioner
Lærebogen siderne 79 - 110 og 317 - 334
Der arbejdes med selvdefinerede procedure
og funktioner
Der arbejdes med pointerbegrebet
7. Units uden forme og flere forme og dialogbokse
Lærebogen siderne 111 - 128 og 191 - 206
Der oprettes et matematik unit, som kan anvendes ved matematiske beregninger i
forskellig sammenhæng
Der oprettes en dialogboks til indstilling
af andre forme
8. Strenge og faneblade
Lærebogen siderne 149 - 164
og 207 - 240
Der udarbejdes et program, som udskriver
standard tegnsættet
Der arbejdes med AnsiString-begrebet
Der oprettes et program med flere sider
fordelt på faneblade
9. Filer og filhåndtering
Lærebogen siderne 299 - 316 og 335 - 355 og 383
- 396
Tekst under udarbejdelse
10. Projekteksempler
Lærebogen siderne 375 - 382 og 397 - 426
Der introduceres et Mastermind-spil
11. Projekteksempler
Der introduceres et Yatzy-spil
12. Projekteksempler
Der introduceres en kabale med et fuldt
kortspil
Ken Reisdorph, Teach Yourself Borland C++ Builder 4 in 24 hours, SAMS, 1999 eller nyere udgave
God grundbog
Deitel & Deitel, C How To Program, Introducing C++ and Java, Prentice
Hall
Bøger specielt om C++ Builder
John Miano, m.fl., Borland C++ Builder HOW-TO, Waite Group Press.
Dårlig som lærebog, men indeholder mange gode praktiske eksempler
Kent Reisdorph, m.fl., Borland C++ Builder 3 eller 4
Unleashed, SAMS Borland Press. Bogen til version 3 har de bedste
eksempler for begyndere, i øvrigt handler begge bøger meget om Builderens
databasefunktioner.
Jarrod Hollingworth, m.fl., C++ Builder 5 Developer's Guide, SAMS
Publishing. En næsten komplet vejledning til C++ Builder, indeholder mange
praktiske eksempler, men bogen kan godt virke lidt svært tilgængelig, den kræver
en del kendskab til generel C++, for at man får det fulde udbytte af bogen.
Lærebogen er obligatorisk, de øvrige bøger er dyrere og mere omfattende end dem, som er listet først. Det er valgfrit at købe disse, de anbefales kun til dem, som ønsker at vide mere end det, der gennemgås på kurset.
En internetadresse, hvor der kan hentes meget inspiration til projekter, er: www.programmersheaven.com, men der ud over, findes der et væld af adresser med C++ programmører, som gerne vil dele erfaringer på nettet, hvis man har tid. Ofte er princippet det, at man ikke blot kan få. Hvis man afleverer ideer, får man derpå adgang til andres erfaring og viden.