Sunday, 22 December 2013

Computer Science: An Approach to Teaching and Learning

In 2012 we decided to completely review our Computer Science BSc. We are in the process of delivering the First Year of the degree at the moment. Our First Year aims are to:
  • Support each student to develop an appreciation of the key topics of the discipline through practical problem led holistic sessions that aim to reflect the way that CS occurs in the real world.
  • Integrate programming throughout the year and to use programming as a basis to engage with as many of the foundational aspects as possible.
  • Invert the locus of control for teaching and learning by allowing students to dictate the pace at which learning outcomes are demonstrated.
In order to support the First Year we made two decisions. The first was to use Racket as the programming technology. There were various reasons for this including the support Racket provides in terms of the Dr Racket tool, referential transparency, interaction through REPL, and the ability of Lisp-based languages to have a close association with foundational concepts such as sets, functions and data structures with the minimum of boiler-plate.

The second decision relates to course coherence and assessment. Under normal circumstances in the UK, a course is decomposed into a number of modules each of which  has its own syllabus and assessment processes. This imposes fire-walls around the different aspects of the overall year and makes it difficult to let the learning process naturally spread without over-assessment. For example, a First Year will normally contain modules for Architecture, Programming, Fundamentals etc. Topics such as graphs, events, or binary representation can occur as important features in any or all of these modules. If module apartheid is imposed then modules can tend to be overstuffed or there is a danger that topics might be missed. Furthermore, passing the year tends to require a minimum success in a range of assessments, usually 40% across the modules (typically with some minimum threshold in each). This raises the question: what does a student who has achieved 40% actually know? 40% of what

Our plan for the First Year is to introduce a sequence of examples, challenges, mini-projects, case-studies that provide an opportunity for multiple topics to be introduced and investigated and thereby  provide the opportunity for students to demonstrate the acquisition of knowledge and skills. Each of the key CS topics might occur multiple times throughout the year. A student is free (within reason) to choose how to do certain challenges and thereby when to demonstrate the learning.

Of course such a free-wheeling approach introduces a significant overhead regarding managing the learning portfolio of each student. This led to the second decision: the CS First Year is supported by a tool that manages Student Observable Behaviours (SOBs). The key topics are decomposed into a collection of SOBs that can be measured by a member of academic staff interacting with a student in a number of ways including labs, group sessions, observing presentations, or one-to-one tutorials. 

SOBs are tagged as: threshold, typical, or excellent. All essential foundational topics in CS are covered by threshold-level SOBs and to pass the year a student must have demonstrated all threshold SOBs. This ensures that the 40% problem described above does not arise: all student who pass the year have acquired a minimum knowledge of CS for all topics. The typical-level SOBs might introduce more in-depth or specialist knowledge and skills. Excellent-level SOBs provide an opportunity for students to demonstrate advanced standing through activities such as mini-projects.

Our SOB tool provides a platform for managing the student portfolios, but also has the benefit of providing a number of reports for both the students and the staff. Students can see their performance to date against what is expected (SOBs have demonstration time-windows that identify where the teaching team have planned opportunities for demonstration, although students are not tied to these) and against the rest of the cohort. Our experience to date is that this real-time reporting provides a beneficial incentive to maximise performance through competition within the cohort.

A screen-shot of the tool showing the current progress of students against threshold-level SOBs is shown below. The black line shows the expected progress. Actual progress is better than expected although most are around the 12-18 threshold SOB mark which is about right. The fact that there are quite a few ahead of the game is consistent with our experience that the approach has improved student engagement over previous versions of the CS First Year.

Here is a screen-shot of the typical and excellent level SOBs:

The year is organised as a sequence of 3 blocks each of which has a different academic team. Each team organises labs and workshops around the SOB framework and sets a single holistic block-challenge. The first challenge uses an Arduino connected to Racket to build a collection of traffic lights. The second challenge is to use data structures in Racket to build a simple dungeon game. The third challenge is to build a robot using Racket and a Raspberry Pi.

The block 2 challenge handout is shown below. It uses a series of simple games implemented in Racket: dungeon_rooms.rktmoving_about.rktmonsters_attack.rktcommand_language.rktitems.rkt.

Although we are only half-way through the first run of our new design, it seems to be working. Student engagement is very good with many students determined to 'get ahead of the game' by demonstrating SOBs as early as possible. Although many of the excellent SOBs are designed to be very challenging, as shown above some students are keen to try them. The use of Racket has gone well, although the small number of textbooks for Racket, and the dry nature of the on-line documentation, is a problem for introductory-level students who want to go further through self-study. However, in practice this appears to be a very minor issue. 

The SOB-tool is working better than we could have expected. It has been developed in-house but is not tied to CS or any course in particular. We would be happy to chat with anyone who might be interested in using the SOB-tool or finding out more details about how the CS First Year has been designed and delivered.

Thursday, 25 April 2013

Call for Papers: Towards the Model Driven Organization

