Download presentation
Presentation is loading. Please wait.
Published byDora Morton Modified over 9 years ago
1
Computer Science 101 Preparing programmers to be architects Michael Huth, mrh@doc.ic.ac.ukmrh@doc.ic.ac.uk Computing, Imperial College
2
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.
3
Old and new challenges 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.
4
Traditional outcomes Be able to state requirements 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 reason about implementations: Run myFac on “good” test values; prove that myFac “works”.
5
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 …
6
Ability to formally model design
7
Strategies: students … 1.Week 1-5: … specify, implement, and test traditional programs in open, distributed language. 2.Week 6-10: … learn to use distributed language features; get exposure to design; 3.Week 11-15: Transfer acquired skills of first block to second one. 4.Assessment: Students evaluate the approach 1, 2, and 5 years after course completion.
8
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: marry theory and practice in a key CS course.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.