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