# May 5th 2016 Lesson Notes

## What are we going to learn today?

1. You are going to get back into the groove of thinking computationally

## What is your homework and when is it due ?

1. No homework today

## What is the actual plan?

1. We will check in with vacation
2. We will take another look at our chess program, reviewing line by line how it works
3. We will identify the tasks you need to complete

1. You will have one job this class. I need to see progress towards completing our move function. See below:
```def move(piece,destination):
# is piece valid?
# is destination valid (basic int 1 to 64)
# is the move valid for that piece?
# would the move place the king in check?
return
```

Your specific task is to write code that allows a human player to move a virtual chess piece.

## Standards we are covering today

• Identify the procedure appropriate to solving a problem. Level: 2
• Evaluate whether the order in which activities are undertaken will result in the required outcome. Level: 3
• Explain the role of sub-procedures in solving a problem. Level: 3
• Identify when decision-making is required in a specified situation. Level: 2
• Identify the decisions required for the solution to a specified problem. Level: 2
• Identify the condition associated with a given decision in a specified problem. Level: 2
• Explain the relationship between the decisions and conditions of a system. Level: 3
• Deduce logical rules for real-world situations. Level: 3
• Identify the inputs and outputs required in a solution. Level: 2
• Identify pre-planning in a suggested problem and solution. Level: 2
• Explain the need for pre-conditions when executing an algorithm. Level: 3
• Outline the pre- and post-conditions to a specified problem. Level: 2
• Identify exceptions that need to be considered in a specified problem solution. Level: 2
• Identify the parts of a solution that could be implemented concurrently. Level: 2
• Describe how concurrent processing can be used to solve a problem. Level: 2
• Evaluate the decision to use concurrent processing in solving a problem. Level: 3
• Identify examples of abstraction. Level: 2
• Explain why abstraction is required in the derivation of computational solutions for a specified situation. Level: 3
• Construct an abstraction from a specified situation. Level: 3
• Distinguish between a real-world entity and its abstraction. Level: 2
• Describe the characteristics of standard algorithms on linear arrays. Level: 2
• Outline the standard operations of collections. Level: 2
• Discuss an algorithm to solve a specific problem. Level: 3
• Analyse an algorithm presented as a flow chart. Level: 3
• Analyse an algorithm presented as pseudocode. Level: 3
• Construct pseudocode to represent an algorithm. Level: 3
• Suggest suitable algorithms to solve a specific problem. Level: 3

## As a computer scientist, you have

These are the characteristics every computer scientist works towards.

• Confidence in dealing with complexity
• Persistence in working with difficult problems
• Tolerance for ambiguity
• The ability to deal with open-ended problems
• The ability to communicate and work with others to achieve a common goal or solution