正在加载图片...
$29.4 TOWARDS A NEW SOFTWARE PEDAGOGY 945 generation,optimization.Then tools for lexical analysis and parsing,such as Lex and Yacc,became widely available,enabling students to spend less time on these front-end tasks.The producer-consumer strategy generalizes this change. The inverted curriculum The consumer-to-producer strategy has an interesting counterpart in electrical engineering,where Bernard Cohen has suggested an"inverted curriculum".Criticizing the classical progression(field theory,then circuit theory,power,device physics,control theory,digital systems,VLSI design)as "reductionist",the proponents of this approach suggest a more systems-oriented progression,which would successively cover: Digital systems,using VLSI and CAD Feedback,concurrency,verification. Linear systems and control. Power supply and transmission,impedance matching requirements. Device physics and technologies,using simulation and CAD techniques The software education strategy suggested above is similar:rather than repeating phylogeny,start by giving students a user's view of the highest-level concepts and techniques that are actually applied in industrial environments,then,little by little,unveil the underlying principles. A long-term policy The consumer-to-producer strategy has an interesting variant applicable,for application- oriented courses such as operating systems,graphics,compiler construction or artificial intelligence,by professors who are in a position to define a multi-year educational plan. The idea is to let students build a system by successive enhancement and generalization,each year's class taking over the collective product of the previous year and trying to build on it.This method has some obvious drawbacks for the first class (which collectively serves as advanceman for future generations,and will not enjoy the same reuse benefits),and I must confess I have not yet seen it applied in a systematic way. But on paper at least it is attractive.There hardly seems to be a better way of letting the students weigh the advantages and difficulties of reuse,the need for building extendible software and the challenge of improving on someone else's work.The experience will prepare them for the reality of software development in their future company,where chances are they will be asked to perform maintenance work on an existing system long before they are asked to develop a brand new system of their own. Even if the context does not permit such a multi-year strategy,instructors should try to avoid a standard pitfall.Many undergraduate curricula include a"software engineering" course,which often devotes a key role to a software project to be carried out by the students,often in groups.Such project work is necessary,but often disappointing because of the time limitations due to its inclusion in a one-trimester or one-semester course.When§29.4 TOWARDS A NEW SOFTWARE PEDAGOGY 945 generation, optimization. Then tools for lexical analysis and parsing, such as Lex and Yacc, became widely available, enabling students to spend less time on these front-end tasks. The producer-consumer strategy generalizes this change. The inverted curriculum The consumer-to-producer strategy has an interesting counterpart in electrical engineering, where Bernard Cohen has suggested an “inverted curriculum”. Criticizing the classical progression (field theory, then circuit theory, power, device physics, control theory, digital systems, VLSI design) as “reductionist”, the proponents of this approach suggest a more systems-oriented progression, which would successively cover: • Digital systems, using VLSI and CAD. • Feedback, concurrency, verification. • Linear systems and control. • Power supply and transmission, impedance matching requirements. • Device physics and technologies, using simulation and CAD techniques. The software education strategy suggested above is similar: rather than repeating phylogeny, start by giving students a user’s view of the highest-level concepts and techniques that are actually applied in industrial environments, then, little by little, unveil the underlying principles. A long-term policy The consumer-to-producer strategy has an interesting variant applicable, for application￾oriented courses such as operating systems, graphics, compiler construction or artificial intelligence, by professors who are in a position to define a multi-year educational plan. The idea is to let students build a system by successive enhancement and generalization, each year’s class taking over the collective product of the previous year and trying to build on it. This method has some obvious drawbacks for the first class (which collectively serves as advanceman for future generations, and will not enjoy the same reuse benefits), and I must confess I have not yet seen it applied in a systematic way. But on paper at least it is attractive. There hardly seems to be a better way of letting the students weigh the advantages and difficulties of reuse, the need for building extendible software and the challenge of improving on someone else’s work. The experience will prepare them for the reality of software development in their future company, where chances are they will be asked to perform maintenance work on an existing system long before they are asked to develop a brand new system of their own. Even if the context does not permit such a multi-year strategy, instructors should try to avoid a standard pitfall. Many undergraduate curricula include a “software engineering” course, which often devotes a key role to a software project to be carried out by the students, often in groups. Such project work is necessary, but often disappointing because of the time limitations due to its inclusion in a one-trimester or one-semester course. When
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有