Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computing Related Courses in BC’s Education Plan

Similar presentations


Presentation on theme: "Computing Related Courses in BC’s Education Plan"— Presentation transcript:

1 Computing Related Courses in BC’s Education Plan
Computing in Mathematics and ADST

2 Are you in the right place?

3 About Me Cam Joyce Johnston Heights joyce_c@surreyschools.ca
Teach Math and CS ADST/Math Curriculum writer Computing Science Computer Programming

4 I’m still learning I’m not perfect I’m sharing what I’m working on

5 Traits of My Favorite Activities
Support Visualization Incorporate multimedia Have a low floor and high ceiling Can be Individualized Towards Interests To complement ability To avoid plagiarism Are engaging To a broad audience (not just those that enjoy CS) Students work from home when it’s not required

6 Functions, Methods, Modularity
Planning Before Logical progression of content Basics of the Language Decisions and Logic Iteration Functions, Methods, Modularity Classes

7 Assignments Write a program to:
determine if a given year is a leap year practice basic arithmetic using random numbers 3 * 5 = ? = ? … Sum the first 100 integers

8 Read source code documentation
Planning Now Progression of Project Make a picture Create a character Create a game ... Read source code documentation Create a method Make a picture Use library methods Use basic data types ...

9 What About Inquiry?

10 Greenfoot as a tool for learning CS/CP
IDE for basic/rapid application development Create a World and Actors who live in the World Visual IDE based on BlueJ Extension: Droidfoot Supported Languages: Java Stride (new) – python meets java

11 Free, no administrative credentials

12

13

14 Sharing

15 Troubleshooting

16

17

18 Example Project #1

19

20 CS11 Curricular Competency: Communicating and Representing Scope
Modularity Make a Picture Representing Data Variables, Constants

21

22 CP11

23 CP11 Curricular Competencies: Defining, Ideating, Prototyping
Structures within existing code Pre-built libraries and their documentation Make a Picture Strategies to predict effects of code modification Inline commenting to document source code

24 CS courses Aimed at students who will study CS in post secondary
Introduce and practice Computational Thinking Coding as a tool to execute computational thinking Traditional Computing concepts Algorithms Complexity Data Structures

25 Computational Thinking (CSTA)
Computational thinking (CT) is a problem-solving process that includes (but is not limited to)the following characteristics: Formulating problems in a way that enables us to use a computer and other tools to help solve them. Logically organizing and analyzing data Representing data through abstractions such as models and simulations Automating solutions through algorithmic thinking (a series of ordered steps) Identifying, analyzing, and implementing possible solutions with the goal of achieving the most efficient and effective combination of steps and resources Generalizing and transferring this problem solving process to a wide variety of problems These skills are supported and enhanced by a number of dispositions or attitudes that are essential dimensions of CT. These dispositions or attitudes include: 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

26

27 Programming What about students that just want to write code and make software but aren’t inclined to learn the theory Quicksort algorithm in detail vs. sort( myList ) Rely on prebuilt solutions/open source examples Those that “Google” a solution to borrow rather than make their own I took shop, woodwork, auto… Never intended to take up a trade It seemed fairly unanimous that there were two groups within the existing ICTP structure anyway

28 CS vs CP CS = computational thinking + elements of CS (classical algorithms, complexity, data structures) Creating algorithms and translating them into source code Understanding the basics of complexity and data structures Theory Learning to code to implement Computational Thinking CP = design cycle + product What is the process that is used to build software (in teams) How do I use/obtain/create/modify source code to execute my design Product Learning to code to build software

29 Got it?

30 CS11 CP11 Programming language basics Modularity Logic Control flow
Representing data, Types of data, Basic input and output, Primitive data vs. Objects, Utilizing built in libraries Modularity Reducing complexity and redundancy in code, Problem decomposition Logic Conditional statements, Logical operators, Relational operators (for primitive data and objects), Logical equivalences/simplification, Truth tables (min/max terms) Control flow if/else if/else branching, iteration Arrays and Lists Organization of memory in a ordered set, Standard operations, Searching algorithms (introduction to complexity)  Techniques for creating algorithms Applications to Mathematics Elements of coding Style/Whitespace/Commenting Input/Output Variables Decisions Loops Use of code libraries and how to navigate their documentation Students are expected to learn the basic coding skills above. However, to build better software they will often be expected to seek out and improve/modify existing solutions. (Software) Design Cycle Generating a set of requirements Transforming the requirements into a software design Implementing design with source code Testing

31 CS12 CP12 Encapsulation Data structures Multi-dimensional arrays
Persistent memory Recursion Techniques for creating algorithms Complexity Applications to Mathematics Elements of coding Functions or other structures that aid in modularity/problem decomposition standardized source code documentation (JavaDoc, PyDoc, etc.) self-documenting code (style) Use of a debugger Error handling Use of pre-built data structures Interface Design Team work/collaboration tools for programming in teams management of complexity (Software) Design Cycle Generating a set of requirements Transforming the requirements into a software design Implementing design with source code Testing Maintenance  Feedback from sharing the project

32 Back to planning... Logical Operators If/Else Statements Casting
Make a Character Arrays Random Numbers Math Operations

33 Floor

34 Student work - Frog

35 TicTacToe - Floor

36 Othello/Reversi

37 Chess

38 What do you think?

39 What do you think?

40 What do you think?

41 Applications of Computing Science to Mathematics
Students can bring their math problems to CS class Write a program to: Determine how many roots a quadratic equation will have Solve a system of linear equations Generate terms in a geometric sequence/series Generate a worksheet of practice problems and answers Expand a binomial expression What-if analysis (financial mathematics): What is the total cost of an item if you choose to buy it with your credit card and pay just the minimum monthly payment? What if you double the minimum Your mortgage provider allows you to pay up to 15% extra per month off your mortgage. How much interest will you save and how much quicker will your loan be paid off if: You pay the full 15%? You only pay 10%?

42 I still… Use regular practice of skills like I did before
codingbat is a nice tool pythontutor is another I highly recommend Skill practice is important I don’t start with skill practice anymore though I start with projects that motivate students to learn a skill

43 CodingBat Can author custom questions also
Java and Python (and more) supported Nice prequel to CCC online grader

44 Pythontutor.com

45 Pythontutor.com

46 Contact Info Cam Joyce Surrey School District Johnston Heights Secondary mrjoyce.wordpress.com A work in progress


Download ppt "Computing Related Courses in BC’s Education Plan"

Similar presentations


Ads by Google