210 likes | 524 Views
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
E N D
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, bio-informatics • 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.