/assessment

Assessment guide for CMPSC 203 Spring 2021

🐊 Assessment Guide for CMPSC 203 Spring 2021

Actions Status

Summary

This repository contains the assessment guide in Computer Science 203 Spring 2021. The instructor and students will use this assessment guide to govern all course interactions.

This repository contains the assessment sheet for Computer Science 203 Spring 2021. The instructor will add this assessment sheet to a new GitHub Classroom repository each when the software engineering team is completing an assignment. The instructor invites each student in the course to master the technical and professional skills listed on this assignment sheet. More details about how the course will use this assessment sheet and how you will enhance it as part of this assignment are provided in the following subsections of the README.

Improving the Assessment

During the Spring 2020 semester, you will work in an entire-class team to design, implement, test, document, deploy, and use two large-scale software applications. During each week of the semester, you will work with your team on tasks for one of these projects. Additionally, you will complete an assessment form that documents which of the technical and professional skills in software engineering you worked on and what your mastery level currently is for that skill. At the start of the project, you will report that you have not mastered any of the professional and technical skills in the field of software engineering. As the project continues, you should aim to demonstrate adequate and then good mastery of each professional and technical skill. By the time that you have completed a software project, you should be able to convincingly demonstrate that you have mastered all the technical and professional skills in the field of software engineering.

For this laboratory assignment, please use the GitHub flow model to collaboratively develop the assessment sheet. First, you should finalize the list of technical and professional skills on which you want to be assessed during the Spring 2021 semester. Then, you should describe the student behaviors that would lead to an assessment at one of the following levels:

  • None
  • Inadequate
  • Adequate
  • Good
  • Excellent

For each skill and its assessment levels, you should also clearly explain what a student must do to demonstrate mastery at the level "Excellent". You should also explain how the assessment for each of the technical and professional skills will result in an overall assessment for a software project. Once you are finished with the assessment, please update the README as necessary.

Example of a Professional Skill

  • Understanding and avoiding red flags like shallow modules, information leakage, and conjoined methods
    • None = Ignores all red flags in the code
    • Inadequate = Identifies red flags in the code, but does not fix them
    • Adequate = Identifies red flags in the code, but only fixes some of them
    • Good = Identifies red flags in the code, and fixes most or all of them
    • Excellent = Identifies, understands, and fixes all red flags, while also providing documentation, tools, and advice that help team members develop this skill

A software engineer demonstrates the mastery of this professional skill at the "Excellent" level by first providing a realistic source code segment that exhibits a red flag. The engineer should then explain how the source code was fixed to avoid the red flag and then finally document the steps taken to ensure that other team members would not write Python source code that also manifests this red flag.

Example of a Technical Skill

  • Running Python programs with pyenv and pipenv
    • None = pyenv and pipenv not installed or setup on laptop
    • Inadequate = Unable to run programs with pyenv and pipenv
    • Adequate = Able to run programs with pyenv and pipenv
    • Good = Able to run programs with pyenv and pipenv using additional commands and flags as necessary
    • Excellent = Able to run programs with pyenv and pipenv using additional commands and flags to streamline workflow, while being able to provide assistance and troubleshooting to other students using pyenv and pipenv

A software engineer demonstrates the mastery of this technical skill at the "Excellent" level by providing an excerpt from their terminal window showing that they can install the project's dependencies using pipenv, pick a version of Python using pyenv, show the selected version of Python with pyenv, and run either the program or the test suite through the use of pyenv and pipenv.

Problems with the Assessment

If you have any problems with this assessment sheet, then please create an issue in this repository using the "Issues" link at the top of this site. Before this assignment is submitted by the due date, all the issues in this repository should have been assigned to a team member, discussed, handled, marked as resolved, and then closed.