Skills Based Grading Framework
Overview
This course will be using skills based grading, meaning that a student’s grade will be solely based on their ability to prove competency of the core skills covered throughout the course. Some key components of this grading framework are:
- All skills will be rated on a 0-4 scale.
- Students will be given multiple opportunities to show mastery of each skill.
- The skills will be clearly listed on the course syllabus.
- Skill grades will be based on assessments (exams, quizzes, projects, labs, etc) only.
- Assessments will be clearly noted when assigned.
- Homework, classwork, entrance/exit tickets and other assignment types will be given, but will not factor into a students skill grade.
Assignment Types
Homework And Classwork
The purpose of these assignments is for students to practice, discover and try things out. These assignments are vital elements of a student’s path to skill mastery. These are not included in a students grade because they are not designed to assess skills but rather to hone them. Student’s grades should not be affected by how long or quickly it takes to complete. Students should also not be discouraged from trying out something different, exploring new possibilities or even failure to complete these assignments, as all of those activities are integral to learning and eventually mastering skills.
These assignments will also provide the teacher with important information about the current abilities of each student and the class as a whole. These assignments will not be graded, but they will be used in class, solutions may be provided, and feedback will be given as often as needed and possible.
Assessments
All assessments are designed to assess a students skill competency. It will be clear which skills are to be assessed for a given assessment. Instead of a single grade for an assignment (i.e. 92/100, 41/50, 3.5/4), students will be given a single grade for each skill assessed on a 0 - 4 scale as follows:
- 4: Mastery of the skill demonstrated.
- 3: Competency of the skill demonstrated.
- 2: Developing competency of the skill demonstrated.
- 1: Minimal competency of the skill demonstrated.
- 0: No part of the skill demonstrated.
Exams & Quizzes
Exams and quizzes will be in class assessments taking the course of a period (or part of a period for quizzes). Students are not to work collaboratively or share information about the exam/quiz to any other student.
Lab Assignments
Lab assignments will be programming tasks that may include both in and out of class time to complete. Students must submit their own work, though they may use class-approved resources (including notes, classmates, CS Dojo) to complete the assignments. Rubrics detailing what skills will be assessed and what constitutes a particular grade for each skill will be provided for each lab.
Projects
Projects will be larger-scale assignments. Students will be given more time to complete the work than labs, and specific time will be set aside for planning and design, in addition to the project itself. Rubrics detailing what skills will be assessed and what constitutes a particular grade for each skill will be provided for each project.
Final Project and/or Exam
The course will culminate in a final assessment that will take the form of an exam, project, or both. The final(s) will assess all the skills for the course.
Late Assessment Submissions
- Late labs and projects will be allowed within reason.
- If a submission is deemed too late (i.e. after solutions have been posted, after marking period grades are due, etc.), there will be other opportunities to assess skill competency.
- Since homework and classwork are not included in a students grade, that late work will not be penalized.
Retakes/Retests/Redos
All students will be given multiple attempts to demonstrate competency of each skill. This can take many different forms, including(but not limited to) the following:
- Re-submission of an assessment.
- Re-taking an exam.
- Submitting corrections/explanations of incorrect answers.
- Submitting a similar (but not identical) assessment.
- Taking a similar (but not identical) exam.
- Not allowing retakes or resubmissions, but instead using skill grades from other (previous or later) assessments.
Final Grade Calculation
A student’s final grade should reflect their demonstrated skill competency level from throughout the semester, including how well they’ve maintained those skills through to the end. A student’s skill grade will consist of their skill level demonstrated over the course of the semester and their skill level demonstrated on the final assessment(s):
Final grades will take the average of all of a student’s individual skill grades and map that to a 100 point grading scale as follows:
- 4: 100
- 3: 90
- 2: 75
- 1: 55
Skills for Foundations of Computer Science
N.B. This list may change slightly over the course of the semester. Any changes will be made clearly during class and updated here as well.
Course Skills
Below is the list of skills that are the key components of this course. Mastery level must also include demonstration of Competency level as well.
Skill | Minimal Competency | Developing Competency | Competency | Mastery |
---|---|---|---|---|
1. Understanding programming languages | Understands the need for programming languages and that there are many of them. | Demonstrates competency in multiple programming skills in one language. | Demonstrates competency in multiple programming skills in multiple languages. | Demonstrates mastery in multiple programming skills in multiple languages. |
2. Using Functions | Can explain the concept of a function. | Uses a single function to produce a desired outcome. | Combines multiple functions to produce a desired outcome. | Appropriately uses functions that return and do not return values, combining them to produce a desired outcome. |
3. Writing functions/procedures. | Can write the contract for a function. | Can write simple functions given a contract. | Can write complex functions given a contract and can write contracts for functions given a specified task. | Can write contracts for complex functions, implement those functions and create effective test cases for them. |
4. Understanding Algorithms | Can follow an algorithm to produce a desired outcome. | Can break down a simple problem into basic steps that will result in a desired outcome. | Can break down a problem into basic steps and implement those steps in code. | Can analyze the differences between 2 or more algorithms that produce the same desired outcome. |
5. Working with Boolean Values | Understands the purpose of boolean values. | Demonstrates the appropriate use of comparison operators. | Demonstrates the appropriate use of comparison and boolean operators. | Writes functions that take in boolean values and/or return boolean values. |
6. Using Conditional Statements | Can trace the result of a single conditional statement. | Can write conditional statements with one or two results. | Can write nested conditional statements. | Can use at least two different kinds of conditional statements, and understand the benefits of each. |
7. Using Randomness in Programs | Can use one language provided random function. | Can use a random function to generate integers or floating point values in a specified range. | Can use random functions to produce random integers and floating point values within specified ranges. | Can use random functions with conditional statements to write functions with randomly controlled outcomes. |
8. Data Types | Demonstrates an understanding of numeric data types. | Demonstrates an understanding of numeric and text based data types. | Writes programs that work with both numeric and text based data types. | Can explain data types that are references to other data. |
9. Data Structures | Understands the difference between single values and data structures. | Can describe how one data structure stores data. | Can use a data structure to store multiple values in a program. | Can use language provided features to effectively create and access data in a data structure. |
10. Recursion | Can describe what a recursive function is. | Can accurately trace a recursive function. | Can write and trace a recursive function. | Can develop a recursive solution to a problem and correctly implement it. |
11. Iteration | Can describe iteration. | Can use one built in language structure or feature to write an iterative process. | Can use multiple built in language structures/features to write an iterative process. | Can control iterative processes using counters and non-counter based boolean conditions. |
12. Number Systems | Demonstrates understanding of the decimal number system. | Demonstrates understanding of the binary number system. | Can convert between decimal and binary number systems. | Can work in octal and hexadecimal number systems. |
13. Digital Representation of Data | Demonstrates an understanding of bits and bytes. | Demonstrates how bits can be used to represent integers. | Demonstrates how bits can be used to represent characters. | Demonstrates how bits can be used to represent other kinds of data (e.g. images, audio) |
14. Main Components of Computers | Can describe and identify one of the 4 main components of computers. | Can describe and identify 2 of the 4 main components of computers. | Can describe and identify the 4 main components of computers. | Can describe how the 4 main components of computers interact with each other. |
15. Operating Systems and File Systems | Can describe the purpose of an operating system and name multiple examples. | Can describe the purpose of a file system. | Can explain how a hierarchical file system stores data, locate files based on a path and provide a path to a given file. | Can explain the relationships between operating systems, programs and the file system. |
16. The Internet | Can explain the roles of servers, clients and routers. | Can explain how computers are addressed on the internet and what domain names are. | Can explain how internet traffic flows between devices. | Can explain the role of different internet protocols. |
17. Modeling Systems | Can explain what a model is. | Can use a computer program model to explain its subject. | Can create a program of a simple model. | Can create a program of a complex model. |
18. Agent-based Computing | Can explain what an agent is in computing. | Can explain the benefits of agents for certain kinds of problems. | Can use different agents of the same type in a program. | Can effectively combine agents in a complex model. |
19. Graphical Program Design | Can control the basic geometry of a graphical program. | Can create programs with purposeful graphical elements. | Can create interface elements to control a graphical program. | Can create a program with complex graphic components, including interface elements to control the program and provide data about the program as it runs. |
20. Working with Agent Sets | Can work with agent sets that contain all agents of a given type. | Can create agent sets that meet a specific criteria. | Can create and instruct specific agent sets. | Can write a program that provides multiple instructions to multiple different agent sets. |
21. Agent Interaction | Can have agents interact with other agents of the same type. | Can have agents interact with agents of different types. | Can write a program with complex agent interaction. | Can create sub-types of agents and use them to interact with other agents. |
22. Using Variables | Recognizes the difference between variables and literals | Demonstrates ability to understand code which uses variables | Correctly uses variables in programming | Correctly uses the appropriate types of variables for different programming algorithms |
23. How Functions Operate | Knows the difference between calling and defining a function | Can correctly define and call functions | Understands, in general terms, the difference between what happens in the computer when you define or when you call a function. | Can correctly explain what happens in the computer when a function is called and when a function is defined, using the correct vocabulary (ex, parameters/arguments). |