CSC151, Class 2: Introduction to the Class * Homework: Survey * Homework: Read about HTML * Reflections on yesterday's exercise * The parts of an algorithm * General course overview * Paradigms of computing * Some course details * Lab: Getting started in the MathLAN (maybe) What, if anything, did you learn from yesterday's exercise? * Define constraints in what you're doing * Include all of the details * Make sure that the "computer" understands all of the aspects of the problem * Make sure that you describe even the smallest detail; be very precise b/c computers follow the letter of the law * Name each piece of data uniquely so that they are not confused * If you're going to apply the same procedure to different things, make sure they're similar in the important ways * You can have fun even when things are going horribly wrong. * You create better results if you work together. * It's often easier to "program" if you can update as you go --- Other observation: There were some common structures that we used in writing PB&J that we might use in other algorithms * Subroutine: We might apply part of the algorithm to different pieces of data * Variables: We need to name things * Sequential control: Read a set of instructions from top to bottom * Repetition: Do things again and again until some condition holds * Conditional: Decide what to do based on a condition All languages include these five basic concepts in some way or another. --- * Never buy pop-top jelly ----- Details of the course: * A course in computer science is a course in algorithms * How to design algorithms / how to solve problems * How to express those algorithms in a programming language Scheme: Simple to use but powerful * Why to express algorithms for the computer * We know some reasons: For really repetitious tasks, the computer is often faster (and remains so); humanistic reason: don't make people do repetitive tasks; capitalistic reason: computers are cheaper; there are things humans can't do; computers are likely to be more accurate than humans Experience shows that CSC151 is different than other Grinnell courses * Much more collaborative work than most courses * Computer science seems to exercise a different part of your brain than most courses * You usually know when you're wrong Ask other people for help -- Syllabus is not yet ready Typical day: * Ten minutes of lecture discussion * Thirty minutes of lab work * Five minutes of reflection * Daily reading for the next day Plus: * Weekly homework