### Day 21 - Tuples and Lists - 02.02.16

 Unit 1 - Algorithms, Graphics, and Graphical User InterfacesLesson 1.1 Algorithms and Agile DevelopmentIn this lesson, you will discover the fun of creating an algorithm to accomplish a task. You can take or create pictures and audio recordings to create a game or story. You will learn how to program a computer to follow your plan and will learn about how to use variables to implement that plan. At the conclusion of the lesson, you will learn more about software design and dig into designing and creating your own Scratch program using pair programming.Essential QuestionsHow do computers perform complicated tasks built from simple instructions?How are variables used in programming?How do programmers approach a complicated problem?What role does creativity play in algorithmic programming?What makes for a good process for collaborative software development?Lesson 1.2 Mobile App DesignIn the problem at the end of this lesson, you will create an Android app of your own design. The goal of the lesson is for you to build your skill analyzing and creating code, especially by thinking about the roles of variables. The lesson begins with an introduction to binary representation of numbers, letters, colors, images, and any other digital data. You will be introduced to data abstraction, which is the idea that programs can handle complicated data like images without the programmer having to worry about low-level details like zeroes and ones. You will work with and make minor modifications to two App Inventor programs and build your ability to analyze a complex program. As you conclude the lesson by designing and creating your own Android app, you will practice pair programming and the Agile software design process.Essential QuestionsWhat do programming languages and development environments have in common?What can be represented by binary data?What makes for a good software development process?How can a program be analyzed, understood, and modified?Lesson 1.3 Algorithms in PythonThe goal of this lesson is for students to understand all information as bits and to transfer their understanding of algorithms to a new language. The hook is the opportunity for students to be creative with their own visual work. Students are introduced to functional, imperative, and declarative programming paradigms with Python® programming language, again learning to use variables in the most common roles. Variable types, arrays, and array manipulations are introduced. Students learn how data are digitally represented, making macroscopic magnetic storage in an unplugged activity and manipulating image files using both application programming interfaces (APIs) and direct manipulation of the data. Students read, discuss, and write about intellectual property and privacy issues that stem from our ability to reproduce and automate analysis of multimedia data. Students conclude the lesson by collaborating to manipulate data with Python, creating an image artifact.Essential QuestionsWhat can be represented by binary data?How does abstraction make the software development process easier?What are the practices that lead to effective collaboration?What role does creativity play in algorithmic programming?1.3.1 Programs are Data1.3.2 Python Variables and Functions1.3.3 Branching and Output1.3.4 Nested Branching and Input1.3.5 Strings1.3.6 Tuples and Lists1.3.7 For Loops1.3.8 While Loops1.3.9 Tools for Collaboration (project) UpdateGradingDaily Work - 50%Projects - 50%Codecademy Tutorials (must be completed by the end of the year)Remind.comText "@s2cse16" (no quotes) to this phone number: 81010Useful Websitespiskelapp.comComputer Science in the MediaMovies"Imitation Game""Ex Machina"Shows"Silicon Valley""Mr. Robot"Help Request List