The First International Workshop
TowArds the Model DrIveN Organization 
29 Sept 2013
As part of the ACM/IEEE 16th International Conference on 
 Model Driven Engineering Languages and Systems (MODELS 2013)
Miami Florida USA 29 September 2013 through 4 October 2013


Modern organizations are faced with the very challenging problem of rapidly responding to continual external business pressures in order to sustain their competitiveness or to effectively perform mission-critical services. Difficulties arise because the continual evolution of systems and operational procedures that are performed in response to the external pressures eventually leads to suboptimal configurations of the systems and processes that drive the organization.

The management of continuous business change is complicated by the current lack of effective mechanisms for rapidly responding to multiple change drivers. The use of inadequate change management methods and technologies introduces accidental complexities that significantly drive up the cost, risk, and effort of making changes. These problems provide opportunities for developing and applying organization modeling approaches that seek to improve an organization's ability to effectively evolve in response to changes in its business environment. Modeling an organization to better support organizational evolution leads to what we call a Model Driven Organization (MDO), where an MDO is an organization in which models are the primary means for interacting with and evolving the systems that drive an organization.

DEF: A Model Driven Organization uses models in the analysis, design, simulation, delivery, operation, and maintenance of systems to address its strategic, tactical and operational needs and its relation to the wider environment.

An organization's Enterprise Systems (ES) support a wide-range of business activities including planning, business intelligence, operationalization, and reporting. ES are thus pivotal to a company's competitiveness. Modelling technologies and approaches that address the development, analysis, deployment and maintenance of ES have started to emerge. Such technologies and approaches must support a much broader collection of use-cases than traditional technologies for systems design modeling. Current ES architectures do not adequately address the growing demands for inter-organisational collaboration, flexibility and advanced decision support in organizations.

Realizing the MDO vision will require research that cross-cuts many areas, including research on enterprise architectures, business process. and workflow modeling, system requirements and design modeling, metamodeling, and models@runtime. This workshop seeks to bring together researchers and practitioners from a variety of MDD research domains to discuss the need, feasibility challenges and proposed realizations of aspects of the MDO vision.

The full-day workshop aims to provide a forum to report and discuss advances and current research questions in applying modelling technologies to organizations in order to substantially improve their flexibility and economics. The aim is to integrate various areas of research such as: models at runtime, (meta-) modelling, modelling tools, enterprise architecture, architecture modelling and business processes.  The workshop is a full-day and will include an invited speaker, paper presentations and a discussion on a research roadmap that will contribute to achieving Model Driven Organizations.


Submissions are solicited in areas that are related to this aim, and that address model-based approaches to the following non-exhaustive list of topics:
  • Frameworks for the Model Driven Organization.
  • Enterprise analysis including risk analysis and resource planning.
  • Stakeholder support through multiple perspectives.
  • Domain specific languages for enterprise modelling.
  • Patterns and best practice for enterprise modelling.
  • Modelling technologies for the Model Driven Organization.
  • Case studies.
  • Maturity models for the Model Driven Organization.
  • Enterprise simulation.
  • Enterprise-wide socio-technical issues.
  • Applying information systems theory to the Model Driven Organization.
  • Enterprise use-cases including:
    • Business change.
    • Regulatory compliance.
    • Mergers and acquisitions.
    • Business goal alignment.
    • Outsourcing.
    • Business intelligence.
Submissions must be in the scope of the workshop as described above. Submission process will be managed by Easychair: All submissions will be required to conform to LNCS format:

Submissions are invited in the following categories:
  • research papers reporting on completed research activities. (15 pages + up to 2 pages for references).
  • short papers describing work in progress (8 pages + up to 2 pages for references).
  • position papers describing a new approach to a research question (8 pages + up to 2 pages for references).
  • case-study papers reporting on real-life case studies (8 pages + up to 2 pages for references).


Publication of the accepted workshop papers will be organised via the MODELS workshop chairs in a formal digital library. In addition the workshop organisers are planning to invite selected papers to be extended and submitted to a publication (via collections such as LNCS or LNBIP) of selected works describing research contributing to the aim of the Model Driven Organization. 


See  the MODELS 2013 web site for registration.


Organizing Committee

Program Committee:

Important Dates

  • Workshop Paper Submission Deadline: 15 July 2013
  • Workshop Paper Notification to Authors: August 2013
  • Workshop Dates: 29 Sept 2013


Contact the workshop organisers using: amino2013@CS.ColoState.EDU

Wednesday, 30 January 2013

DSL Engineering

Domain Specific Languages and Language Based Software Engineering are important approaches and I would argue that Systems Engineering is a form of Language Engineering whether developers realise that they are doing it or not. Markus Völter has published a new book about DSL Engineering that should be essential reading for anyone who wants a thorough grounding in this subject and some of the supporting technologies.

A Cure for Death by Powerpoint

Franco Raimondi has blogged about The Nomadic Board which is an approach to make teaching and learning much more interactive. Linking technologies together as described is a great way to support problem driven teaching and learning where lecturer and student work together to develop the slides during the session.