Download presentation
Presentation is loading. Please wait.
Published byLeona Bridges Modified over 7 years ago
1
Instruction of Abstraction in K-12 CS:Implications
christineliebe.com
2
7 AP Computer Science Principles
Big Idea 1: Creativity. Computing is a creative activity…. Big Idea 2: Abstraction. ... Big Idea 3: Data and Information. ... Big Idea 4: Algorithms. ... Big Idea 5: Programming. ... Big Idea 6: The Internet. ... Big Idea 7: Global Impact.
3
Input = Teacher Output = Student 1
Input = Teacher Output = Student 1. What types of instruction do K-12 teachers find most effective for teaching abstraction in CS? 2. How do teachers determine objectives and outcomes for abstraction? 3. How do teachers assess CS abstraction skills and knowledge?
4
Goal: CS Literacy for All Aligned Curriculum K-university Standards (Competencies) – Course objective – Outcomes (measurable) – Individual instruction
5
What is abstraction in computer science?
Which samples of code at your table provide evidence of abstraction?
6
Evidence of Abstraction
Recursion Constructing variables Using event handlers Remixing code Unique renditions of programs Creating new programs More? Probably. Subjective /objective assessment. (Brennan & Resnick, 2012; Wing, 2006; Colburn, 2000; Lee, 2010)
7
Concrete vs. Abstract
9
Inforg Floridi (2011)
10
Soft Concept – Hard Concept (Hazzan, Lapidot, Ragonis, 2015)
Soft concept= not easy to explain, nor when and how used Not connected to an exclusive topic Are expressed throughout the curriculum Require context for understanding Must be “sensed” SOFT-WARE Hard concepts rigid facts, sytax, rules HARD-WARE
11
Rigid facets Soft facets Variable name Syntax rules The need for a name What a meaningful name is and why it is important Variable value Type rules, memory allocation A variable has a single value at any point but it can change over time Assignment The need for assignment The importance of an initial assignment to variables (Hazzan, Lapidot, Ragonis, 2015)
12
PKG Hierarchy (Perrenet, Kassenbrood, Groot,2005)
13
Deduction, Induction, Retroduction (Marzano & Kendall, 2007)
14
Question Taxonomies from Chemistry? (Festo, 2016)
Recall? Facts (declarative knowledge) Algorithmic? (procedural knowledge) Conceptual? (applied knowledge)
15
The pathway of a student who attains only theoretical competency (Fuller, et al. 2007).
16
The pathway of a student who attains only practical competencies (Fuller, et al., 2007).
17
The goal, “Create or Evaluate” can be attained through multiple pathways (Fuller, et al., 2007).
18
Don’t Get confused with concrete and abstract as adjectives.
Reinvent the wheel. Rely on software to teach. Get overwhelmed.
19
Do Teach to declarative and procedural knowledge of abstraction (Marzano & Kendall, 2007). Concepts and Procedures Offer students activities to practice both induction and deduction. Recognize levels of abstraction, such as PKG Hierarchy Explore human the computer relationship with your students. ??? Use question taxonomies to develop critical thinking and metacognition. Use collaboration – propagation of memes, peer programming, peer-tutoring. Remember there are a variety of pathways to achieving mastery (Fuller et.al., 2007). Distinguish between students who need pedagogy and andragogy – guided scaffolding and constructionism (inquiry based learning). Allow students to be active and reflective learners, doers and watchers (especially ELLs and reluctant students), and processing time outside the classroom. Cross-reference abstraction in Art (impressionism), Literature (poetry, outlines), Science (Chemistry), Math (Algebra).
20
?????? When? christine@christineliebe.com
me with questions, thoughts, and suggestions. Also, please contact me if you teach and would like to participate in this study.
21
References Abelson, H., Ledeen, K., & Lewis, H. R. (2008). Blown to bits: Your life, liberty, and happiness after the digital explosion. Upper Saddle River, NJ: Addison-Wesley. Armoni, M. (2013). On teaching abstraction in Computer Science to novices. Journal of Computers in Mathematics and Science Teaching. (32) Brenan, K., Resnick, M. (AERA, 2012). New frameworks for evaluating and discussing the development of computational thinking. White paper. MIT Medial Lab. Colburn, T., & Shute, G. (2007). Abstraction in computer science. Minds and Machines, 17(2), CSTA (2015). Computer science education research. Retrieved from Festo, K. (2016). Question Classification Taxonomies as Guides to Formulating Questions for Use in Chemistry Classrooms. European Journal of Science and Mathematics Education, 4(3), Fuller, U., Johnson, C., Ahoniemi, T. et al (2007). Developing a computer science specific learning taxonomy. ITiCSE working group report on innovation and technology in computer science education. doi: / Floridi, L. (2011). The philosophy of information. Oxford University Press. Hazzan, O., Lapidot, T., & Ragonis, N. (2015). Guide to teaching computer science: An activity-based approach. London, UK: Springer. Lee, Y. J. (2010). Developing computer programming concepts and skills via technology-enriched language-art projects: A case study. Journal of Educational Multimedia and Hypermedia, 19(3), Marzano, R. J., & Kendall, J. S. (Eds.). (2006). The new taxonomy of educational objectives. Corwin Press. Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. New York, NY: Harper Collins. Wing, J. M. (2008). Computational thinking and thinking about computing. Philosophical transactions of the royal society of London A: mathematical, physical and engineering sciences, 366(1881),
22
Python – roll the dice
23
Python explained
24
Scratch forever loop
25
Snap - recursion
26
Scratch basic code
27
Code.org blocks
28
C++ code #include<iostream> using namespace std; int main(){ //declaring array int array[5]; cout<<"Enter 5 numbers randomly : "<<endl; for(int i=0; i<5; i++) { //Taking input in array cin>>array[i]; } cout<<endl; cout<<"Input array is: "<<endl; for(int j=0; j<5; j++) { //Displaying Array cout<<"\t\t\tValue at "<<j<<" Index: "<<array[j]<<endl; } cout<<endl; // Bubble Sort Starts Here int temp; for(int i2=0; i2<=4; i2++) { for(int j=0; j<4; j++) { //Swapping element in if statement if(array[j]>array[j+1]) { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } // Displaying Sorted array cout<<" Sorted Array is: "<<endl; for(int i3=0; i3<5; i3++) { cout<<"\t\t\tValue at "<<i3<<" Index: "<<array[i3]<<endl; } return 0; }
29
R mortgage <- function(P=500000, I=6, L=30, amort=T, plotData=T) { J <- I/(12 * 100) N <- 12 * L M <- P*J/(1-(1+J)^(-N)) monthPay <<- M cat("\nThe payments for this loan are:\n Monthly payment: $", M, " (stored in monthPay)\n Total cost: $", M*N, "\n\n", sep="") # Calculate Amortization for each Month if(amort==T) { Pt <- P # current principal or amount of the loan currP <- NULL while(Pt>=0) { H <- Pt * J # this is the current monthly interest C <- M - H # this is your monthly payment minus your monthly interest, so it is the amount of principal you pay for that month Q <- Pt - C # this is the new balance of your principal of your loan Pt <- Q # sets P equal to Q and goes back to step 1. The loop continues until the value Q (and hence P) goes to zero currP <- c(currP, Pt) } monthP <- c(P, currP[1:(length(currP)-1)])-currP aDFmonth <<- data.frame( Amortization=c(P, currP[1:(length(currP)-1)]), Monthly_Payment=monthP+c((monthPay- monthP)[1:(length(monthP)-1)],0), Monthly_Principal=monthP, Monthly_Interest=c((monthPay- monthP)[1:(length(monthP)-1)],0), Year=sort(rep(1:ceiling(N/12), 12))[1:length(monthP)]
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.