For 50 år siden fandtes der en håndfuld programmeringssprog, nu findes der tusindvis. Som programmør kan man klare sig et stykke vej med at kunne et programmeringssprog som Java, men man vil ofte komme ud for at skulle løse programmeringsopgaver med brug af andre sprog. Det er derfor en væsentlig kvalitet hos en programmør og en software designer at man ikke er låst fast til det første sprog man lærte at kende. De mest almindeligt kendte programmeringssprog befinder sig enten i det imperative paradigme eller i både det imperative og det objektorienterede paradigme. For eksempel er Pascal og C begge imperative sprog hvorimod Java og C++ både er imperative og objektorienterede. Disse sprog adskiller sig væsentligt fra logikprogrammeringssprog som Prolog og funktionsprogrammeringssprog som SML. Disse kaldes begge for deklarative sprog. Logikprogrammering er baseret på logik hvorimod funktionsprogrammering er baseret matematikkens funktionsbegreb. Kurset tager udgangspunkt i at deltagerne er bekendt med et proceduralt eller objektorienteret programmeringssprog (i praksis vel Java) og vil derfra vise nogle centralt anderledes måder at programmere på. Hovedvægten i kurset vil ligge på de praktiske, begrebsmæssige og tankemæssige problemer der ligger i at skulle løse programmeringsopgaver i et nyt programmeringssprog. Man vil se at ikke alle programmeringssprog er lige egnede til alle programmeringsopgaver og at man måske vil vælge helt forskellige løsningsmetoder afhængig af sproget. Kursets indhold vil have et mindre overlap med andre kurser som har brugt SML eller Prolog: Dat C, Dat C*, Vidensrepræsentation, samt Sprog & Logik. Der er dog ingen restriktioner mellem disse kurser og dette. |