80 likes | 185 Views
Computer Science 101 Preparing programmers to be architects. Michael Huth, mrh@doc.ic.ac.uk Computing, Imperial College. Outline of talk. Challenges in teaching first-year programming. Learning outcomes in the “slashdot” world. Strategies for realizing those outcomes.
E N D
Computer Science 101Preparing programmers to be architects Michael Huth, mrh@doc.ic.ac.uk Computing, Imperial College
Outline of talk • Challenges in teaching first-year programming. • Learning outcomes in the “slashdot” world. • Strategies for realizing those outcomes. • Outlook: a marriage of theory and practice.
Traditionally, incoming students have dramatically different skills; programming involves logic and artistic activity; real-world languages are too rich to be covered in full. Today, software is open and distributed; requires architectural design and analysis; interfaces across languages. Old and new challenges
Traditional outcomes Be able to • staterequirements and specifications of programs: “The call fac(m) returns the factorial of m, given that m >= 0.” • implement specifications: int myFac(m) { if (m==0) {return 1;} else { return m * myFac(m-1);}} • test and reasonabout implementations: Run myFac on “good” test values; prove that myFac “works”.
New outcomes • Extend old outcomes to open, distributed programs: try { Url u = Inbox.getUrl(); } catch(exception e) { print “URL not found”;} AudioClip a = new Audioclip(); a = Url.downloadclip(u); if (this.hasLicence(a)) {Realplayer.playClip(a);} else { BigBrother.notifyViolation(this,u,a);} • And ensure the …
Strategies: students … • Week 1-5: … specify, implement, and test traditional programs in open, distributed language. • Week 6-10: … learn to use distributed language features; get exposuretodesign; • Week 11-15: Transfer acquired skills of first block to second one. • Assessment: Students evaluate the approach 1, 2, and 5 years after course completion.
An unexpected marriage • Reality check: teach software-engineering languages early on. • Key language features: abstract, complex, and mathematical. • “Hot” principles of practice (e.g. B2B, P2P): realized in very abstract formalisms. • Opportunity: marrytheoryandpractice in a key CS course.