Download presentation
Presentation is loading. Please wait.
1
Computing in the BC Ed Plan
Curriculum revision and feedback
2
About Me Cam Joyce Johnston Heights joyce_c@surreyschools.ca
Teach Math and CS Great wedge for introductions BASc = Computing Science Somehow qualifies me as an expert in all things tech related Ask Cam, he’ll know?
3
Goals Clarify the draft documents Obtain feedback for final drafts
4
Content Concept oriented How were concepts chosen?
Can be met in any way that the teacher feels best serves their students How were concepts chosen? Audience – what would a typical student be expected to do Scope/Sequence – what were the things that a quality course would include Those content items were altered to described their underlying concept Not whether or not the same thing is taught in every room across BC
5
Content I teach students about logical operators
I teach DeMorgan’s Law I teach my students to create a logical statement from minterms I teach my students about short circuiting So we all teach our students to construct and evaluate logical statements Concept = Construction and evaluation of logical statements We are all meeting the concept in some form
6
Content (need to) vs Elaborations (nice to)
Construction and evaluation of logical statements logical statements AND, OR, NOT logical operators Short circuit/minimal evaluation of a logical statement Relational operators (<, >, <=, >=, ==, != or <>) Logical equivalences (Eg. Demorgan’s Law), simplification of logical statements, truth tables, etc.
7
OOP Example I like OOP I teach OOP
Nothing in the document there says I can’t When working with post-secondary stake holders none said OOP was a fundamental CS skill they taught to beginning CS students It’s still important and relied on heavily in industry We’re talking polymorphism/inheritance/abstract classes/interfaces/etc. here… not just creating a class OOP would make some languages preferable to others Some would not be possible The (ground level) concepts in the courses are those which are fundamental to the discipline They are required of all who study CS They will not go away with new paradigms/languages/etc.
8
Got it?
9
Content vs Elaborations Q&A
Do I have to use your elaborations? How do I know if I’ve taught the content? Others?
10
CS courses Aimed at students who will study CS in post secondary
Emphasis on logic and applying discrete mathematics to support concept Complexity Data Structures Introduce and practice Computational Thinking
11
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
12
CS11 Course Concepts: Programming language basics 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) Throughout the course there will be regular activities meant to aid you in increasing your computational thinking skills, particularly those that aid in the development of algorithms. These include: stepwise refinement and the use of pseudocode and flow charts. We will also regularly visit applications of Computing Science to Mathematics. This includes programming solutions, approximations, and simulations to (curricular) mathematical problems. In particular we will look at “what if” analysis in various financial scenarios such as interest rates, inflation, investments, credit cards, retirement planning, etc.
13
CS12 Course Concepts: Classes Data structures Multi-dimensional arrays
Persistent memory Recursion Algorithms Complexity Throughout the course there will be regular activities meant to aid you in increasing your computational thinking skills, particularly those that aid in the development of algorithms. These include: stepwise refinement and the use of pseudocode and flow charts. We will also regularly visit applications of Computing Science to Mathematics. This includes programming solutions, approximations, and simulations to (curricular) mathematical problems. In particular we will look at “what if” analysis in various financial scenarios such as interest rates, inflation, investments, credit cards, retirement planning, etc.
14
To be fair… We are wading into new waters… Mathematics
New for secondary, not post-secondary As a mathematics credit, some content and elaborations are there to help align us with mathematics Reasoning and Analyzing Understanding and Solving Communicating and Representing Connecting and Reflecting
15
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%?
17
CS vs. CP
18
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
19
Welcome to ADST Sharing
20
One ring to rule them all…
As an ADST course, computer program is required to fit within the design cycle also. Luckily this is not a big stretch for us
21
Conflicting Goals? Learning to write code/build software
Learning to use the design cycle
22
Complementary goals Learning to write code/build software
Learning to use the design cycle Learning to write code/build software
23
Beginning the design cycle
New programmers have no coding experience and would need a preliminary unit before the design cycle could begin Instead they can use a product with existing source code Download a project online with source code Find a YouTube tutorial about how to build a game you are interested in Use the projects as a case study in how the design cycle was used What would the requirements, design, development,… have been? They will modify the existing project Learn about variables, functions, structures like decisions and loops. Exposure to coding and creating software Emphasis on the product and design, not necessarily how to write the source code (that’s the CS stream) Use the design cycle to improve/remix an existing game
24
Completing a cycle – CP11 The balance of the course, once they learn enough to edit or make additions to source code, is essentially to complete the software design cycle (or several times if time permits) Students will think of an app/game/etc. Develop the requirements Design the software Build the software (not necessarily from the ground up) Test the software Maintenance reserved for CP12
25
CP12 Students improve their basic coding skill set
Create their own functions/modules/classes to improve organization Improve their ability to manage larger projects (more source/people) Documentation (for working in teams) Collaboration tools Debugging tools Interface design elements Scope expands to projects that require management of several source files Students use data structures from standard libraries Maintenance (bug reports/feature requests)
26
CP11 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
27
CP12 Elements of coding Interface Design Team work/collaboration
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
28
Theory vs. Application
29
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 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
30
Feedback Thoughts on the: Two streams Courses themselves
Will CS/CP serve their intended audiences Courses themselves Content/Concepts Clarity/elaborations Supplemental information/resources that would be helpful Instructional examples…
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.