Computer Science and Software Engineering Rose Hoffmann Catholic Memorial High School PILOT SCHOOLS Rose Hoffmann – Catholic Memorial High School Lori Hunt – Middleton High School Gerard Iserloth – Delevan-Darian High School Terri Tessmann – Franklin High School Nathan Nolte – Fox Valley Lutheran High School CSE Course Description Open doors in any career with computer science! Students create apps for mobile devices, automate tasks in a variety of languages, find patterns in data, and interpret simulations. Students collaborate to create and present solutions that can improve people’s lives. How will computing and connectivity transform your world? Computer Science and Software Engineering (CSE) is a new PLTW course being offered for the 2014-2015 school year. Students work in teams to develop computational thinking and solve problems. The course covers the College Board’s new CS Principles framework. (testing in May, 2017) The course does not aim to teach mastery of a single programming language but aims instead to develop computational thinking, to generate excitement about the field of computing, and to introduce computational tools that foster creativity. The course also aims to engage students to consider issues raised by the present and future societal impact of computing. Computer Science & Software Engineering • Alignment with CSTA, NGSS, Common Core, and other standards will be available through PLTW Alignment web-based tool CSE • The course is planned for a rigorous pace, and it is likely to contain more material than a skilled teacher new to the course will be able to complete in the first iteration. Building enthusiasm for rigorous computer science among students is a primary goal of the course. 4 major units • Unit 1 Algorithms, Graphics, and Graphical User Interfaces (40%) • Unit 2 The Internet (17%) • Unit 3 Raining Reigning Data Big data sets (16%) • Unit 4 Intelligent Behavior (27%) UNIT 1 - goal • excite students about programming • build their algorithmic thinking and ability to use abstraction. • Emphasize student creativity working with Scratch, App Inventor, and Python – to tell graphical stories – publish games and Android applications – explore various development environments and programming techniques. – create original code, read and modify code provided from other sources. – Agile software development – Explore career paths tied to computing 1.1 Algorithms and Agile Development - SCRATCH 1.1 Algorithms and Agile Development goals • • • • • • • • Introduction to programming at novice level Pair programming Scratch – audio and visual elements Algorithmic problems How computing affects our lives Explore tools for collaboration Roles that variables fulfill Introduction to the conventions of objectoriented programming 1.2 Mobile App Design -APP INVENTOR 1.2 Mobile App Design goals • • • • Analyzing existing code Emphasis on roles of variables Create Android app they have designed Introduction to binary representations of numbers, letters, colors, images, etc. • Minor modifications on complex code • Incorporate event handlers in meaningful ways A P P I N V E N T O R • Lesson 1.3 Images and Object Oriented Libraries PYTHON 1.3 Images and Object-Oriented Libraries - goals • All information is bits • Simulate program execution in model assembly language • Transfer understanding of algorithms to Python • Functional, imperative, and declarative programming paradigms with Python • Variable types, arrays, array manipulations 1.3 Images and Object-Oriented Libraries – goals (cont’d) • • • • • Manipulate image files – pixel data Use code libraries – higher level abstraction Use documentation Prisoner’s Dilemma + GitHub Create image processing function • Lesson 1.4 GUIs in Python Human-Computer Interaction Tkinter 1.4 GUIs in Python • • • • • • Abstraction with class of objects Human-computer interaction Object-oriented concepts Methods to affect object’s state Tkinter Canvas for drawing and animation Tkinter toolbox of GUI widgets. Unit 2: The Internet • more concrete understanding of the Internet • PHP and SQL to structure and access a database hosted on a remote server • HTML and CSS • experiment with JavaScript for dynamic content • history and workings of the Internet • security, privacy, and democracy • Cyber security • Career paths in cyber security, web development and information technology highlighted 2.1 The Internet and The Web goals • Understanding – set of computers exchanging bits in packets • Students learn components of their digital footprint • Compare web pages – designs, strengths, weaknesses • Trustworthiness of web-based media • Study data flow • DNS and IP hierarchical nature • HTML & CSS • encryption 2.2 Shopping and Social on the Web goals • Roles of client-sided code, server-sided code, and databases in delivering interactive web content • Collaborate with art students to publish content on the Web • Access SQL database from secure shell command line as well as through PHP 2.3 Security and Cryptography goals • Students invest in maintaining online security • Improve personal cyber security hygiene • Focus on cyber security from the perspectives of the user, software developer, business, nation, citizen • Explore parallel strands in encryption and security • Explore efficiency of algorithms, and effect of input Unit 3: Raining Reigning Data • see the availability of large-scale data collection • Students examine very large data sets tied to themselves as well as to areas of work and society. • data visualization techniques • apply algorithmic thinking and automation when considering questions that have answers embedded in data. 3.1 Visualizing Data - goals • Analyze sets of large data and interpret patterns • Draw conclusions from relevant data • Weigh societal concerns about collection and persistence of Big Data Big Data • Visualization - use Python to make useful graphic representations of data • Excel spreadsheet programming and cell manipulation • Scatter plots and best-fit-lines • Monte Carlo simulation – association between two variables 3.2 Discovering Knowledge from Data goals • Create range of visualizations to analyze complex sets of large data and interpret the patterns • Geographic perspectives and facial recognition • Use of heat maps and directed graphs • Experiment with object recognition and face recognition • Discover clustering and association patterns lurking in data sets • Choose question and answer using large data Unit 4: Intelligent Behavior emergence of intelligent behavior is explored from 3 distinct approaches • Single autonomous machines • Human crowd sourcing of data • Separate algorithmic agents working in parallel Unit 4: Intelligent Behavior - lessons • Intelligent Machines • Cloud Sourcing Data with Mobile Computing • Interpreting Simulations 4.1 Intelligent Machines • Hardware layer of computing from electrical breadboards to robotic units • Automate behaviors by programming in C++ • Use programming techniques to manipulate Arduino robotic equipment • Use of programming to adapt robots behavior to make intelligent decisions about when to disobey its operator • Implementing autonomous behavior 4.2 Cloud Sourcing Data with Mobile Computing • Tie together themes of Big Data, Internet, societal impact • Collect and visualize data by combining mobile and web technologies • Identify need that can be met with – Mobile app – Analysis of large data set – Or Combination of the 2 4.3 Predicting, Understanding and Communication with Simulation • Using simulations to produce meaningful – Explanations – Illustrations – predictions • Explore agent-based GUI simulations in NetLogo – interpret results – modify agents’ behaviors – changing parameter values How will computing and connectivity transform your world? PILOT SCHOOLS Rose Hoffmann – Catholic Memorial High School • rhoffmann@catholicmemorial.net Lori Hunt – Middleton High School • lhunt@mcpasd.k12.wi.us Gerard Iserloth – Delevan-Darian High School • jiserloth@ddschools.org Terri Tessmann – Franklin High School • Terri.Tessmann@Franklin.k12.wi.us Nathan Nolte – Fox Valley Lutheran High School • NNolte@FVLHS.ORG