Fall 2013 Introduction to Computer Science Dear Students and

advertisement
Fall 2013 Introduction to Computer Science
Dear Students and Families,
Welcome to SBHS’s Introduction to Computer Science class!
This introduction to computer science will focus on 7 big ideas involved in all computer science: creativity,
abstraction, use of data, algorithms, programing, the internet, and impact. These big ideas are consistent with the
CS Principles AP Pilot. The course will have high levels of quantitative reasoning while covering topics including:
Social implications of computing, Societal impacts of technology, video game programing, graphics 2d and 3d,
algorithms, functions, programing paradigms, concurrency, distributed computing, recursion, computing that has
changed the world, higher order functions, cloud computing, game theory, and artificial intelligence.
Topics:
1) Introduction to Computer Science
a) Role of Algorithms ( pg 195 - 202 CS Illuminated, UC Berkeley CS 10 Moodle)
b) History of Computers (p. 4 -29 CS Illuminated, p. 4 - 10 CS Overview, Excerpts of Blown 2 Bits)
c) Science of Algorithms (p. 2 - 11 CS Overview) (Chapter 7 CS Illuminated)
d) Interfaces (Chapter 5 CS Illuminated, UC Berkeley's online lecture series by Dan Garcia, p. 12 CS
Overview)
e) Abstraction (excerpts of chapter 2 and 3 of CS Illuminated, UC Berkeley's CS 10 Moodle)
f) Introduction to Interface and Design (Videos from Berkeley's CS 10, UC Berkeley's CS 10 Moodle)
g) Social Implications of Technology (Excerpts of Blown to Bits)
h) Responsible Computing
i) Behavior(Chapter 17 CS Illuminated, Excerpts of Blown 2 Bits)
j) Operating Systems and File architecture (Chapter 10 and 11 of CS Illuminated)
k) Piracy (CS 10 at Berkeley's Video Lectures)
l) Anti-Virus vs. Anti-Malware (CS 10 at Berkeley's Video Lectures)
m) Licenses and Agreements (CS 10 at Berkeley's Video Lectures)
n) Social Networking and Social Implications (Blown 2 Bits)
o) Computer Etiquette
2) Bits, Bytes, and Data (Chapter 2 and 3 of CS Illuminated)
a) What is a bit and how does it tell a computer what to do?
b) Binary
c) ASCII
d) Unicode
e) File types
f) Analog Vs. Digital
g) Compression and Truncation
3) Programing Languages and Turning Machines (Berkeley's Moodle Course, Chapter 6 of CS Overview)
a) Alonzo Church and Alan Turning
b) Turning Machine in SNAP that reads Binary
c) Abstraction
d) Higher Order (Level) Languages
4)
5)
6)
7)
i) SNAP!
ii) TI-Basic
Networking and Internet
a) Equipment (Chapter 4 CS Illuminated)
b) Addressing (Chapter 3 CS Illuminated)
c) IPV4 (Web resources)
d) IPV6
e) Modulus
f) Public Key Cryptography (Chapter 17 CS Illuminated)
Paradigms (UC Berkeley's CS 10 Moodle)
a) Functional
b) Imperative
c) Object Oriented
d) Declarative
Data Management (Arrays, Classes, Objects, Pointers) (Chapter 8 CS Illuminated, CS 10 at Berkeley's Moodle
Course)
a) Types of Data
i) Array (List)
ii) `Boolean
iii) Integer
iv) Numerical
v) String
b) Array (List) Sort Routines
c) Sorting a List of Lists (Matrix Array)
d) Deep Copy vs. Copy
e) Pointers
f) Different ways Programing Languages Treat Data
Simulations, graphics, and gaming (Chapter 14 of CS Illuminated, UC Berkeley's CS 10 Moodle course, UC
Berkeley's Video Lecture Series)
a) Storage
b) Rendering
c) Artificial Intelligence
d) DOCTOR
e) Robotics
f) Implications and Consequence
g) Sierpinski’s Triangle
h) Fractals and Recursion
i) Benoit Mandelbrot
ii) Tree Fractal
iii) Koch Curve
Student Learning Objectives:
Big Idea I: Creativity
o The student can...
LO 1: use computing tools and techniques to create artifacts.
LO 2: collaborate in the creation of computational artifacts.
LO 3: analyze computational artifacts.
LO 4: use computing tools and techniques for creative expression.
LO 5: use programming as a creative tool.
Big Idea II: Abstraction
o The student can...
LO 6: describe the combination of abstractions used to represent data.
LO 7: explain how binary sequences are used to represent digital data.
LO 8: develop an abstraction.
LO 9: use multiple levels of abstraction in computation.
LO 10: use models and simulations to raise and answer questions.
Big Idea III: Data
o The student can...
LO 11: use computers to process information to gain insight and knowledge.
LO 12: collaborate when processing information to gain insight and knowledge.
LO 13: communicate how computer programs are used to process information to gain
insight and knowledge.
LO 14: use computing to facilitate exploration and the discovery of connections in information.
LO 15: use large datasets to explore and discover information and knowledge.
LO 16: analyze the considerations involved in the computational manipulation of information.
Big Idea IV: Algorithms
o The student can...
LO 17: develop an algorithm.
LO 18: express an algorithm in a language.
LO 19: appropriately connect problems and potential algorithmic solutions.
LO 20: evaluate algorithms analytically and empirically.
Big Idea V: Programming
o The student can...
o LO 21: explain how programs implement algorithms.
o LO 22: use abstraction to manage complexity in programs.
o LO 23: evaluate a program for correctness.
o LO 24: develop a correct program.
o LO 25: collaborate to solve a problem using programming.
o LO 26: employ appropriate mathematical and logical concepts in programming.
Big Idea VI: Internet
o The student can...
LO 27: explain the abstractions in the Internet and how the Internet functions.
LO 28: explain characteristics of the Internet and the systems built on the internet.
LO 29: analyze how characteristics of the Internet and systems built on the net.
LO 30: connect the concern of cyber security with the Internet and systems using it.
Big Idea VII: Impact
o The student can...
LO 31: analyze how computing affects communication, interaction, and cognition.
LO 32: collaborate as part of a process that scales.
LO 33: connect computing with innovations in other fields.
LO 34: analyze the beneficial and harmful effects of computing.
LO 35: connect computing within economic, social, and cultural contexts.
Key Tasks
Portfolio Tasks: Each quarter the students will produce a portfolio task.
o Quarter One: Data - Students will demonstrate collaboratively and individually how to take a large data set (3,000 to
20,000 data pieces) and analyze, summarize, and discover insight from this large data set. They will produce a set of
artifacts that shows their process and deep understanding of this data set and the process.
o Quarter Two: Internet - Students will identify and describe a significant contemporary problem and possible solution(s)
that are connected by the Internet to a societal, economic, or cultural context. The problem or the solution must have
a strong connection to computing and the Internet. The students will create digital artifacts describing the potential
solution, the societal, economic, or cultural contexts, cyber security concerns, and the relevant characteristics of the
Internet. The problem should be significant to a sizable portion of the population (several hundred people). Students
will have to use outside sources, footnote, and include a citation/resource page.
o Quarter Three: Programing - This portfolio will include both individual and collaborative artifacts. Students will develop
a major programing project that is personally relevant to them. This programing area may be in gaming, graphics,
data structures, artificial intelligence, operating systems, problem solving, or even a study of fractal geometry. This
portfolio may be one major program or a series of programs that show the depth of the student’s study or expansive
range of problem solving skills developed through their programing skills.
o Quarter Four: Impact - Students will demonstrate their understanding of the impact of computers, programing, and
other forms of technology on their lives. They will explain what the next steps should be in their opinion and how they
interpret their role in this future.
Labs (programing artifacts/projects): Each quarter students will produce several programing artifacts/projects along
the lines of:
1.
A series of basic programs ranging from the basic blocks of code like 'Hello World' to the sophisticated abstract
block that allows Object Oriented Programing to be introduced.
2.
Recursion, Higher Order Functions, and intensive logic based programs like Hangman.
3.
Artificial intelligence and personal programing projects
4.
Programs in languages other than Snap! (Java, Python, TI Basic)
Each of these programing artifacts/projects will require students to think abstractly as well as quantitatively,
demonstrate their ability to persevere in through complex problem solving, while creating mathematical models. The
programing projects will also require students to apply appropriate tools as needed, attend to precision, while
identifying the structures and proper usages need to accomplish these tasks. They will be required in the paired
programing to construct viable arguments demonstrating their understanding to their programing partners. This being
said these programs are very good demonstrations of the 8 Common Core Math Practices in action.
Many of the programs will demonstrate mastery or deep understanding of CC math practices. For example: students
will write a series of programs that will be compiled to make a graphing calculator. They will need to use logarithms
to evaluate fractional exponents. This program will have to be enhanced to deal with irrational numbers. In
programing this program N-RN ( The Real Number System) standard will be explored in deep and meaningful
ways. While working with arrays and list of lists we will spend time with the understanding of vectors, matrices, and
operations. The Map function will allow us to talk about scalar multiplication, matrix addition, and more. This will
make deep in roads in N-VM (Vector and Matrix Quantities) standard. We will represent data numerically and
graphically through both algebraic and analytical means. This will satisfy almost all of the Algebra Standards, more
specifically A-SSE, A-APR, and A-CED. Since the languages we will be working in lend themselves to functional
programing, we will develop a deep understanding of both numerical functions as well as qualitative functions. This
CC Standards are F-IF and F-BF.
Reflection Journal: Students will keep a weekly journal reflecting on their strengths and weaknesses, along with their
successes and failures. Students will constantly be looking at how they can best build on each of these outcomes.
·
·
·
Final Project: Programing Portfolio
Task #1 – Demonstration of Understanding of Structures and Basic Programing Concepts
Task #2 – Demonstration Collaborative Programing
Task #3 – Transference of Programing Principles
Instructional Methods and/or Strategies
The class will be organized in three major parts in roughly this breakdown:
 2 lectures a week - Lectures will consist of direct instruction, note-taking and opportunities for students to practice
and apply the lecture information.
 2 labs a week -Labs consist of activities, modeling exercises and performance tasks for students to practice and
apply the concepts. The performance tasks utilize a collaborative, paired programming model. The teacher circulates
throughout out the room, supporting students individually and in small groups.
 1 discussion - Discussions consist of lecture review, programming work in small teams, textbook reading discussions,
CS Unplugged exercises, role playing, computer disassembly, group design of video games and project work.
Homework: Students will have approximately 3 hours of homework a week. The homework will consist of finishing the labs,
writing assignments demonstrating their conceptual understanding of information being taught during lecture,
journaling, and formal responses to the discussion topics.
Grading
Grades will be broken down into the following areas:
 Labs (10%). Programing artifacts and projects.
 Homework and Journaling (10%)
 Quizzes/Quests (10%). Individual, collaborative, online and offline. These are all formative assessments.
 Quarter Portfolios (20%). See description in key assignments. Quarterly assigned.
 Midterm (15%). Individual and summative.
 Final Project (20%). See description in key assignments.
 Final (15%). Individual and summative.
Final quarter and semester grades will be determined using the following scale:
90 –100% = A
Attendance Policy
80 – 89% = B
70 – 79% = C
60 – 69% = D
59% and below = F
It is expected that each student is in their seat and ready to work before the bell rings each day, or else that student will
be considered tardy. All absences must be cleared through the attendance office. Due date extensions can be made with
prior teacher approval for students that have multiple excused absences or other extenuating circumstances. Tests and
quizzes that are missed due to an excused absence only can be made up within one week of the original test/quiz date.
Students must make arrangements to come in at lunch or afterschool to make up missed tests/quizzes.
EDU 2.0
It is a requirement of the course that each student creates an account on EDU 2.0 and check the site daily for critical
information pertaining to this class. Parents and guardians are also encouraged to create an account on EDU 2.0 as this
is a great way to keep up with students’ progress in the course as well as a means of communication between teachers,
students and families. Students will have to access coursework from EDU 2.0. Computers and Internet access are
available in a number of locations on campus during the school day, at lunch and after school.
http://sbhsdons.edu20.org/ Period: 1 Access code: ________________________
I look forward to a great year in Intro to Computer Science! I am committed to do my part in helping each student be
successful in class. Please do not hesitate to contact me with any questions or concerns at any time. My email is
psullivan@sbsdk12.org and my phone number is 966-9101 ext. 335.
Thank you,
Peter Sullivan
Please sign, date and return bottom portion only by Friday, August 30.
--------------------------------------------------------Detach here.------------------------------------------------------I have read and understand the FIRST course policies described above and commit to providing my best effort to be
successful in class.
____________________________
Student Name (please print)
_____________________
Student Signature
______________
Date
As a parent/guardian of a FIRST student, I have read and understand the policies described above and commit to
providing my support if/when needed to help my student be successful in class.
_____________________________
Parent/Guardian Name (please print)
_____________________
Parent/Guardian Signature
______________
Date
Download