Skip to main content Skip to navigation

CS405 content 2013-4

The ten weeks of the module will be devoted to addressing the following questions:

  1. Orientation
    • To what extent have the problems that underlie the 'software crisis' been resolved?
    • Can current principles and tools for software development meet the additional challenges that contemporary use of computers present?
  2. Construals
    • Do we / why do we need a science of computing that is broader than 'computational thinking' supports?
    • What alternative core focus is there for computer science other than programming?
  3. Making construals
    • What principles and tools are best suited to making construals?
    • What role can the computer play in their construction?
  4. Programming paradigms
    • Is every principled way to use the computer just a different style of programming a Turing machine?
    • Is it possible to resolve the problems of software development by integrating different styles of programming, and why is this so difficult?
  5. Formalism
    • What is the role and potential for formal specification and verification in software development?
    • Is there any alternative basis on which the quality of software can be assured?
  6. Development process
    • To what extent can techniques such as agile development and scripting resolve the problems of meeting users' evolving requirements?
    • Can the demands of users of the web, mobile devices and embedded systems for ways to customise applications flexibly in the stream-of-thought be addressed within the conceptual framework of software development as currently understood?
  7. Learning
    • How well is current thinking about software development suited to the constructionist goal of establishing an intimate link between development and domain learning?
    • What can be learned from parallel research in educational technology?
  8. Concurrency
    • How well do current software development techniques address the need to represent and reconcile the perspectives of all the state-changing agents in a complex system?
    • Do informal commonsense notions of concurrency have any place in software development?
  9. Multi-agent development
    • How can we integrate the design activities of the many different participants in complex software system development, as when supporting distributed participatory design?
    • What kinds of development approach can help us to achieve conceptual integrity?
  10. Retrospect and prospect
    • How far does the reconceptualisation of computing associated with making construals address the challenges of software development?
    • What further development of the principles and tools is needed?