Assessing Alberta Computer Science Curriculum

A CS4HS Collaborative Document

Introduction

In July of 2012, a group of Northern Alberta Computer Science teachers met for a 2 day session to discuss standards of assessment for the key CSE course.  In August of 2013, we continued this discussion.  Both  sessions were part of the Google and University of Alberta sponsored CS4HS summer workshops.  

Goals for the Assessment Session:

What We Accomplished

What we ended up focusing on was the key programming credits of the CS curriculum.  We began by identifying the most important concepts and then came to an agreement on the Acceptable Standard and Standard of Excellence for each.  

The information is not meant to be prescriptive but can be thought of as a ‘suggested emphasis’ with which to plan your teaching.

The document has not been edited. I apologize for the inevitable errors.

Next Steps

Our goal is to get together again to further flesh out this document.  Sample problems that fulfill the standards with exemplar marking guides is a goal.

The three theory credits also do not appear.  Exemplar assignments will be gathered but much of the skills of these credits are integrated into the others and therefore there is no clear way to identify an Acceptable Standard, for example.

The Attendees

2012: Gerald Beaudoin, Robert Reid, Sean McKennitt, Lance Pedersen, Harvey Duff, Trevor Kellock and Scott Couprie

2013: Andy Mikula, Gordon Balbar, Harvey Duff, Jeff Karas, Lance Pedersen and Scott Couprie


Course: CSE1110: Structured Programming 1

Key Skills or Knowledge

Programming

  • input / output
  • Datatypes/variables
  • Operations and manipulating data
  • Formatting output

Algorithmic (computational) thinking

  • problem solving
  • Sketching a solution (flowcharting, pseudocode, etc.)

Learning about programming environments

Good coding practices (commenting and indenting)

  • indenting
  • existence of commenting
  • naming conventions for variables
  • logical program structures

Suggested Weighting

Note: Weightings are designed to drive instructional focus more so than to drive assessment

50

  • 5 (more with Java)
  • 20
  • 20
  • 5

30

10

10

Acceptable Standard

Basic input/output on a simple problem that includes

  • knowledge of basic data types (strings, integers and decimals)
  • simple math operations

Examples of simple problems:

Standard of Excellence

Acceptable Standard skills plus:

Input/output on more complex problem(s) that includes

  • Formatting of output
  • higher level data manipulation
  • reusing variables

Demonstration of algorithmic thinking

  • Decomposing the problem using an appropriate means (such as flowcharting, pseudocoding, etc.)

Uses good coding practices throughout

Examples of more complex problems:

  • Java “So You Think You Can Rap Part 2”


Course: CSE1120:Structured Programming 2

Key Skills or Knowledge

Reinforcement and expansion of all skills from SP1.

Simple Boolean logic

Conditionals (If Statements)

  • plus if... else if, etc.
  • And, Or, Not
  • Switch

Iterations (Loops)

  • while and do while
  • for loop

Suggested Weighting

30

40

30

Acceptable Standard

Boolean variables

Evaluating simple boolean logic

Solving simple problems that include

  • if statement
  • loops

Read and understand nested code

Examples of simple problems:

  • Number game assignment (Computer stores a number between 1 and 100, user guesses and is told higher or lower)

Standard of Excellence

Evaluating more complex boolean logic (and, or, not)

Uses complex boolean logic to write clean/concise code (replaces multiple if statements with fewer more complex statements)

Solve problem(s) that requires nested conditionals and loops

Uses good coding practices throughout

Examples of more complex problems:


Course: CSE2110: Procedural Programming 1

Key Skills or Knowledge

Advantages of modular programming (using functions/methods, etc.)

Using basic functions

Using functions with return values

Using functions with parameters

  • including a discussion of overloading

Incorporating (simple to access) but externally written functions or libraries

Scope of variables

Suggested Weighting

Integrated into discussions

20

40

40

Integrated into discussions

Acceptable Standard

Solving simple problems that include

  • functions with return values

Tracing the flow of execution

Examples of simple problems:

Standard of Excellence

Solving more complex problems that include

  • multiple functions with return values and parameters
  • multiple parameters
  • And/Or Solving problems with less direction

Using functions wherever appropriate

Demonstrate some grasp of scope of variables

Uses good coding practices throughout

Examples of complex problems:


Course: CSE2120: Data Structures 1

Key Skills or Knowledge

Advantages and limitations of one data structure

Accessing and manipulating the contents of a data structure

  • common errors (off by one, index out of bounds)

For Loops (review from 10?)

Using parallel data structures

  • linear search

2D data structures

Intro to a dynamic data structure

Suggested Weighting

10

50

Integrated throughout

20

10

10

Acceptable Standard

Create, output and manipulate the contents

Solve a problem that uses a simple linear search with predefined data structures

Using  linear searching to access parallel arrays

Examples of simple problems:

Standard of Excellence

Solving a problem where students define their own data structures

Demonstrates understanding of 2D Arrays

Recognizes the advantages of dynamic data structures

Uses good coding practices throughout

Examples of complex problems:

  • Hangman Game
  • Caesar Shift Encryption Program


Course: CSE3120: Object Oriented Programming 1

Note: This course is taught by many teachers at the 20 level

Key Skills or Knowledge

Theory of OOP

  • advantages
  • OOP terminology
  • messages

Creation of Object based programs

  • using multiple instances
  • constructors, methods and fields

Private, public and protected members

Using test classes

Optional: dynamically creating instances and storing them in a dynamic data structure

Suggested Weighting

20

70

10

Acceptable Standard

Solving simple problems that include:

  • two classes (main and one other)
  • manipulating data for multiple instances

  • Bank Account (withdraw, deposit, getBalance functions)

Standard of Excellence

Solving problems that include:

  • more than 2 classes
  • multiple constructors within a single class
  • private members with accessor and mutator functions

  • Family Tree
  • Car gas mileage
  • Internet Dating
  • Bank Accounts stored in a dynamic data structure (such as a list)


Course: CSE3110: Iterative Algorithms 1

Key Skills or Knowledge

Binary vs Linear searching

Differences between the following sort algorithms:

  • bubble, insertion, selection

Merge algorithm

  • appending and interweaving

Optional: introduction to recursive algorithms

Suggested Weighting

Acceptable Standard

Identify the differences between the sort algorithms

Standard of Excellence

Solving problems that include:

  • binary search
  • one sort algorithm