Computing in the BC Ed Plan

Slides:



Advertisements
Similar presentations
Computational Thinking: An Important Skill for All Students Joe Kmoch Milwaukee Public
Advertisements

A Digital Age Skill for All Joe Kmoch Milwaukee Washington HS of IT For WI Math Council, May 2012 was: CT: An Important Idea for All Students:
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Chapter 2: Algorithm Discovery and Design
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
Introduction to High-Level Language Programming
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
A Digital Age Skill for All [space for presenters name, organization]
Symposium 2001June 24, 2001 Curriculum Is Just the Beginning Chris Stephenson University of Waterloo.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
Invitation to Computer Science, Java Version, Second Edition.
The Program Development Cycle
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
The Software Development Process
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
1 Program Development  The creation of software involves four basic activities: establishing the requirements creating a design implementing the code.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science.
Progression in KS3/4 Algorithms MONDAY 30 TH NOVEMBER SUE SENTANCE.
INQUIRY: CODING IN BC MONTESSORI SCHOOLS. BACKGROUND CODING IN SCHOOLS MONTESSORI PRINCIPLES IMPLEMENTATION AGENDA.
Coding Connections at the Interface of Algebra I and Physical World Concepts Improving Teacher Quality Grant Program Summer 2016.
© 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S.
CIS 115 AID Teaching Effectively/cis115aid.com FOR MORE CLASSES VISIT
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Design Concepts ch-8
Integrating Algorithms and Coding into the Mathematics Classroom
Advanced Higher Computing Science
Principles of Programming & Software Engineering
CIS 115 Slingshot Academy / cis115.com
Subject : Computer Science
CSC 222: Object-Oriented Programming
ALGORITHMS AND FLOWCHARTS
CSC 222: Computer Programming II
CSC207 Fall 2016.
CSC 221: Computer Programming I Spring 2010
GC 211:Data Structures Algorithm Analysis Tools
CSC 221: Computer Programming I Fall 2005
Introduction to System Analysis and Design
Computational Thinking Throughout the Curriculum
Lecture 2 Introduction to Programming
September 27 – Course introductions; Adts; Stacks and Queues
Introduction to Computer Programming
Introduction CSE 1310 – Introduction to Computers and Programming
Foundations of Programming: Introduction to Programming
Computational Thinking
Project based learning in CS
A Digital Age Skill for All
Computing Related Courses in BC’s Education Plan
CIS 115 Lessons in Excellence-- cis115.com. CIS 115 All Exercises Devry University (Devry) For more course tutorials visit CIS 115 All.
CIS 115 Teaching Effectively-- snaptutorial.com
Unit# 8: Introduction to Computer Programming
Learning to Program in Python
UBC 2016 Why Coding?.
Computer Programming is not a Math Credit
Introduction to Computer Programming
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Chapter 1 Introduction(1.1)
The Programming Process
Algorithms and Problem Solving
ICT Gaming Lesson 2.
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer Low level programming language: A programming.
Basic Concepts of Algorithm
Presentation transcript:

Computing in the BC Ed Plan Curriculum revision and feedback

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?

Goals Clarify the draft documents Obtain feedback for final drafts

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

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

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.

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.

Got it?

Content vs Elaborations Q&A Do I have to use your elaborations? How do I know if I’ve taught the content? Others?

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

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

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.

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.

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

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%?

CS vs. CP

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

Welcome to ADST Sharing

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

Conflicting Goals? Learning to write code/build software Learning to use the design cycle

Complementary goals Learning to write code/build software Learning to use the design cycle Learning to write code/build software

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

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

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)

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

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

Theory vs. Application

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

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…