AP Computer Science

Download Report

Transcript AP Computer Science

AP Computer Science - A
Ms. Knudtzon
September 7, 2005
Some of my Background
•
•
•
•
•
BS in Computer Science, Harvey Mudd College
Software Engineer, The Aerospace Corporation
MS in Computer Science, University of Maryland
Taught a Data Structures class at Cal-State Los
Angeles
Last year, student average of 4.5 on APCS-A
Administrative
• Syllabus for the course (Handout)
 Note: Final Project and Exam
• Survey - please fill out
• Course Web Site (Will be ready sometime this weekend)
• Books:
 Java Software Solutions (Lewis & Crofton)
 Other books (I will be using)
• Learning to Program with Alice (Dann, Cooper & Pausch)
• Head First Java
• Objects First with Java: A Practical Introduction Using BlueJ
What I expect of you
• Keep your notes organized (take notes in class)
• Do any assigned reading
• Do all the assignments
 Including journals and abstracts
• Have fun; do hard work
• Let me know if the assignments are taking more
•
•
•
than one hour a night
Come to me with questions, concerns, and ideas
Follow the lab rules
No cheating
 But what’s cheating in CS?
What you can expect of me
• I will do my best to make class interesting
• I will create interesting projects for the course
 Please provide me feedback throughout the course
• I will be a master learner
 Teachers should be a model for learning in the
classroom environment and facilitate the learning of
others
• I will be available for help
 After school or by appointment
 I will answer questions via email (Allow at least 8
hours for a response)
Working on St. Albans computers
• Storing your files (in your student folders on the
•
server)
Organizing assignments and labs
 Keep a folder for each homework or project
• Software you will be using
 Alice
 BlueJ
 Eclipse (mostly 2nd quarter)
• Policies for homework submission
 Submit assignments via email
HW: Journal Assignment
• Please write 1/2 -- 1 page journal about your
goals for this semester in this class. Please
include/consider:




Your background
Your interests
Your worries
What you are most excited about
• This will be due Friday before class (by email)
 You will meet with me to discuss these goals early
next week
Introduction to Programming
Say you want to instruct someone to mark the
corners of a rectangle (5x10 foot) fence or field
 How would you explain exactly what to do?
 How else can we explain how to do that?
• What if we wanted to:
 Make pb&j sandwiches for the entire school?
 Average all the grades in a class?
Why is this important
• For a person to accomplish any task, they have to carry
out a set of explicit steps
 Computers are no different. You have to tell them step-by-step
how to do what you want them to do
• Computer Science, particularly programming, builds off of
this simple model of providing short programs (series of
steps) to complete tasks
 As the complexity of the task increases, so does the complexity
of the program required to complete it
 However, even the most complex programs can be broken into a
series of simpler programs
Programming as Science
• Programming is not easy and requires creativity
 Can be hard for people to grasp at first exposure
 Takes repetition and perseverance
• Requires a unique way of thinking
 Requires strong capability to think abstractly
 You must be able to think both about how to
• Break problems into small pieces, AND
• Build a large program from smaller pieces
• But… being able to think like this will serve you well in
almost any future career field
Learning Programming
• 1st quarter we will start with Alice, a 3d
•
programming environment for novices. Then I
will introduce the Java programming language
and some basic (and not so basic) programming
techniques
2nd quarter we will revisit some topics and build
on them to make more substantial programs
• So, don’t worry if things aren’t completely clear
at first – it will all make sense more as we go
along. By second semester, you won’t remember
why you thought this first stuff was difficult!
APCS-A: Intro
Lecture 02
September 8, 2005
Definition of Computer
Science
• CS involves the synthesis and analysis of:





Algorithms
Information representations
Information communication processes
Automated resource allocation methods
Languages for all of the above
Robert Keller
Harvey Mudd College
Computer Science in general
• What is computer science?




Is it programming?
Is that it?
What’s the role of hardware? Software?
What’s computer science research?
• What are the social implications of computing?
 What about ethics?
Interdisciplinary Nature of CS
“Ought computer science be a branch of
mathematics? Of engineering? Of
architecture? Of art? Of biology? Of
sociology? Of philosophy? Alternatively,
does it borrow techniques and approaches
from all of these disciplines? I think so”
Bjarne Stroustrup, The Design and Evolution of C++, 1994
Interdisciplinary Nature of CS
•
•
•
•
•
•
•
•
Mathematics – discrete analysis, logic
Engineering – system design
Art – program construction
Psychology – interface construction
Philosophy – language design
Biology – genetic programming paradigms, bioinformatics
Architecture – large (and expensive) systems
Sociology – information sharing and security
Alice: Concepts
• Virtual World - Objects are the 3 dimensional things in the
world
 They have height, width & depth
• Six Directions in the world (relative to the object’s internal
orientation)
 Up & down
 Left & right
 Forward & backward
• Center of an object
 It is NOT calculated - the artist decides when he/she creates the
object - for some objects it is the center of mass
 For people, the center is between their feet
Alice: Concepts
• Distance is measured from the center of
the object
• Position in the world is based on center of
object
 This affects placement of some objects
Alice: Tutorials
• You will do Tutorials 1 & 4 to get
acquainted with the Alice environment
• Tutorial 1 involves a simple ice-skating
routine and introduces you to the Alice
interface
• Tutorial 4 shows you how to create your
own 3d scenes to work with
Alice Exploration
• When you finish the tutorials, you will create your own
animation to show the class
 You will have the rest of today (after you finish the tutorials and
half of the class tomorrow)
 You are welcome to come to the lab after school today to add
even more.
• Don’t forget the journal assignment due tomorrow.