Student assessment in a Computer Science class
As with all subjects, high-quality teaching of computer science requires good subject knowledge as well as skills to engage students in teaching as well as assessment. One of the objectives of computer science class is to figure out if students are learning programming well enough. Here are some steps of student assessment in a computer science class:
Demonstrate code tracing ability: You can ask students what code will output when provided specific inputs or ask them to provide inputs that will produce specific outputs. This is an important step to test if students can read through the code. It is essential for a student to become fluent before they can write the code. They should know the way in which the specific command produces a specific result from the computer. Students demonstrate the code tracing ability by doing this.
Exhibit debugging skills: You can ask students to trace a bug in the code. Debugging is a critical part of programming. When students in a class run a code, they all might end up having different bugs. So, students should have exposure to some of those bugs and they should know steps to find and fix those bugs. This also allows instructors to know if students understand the programming steps.
Abstracting from lines of code: You can ask students to write sentences to describe code in a very simple way. This is super helpful because we just don't want students to be at a level of what each command stands for but they should be able to find the abstract of the code. This is very difficult to grade. But, it essentially helps to engage the students in the code. Summarize what this piece of code is doing, write a comment on the method and write the variable name that makes more sense are some of the ways to judge in this case.
Code without syntax errors: You can ask students to arrange code segments. If students are given a problem to solve, instead of giving them writing a whole bunch of code, they can be given a few lines of code and then they can combine those lines of code to write a correct program to solve the problem. So, instead of having to remember everything, they can just find it and organize it by separating out the output of the different pieces of the programming in the process.
Demonstrate programming fluency: You can ask students to write or modify a particular code. They can be asked to change the particular behaviour of the code by understanding the role of the different parts of the code. This helps in testing the programming fluency of the student.
Demonstrate understanding of an algorithm: Before students start writing the code, you can ask them to solve the problem by hand. This can be done by giving students inputs and seeing if they can predict the output. Instead of getting the solution, students can put efforts in finding how the solution works in general and what are some of the boundary cases. This allows students to demonstrate the understanding of an algorithm.
Show the breadth of their skills: Instead of just assessing the students in exams/tests, students can be asked to build a portfolio so that they can showcase the breadth of their skills earned in the class to the outer world and therefore understand what they are learning in a better way.
These steps not only help in assessing and understanding the student's learning but also helps in improving the teaching. Regardless how classroom assessments are carried out so far, there are some problems in its execution. First of all, most assessment techniques are not used simultaneously in lectures. The effort for analyzing the assessment data is in most cases much too high to make a fast use of it. If the data is analyzed, the context and the content of the lecture are usually moved on. Second, the information gathered is not available for the students assessed, until they result in marks or grade of the lecture. In most cases, there is no feedback provided to students referring individually to their strengths and weaknesses. Students need to reflect on their own learning effort by identifying their knowledge gaps and considering possibilities for improvements stated by teachers.
One possible way for the improvement of assessment processes in higher education is to make assessment data available for students in the same context as they were assessed. Classroom assessment with accurate descriptive immediate feedback to students improves learning if students are also involved in the assessment process