Download presentation
Presentation is loading. Please wait.
Published byRosalia van der Velde Modified over 6 years ago
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
14
Sharing
15
Troubleshooting
18
Example Project #1
20
CS11 Curricular Competency: Communicating and Representing Scope
Modularity Make a Picture Representing Data Variables, Constants
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.