CSC152 2005S, Class 1: About the Class
MS. SCHMITZ,
Brad, Todd, Elijah, Rolf, Elizabeth, Shen, A, David, Monica, Jonathan, Saugar, Lorelei
Overview:
* About the structure of class
* What is CS?
* What is this class?
* Administrivia
* Web site
* Primary components
* Approximate schedule
* Q and A
* Object-oriented programming basics
Example of "group problem solving": What is CS?
* Computer Science is "The Science of Computers"
* Problem: Although it appears to have a glimmer of brilliance, particularly in its use of infinite recursion, in the end, like all infinitely recursive things, it is useless.
Example of "group problem solving": How do I find the last book that would fit on the first shelf?
* "Find the first book that starts with Z, then the first book that starts with Y, then the boo X"
* But Sam didn't ask for the last book
* How many books fit on a shelf?
* Oh no! They're of variable width.
What is Computer Science?
* The attempt to represent information as digital data and to solve problems
* Suggestion: Define each word separately and then attempt to combine them
What is Science?
* The study of a subject with in which you
* Observe
* Form a hypothesis
* Design an experiment that permits you to test the hypothesis
* Perform an experiment
* Revise your hypothesis (lend creedence or "falsify")
What is a Computer?
* An electronic device that "does surprising things"
* Refinement: A programmable device that "processes data"
"processes" = "represents and performs operations on"
Hypothesis: This "algorithm" is likely to work better than another
Hypothesis: This "algorithm" models the real world sufficiently well
---
Most computer scientists would say that computer science is ...
* The study (science) of algorithms (computation) and data
* Design algorithms
* Implement the algorithms
* as programs
* as hardware
* Analyze the algorithms
* for efficiency
* for correctness
* using the tools of a scientist: (hypothesis, experiment, etc.)
* using the tools of a mathematician: PROOF
* Hypothesize about potential algorithms
* No algorithm can solve problem X
* No efficient algorithm can solve problem Y
* Consider the implications of the algorithms
CSC152 is a class in ALGORITHMS and ABSTRACT DATA TYPES
CSC152 is also a class in OBJECT-ORIENTED PROGRAMMING
* Claim: The language we use to write algorithms affects the algorithms we write
* In 151, you learned that programs can be collections of composed functions
* In 152, you will see that programs can be collections of objects that perform actions and communicate with each other
* In both classes, you saw/will see that programs can be sequences of instructions
WE GROUND ALL OF THIS IN THE JAVA PROGRAMMING LANGUAGE
General work: Labs plus some discussion (20% of grade)
Regular homework, sometimes graded (20% of grade)
Three take-home exams (10% of grade each)
Final project, some large proigramming exercise (20%)
Best of above (10%)
FINAL IS OPTIONAL! Replaces lowest exam grade, but only if higher