Big Ideas |
Solving problems is a creative process. |
Computer Science 12 |
No CCG |
Keyword: Solving problems |
Elaboration: Sample questions to support inquiry with students:How many different ways can this problem be solved?How do we determine which solution is better?How do we approach solving a problem in different ways?Without knowing a solution, how do we start to solve a problem? |
|
Big Ideas |
Programming is a tool that allows us to implement computational thinking. |
Computer Science 12 |
No CCG |
Keyword: computational thinking |
Elaboration: a thought process that uses pattern recognition and decomposition to describe an algorithm in a way that a computer can executeSample questions to support inquiry with students:How do we decide which programming language to use in solving a specific problem?Why is code readability important?What factors affect code readability?How much source code documentation is enough?Are there patterns in the solution that can be generalized?How do we recognize patterns? |
|
Big Ideas |
Algorithms are essential in solving problems computationally. |
Computer Science 12 |
No CCG |
Keyword: Algorithms |
Elaboration: Sample questions to support inquiry with students:When comparing algorithms, how do we determine which one is most efficient?Can an elegant algorithm be efficient?How is an algorithm formulated?What makes one algorithm better than another algorithm?What is the relationship between elegant algorithms and efficient algorithms?Can all problems be solved through a series of predefined steps? |
|
Big Ideas |
Decomposition and abstraction help us to solve difficult problems by managing complexity. |
Computer Science 12 |
No CCG |
Keyword: abstraction |
Elaboration: reducing complexity by representing essential features without including the background details or explanationsSample questions to support inquiry with students:How do we decide when an object should be abstracted?How do we choose public features?How do we choose which features are advertised?How does hiding background detail simplify the problem-solving process? |
|
Content |
ways to model mathematical problems |
Computer Science 12 |
No CCG |
Keyword: model mathematical problems |
Elaboration: estimate theoretical probability through simulationrepresent finite sequences and seriessolve a system of linear equations, exponential growth/decaysolve a polynomial equationcalculate statistical values (e.g., frequency, central tendencies, standard deviation) of a large data set |
|
Content |
encapsulation of data |
Computer Science 12 |
No CCG |
Keyword: encapsulation |
Elaboration: creating your own data type, class, or structure as well as public, private, static/class variables |
|
Content |
persistent memory |
Computer Science 12 |
No CCG |
Keyword: persistent memory |
Elaboration: read from/write to a file |
|
Content |
recursive problem solving |
Computer Science 12 |
No CCG |
Keyword: recursive problem solving |
Elaboration: recognizing recursive problems or patternsFibonacci sequence, exponents, factorials, palindromes, combinations, greatest common factor, fractals |
|
Content |
use of Big-O notation to help predict run-time performance |
Computer Science 12 |
No CCG |
Keyword: performance |
Elaboration: analyzing algorithms to predict and compare run-time complexityworking with large data sets |
|
Content |
classical algorithms, including sorting and searching |
Computer Science 12 |
No CCG |
Keyword: sorting and searching |
Elaboration: sorting (e.g., bubble, insertion, selection, quick merge)searching (e.g., binary search, data structure traversal) |
|
Content |
uses of multidimensional arrays |
Computer Science 12 |
No CCG |
Keyword: uses |
Elaboration: board games, image manipulation, representing tabular data or matrices |
|
Content |
ways in which data structures are organized in memory |
Computer Science 12 |
No CCG |
Keyword: data structures |
Elaboration: vectors, lists, queues, dictionaries, maps, trees, stacks |
|
Content |
access variables in memory |
Computer Science 12 |
No CCG |
Keyword: access variables |
Elaboration: pass by value versus by reference, or mutable/immutable data types |
|
Curricular Competency |
Incorporate First Peoples worldviews, perspectives, knowledge, and practices to make connections with computer science concepts |
Computer Science 12 |
Connecting and reflecting |
Keyword: Incorporate |
Elaboration: by:collaborating with Elders and knowledge keepers among local First Peoplesexploring the First Peoples Principles of Learning (http://www.fnesc.ca/wp/wp-content/uploads/2015/09/PUB-LFP-POSTER-Princi…; e.g., Learning is holistic, reflexive, reflective, experiential, and relational [focused on connectedness, on reciprocal relationships, and a sense of place]; Learning involves patience and time)making explicit connections with learning mathematicsexploring cultural practices and knowledge of local First Peoples and identifying mathematical connections |
Keyword: knowledge |
Elaboration: local knowledge and cultural practices that are appropriate to share and that are non-appropriated |
Keyword: practices |
Elaboration: Bishop’s cultural practices: counting, measuring, locating, designing, playing, explaining (http://www.csus.edu/indiv/o/oreyd/ACP.htm_files/abishop.htm)Aboriginal Education Resources (www.aboriginaleducation.ca)Teaching Mathematics in a First Nations Context, FNESC (http://www.fnesc.ca/resources/math-first-peoples/) |
|
Curricular Competency |
Use mistakes as opportunities to advance learning |
Computer Science 12 |
Connecting and reflecting |
Keyword: mistakes |
Elaboration: include syntax, semantic, run-time, and logic errors |
Keyword: opportunities to advance learning |
Elaboration: by:analyzing errors to discover misunderstandingsmaking adjustments in further attempts (e.g., debugging)identifying not only mistakes but also parts of a solution that are correct |
|