Program (SICP) förändrade det intellektuella landskapet för inledande datorkurser. Tyvärr, tre problem-sin brist på en explicit programdesign metodologi, dess beroende av domän kunskap, och nyckerna i Scheme har gjort det integrera dåligt med resten av läroplanen och misslyckas med att behålla sin position i flera avdelningar. I detta dokument analyserar vi de strukturella begränsningarna i den typiska datavetenskapliga läroplanen och tolkar SICP och Scheme ur detta perspektiv. Vi diskuterar sedan hur vår nya bok, How to Design Programs, övervinner SICP:s problem. Vi hoppas att denna diskussion hjälper instruktörer att förstå strukturen och tolkningen av introduktionskurser om datavetenskap. Publiceringen av strukturen och tolkningen av datorprogram (SICP) [1] förändrade landskapet för den inledande läroplanen för datorer. Ursprungligen avsedd för MIT:s introduktionskurs i datavetenskap och elektroteknik, användning av boken sprids snabbt runt om i världen. När universiteten från Japan till Tyskland antog boken övergick de också till Scheme och en (för det mesta) funktionell strategi för programmering. Framgången för SICP och Scheme beror främst på dess nya filosofi. SICP-metoden befriar den inledande kursen från syntaxens tyranni. Istället för att arrangera en kurs kring de syntaktiska konstruktionerna av ett språk, förklarar SICP kortfattat den enkla syntaxen av Scheme och presenterar sedan en serie djupa begrepp inom datorisering och programmering: funktionell programmering, högre ordning funktioner, data abstraktion, strömmar, datastyrd programmering, en simulering av OOP via meddelandepassering, logik programmering, tolkar, kompilatorer och registermaskiner.
REF granskar kritiskt den inledande datorvetenskapliga läroplanen, fokuserar på bristerna i den klassiska strukturen och tolkningen av datorprogram, och föreslår ett alternativ baserat (delvis) på användningen av underspråk; en inspiration för vår kurs är deras påverkan på det synsättet.
The structure and interpretation of the computer science curriculum
{'venue': 'Functional and Declarative Programming in Education', 'journal': None, 'mag_field_of_study': ['Computer Science']}