Standards

As described on the grading page, your grade will be based entirely on demonstrating that you have mastered the material or habits described in the standards on this page. We will share new standards throughout the year as we move through the material. For an example of the basic structure of the kinds of standards I will be using you can look at the standards for my Intro to Programming class.

Weekly reflection

4 Consistently writes thoughtful reflections about the topics and activities of the week. Ofter connects what was covered in the week to other ideas from the course or from outside of class and asks, and even starts to answer, questions raised by the week’s material. Always meets and often exceeds the minimum length requirements without resorting to bloated prose.
3 Consistently writes thoughtfully and clearly and demonstrates a solid understanding of the concepts taught that week. Consistently meets the minimum length requirements.
2 Provides only an elementary summary of topics from the week and frequently does not meet the minimum length requirement.
1 Rarely engages with the topics from the week and usually falls well below the minimum length requiremet.
0 Not enough information.

Numeric data types

4 Can accurately read and write expressions using int and double values and variables and the five operators, +, -, *, /, and % to express basic mathematical relationships. Uses parenthesis appropriately to deal with order of operations. Can use all the compound assignment operators (e.g. +=) and the shorthand increment and decrement operators ++ and -- correctly and appropriately. Uses int and double math appropriately and understands how to use double contagion and explict cast operators to compute values of the desired type.
3 Can usually read and write expressions using int and double values and variables and the five operators, +, -, *, /, and % to express basic mathematical relationships. Uses parenthesis appropriately to deal with order of operations. Can use the most commonly used compound assignment operators += and -= and the shorthand increment and decrement operators ++ and -- correctly and appropriately. Can use common idioms for converting between int and double values such as computing the double average of several int values.
2 Can usually read and write expressions using int and double values and variables and some but not all of the six operators, +, -, *, /, %, and ** to express basic mathematical relationships. May make mistakes due to order of operations. May have trouble understanding and writing expressions involving a mix of int and double values.
1 Struggles to write write expressions using numbers and variables that express basic mathematical relationships.
0 Not enough information.

GitHub PRs

4 Consistently creates new PRs for completed work. Responds promptly to comments and requests for changes. Merges approved PRs promptly. Uses PRs to communicate and ask questions as well as turn in code.
3 Usually creates new PRs for completed work. Responds promptly to comments and requests for changes. Merges approved PRs promptly.
2 Leaves PRs with requests for changes or comments open without responding. Doesn’t make new PRs consistently. Opens new PRs without working to close old ones.
1 Doesn’t close Approved PRs promptly. This is the easiest thing to do so there’s no excuse not to do it. Merges PRs before they are approved.
0 Not enough information.

Methods

4 Can consistently write correct and clear methods that compute a value or achieve a desired effect based on a natural language description. Always chooses good names for methods and arguments. Introduces variables to make code easier to read. Breaks down complex code into clear, well-defined methods and uses methods to avoid duplicating code.
3 Can consistently write correct and clear methods that compute a value or achieve a desired effect based on a natural language description. Usually chooses good names for methods and arguments. Introduces variables to make code easier to read. May not always take advantage of opportunities to break complex code into methods and to use methods to avoid duplicating code.
2 Can write methods that compute a value or achieve a desired effect based on a natural language description but they are not always correct or are hard to understand due to bad naming choices or confusing code.
1 Struggles to write syntactically correct methods that compute a value or achieve a desired effect based on a natural language description.
0 Not enough information.

Strings

4 Can consistently and accurately read and write expressions using literal string values, variables and the string concatenation operator + as well as the methods, length, substring in its one- and two-argument forms, indexOf, toUpperCase, toLowerCase, equals, and compareTo to express string manipulations as complex as capitalizing a word or converting a word to Pig Latin.
3 Can usually read and write expressions using literal string values, variables and the string concatenation operator + as well as the methods, length, substring in its one- and two-argument forms, indexOf, toUpperCase, toLowerCase, equals, and compareTo to express string manipulations as complex as capitalizing a word or converting a word to Pig Latin.
2 Can read and write some string expressions but cannot consistently combine operators and methods to produce more complex string expressions.
1 Can’t consistently produce correct string expressions or explain the meaning of existing expressions.
0 Not enough information.

Basic control constructs

4 Can use if statements and while and for loops correctly. Consistently uses else and else if clauses when appropriate to simplify code. Can write correct finite and infinite loops as well as nested loops. Can trace the execution of code using these control constructs and describe when the different parts of the code will be executed.
3 Can use if statements and while and for loops correctly. Usually uses else and else if clauses when appropriate to simplify code. Can write correct finite and infinite loops. Can trace the execution of code using these control constructs and describe when the different parts of the code will be executed.
2 Can make basic use if statements and while and for loops. Has difficulty tracing execution of code using these control constructs and describing when different parts of the code will be executed.
1 Struggles to write if, while, and for constructs in correct syntax. Has difficulty tracing execution of code using these control constructs and describing when different parts of the code will be executed.
0 Not enough information.

Arrays

4 Can consistently and accurately analyze and write code that initializes arrays, accesses and assigns elements, traverse arrays with loops, and understand and implement basic array algorithms such as finding the minimum and maximum values in an array, totalling values in an array, and algorithms that require moving elements within an array, such rotating the contents of an array or implementing simple sorting algorithms.
3 Can usually write and analyze code that initializes arrays, accesses and assigns elements, traverse arrays with loops, and understand and implement basic array algorithms such as finding the minimum and maximum values in an array, totalling values in an array, and algorithms that require moving elements within an array, such rotating the contents of an array or implementing simple sorting algorithms.
2 Can usually write and analyze code that initializes arrays, accesses and assigns elements, traverse arrays with loops, and understand and implement basic array algorithms such as finding the minimum and maximum values in an array, totalling values in an array, and algorithms that require moving elements within an array, such rotating the contents of an array or implementing simple sorting algorithms.
1
0 Not enough information.