# Class 01: Introduction to The Course

On to Starting Scheme.

Held: Wednesday, 21 January 2004

Summary: Today we begin CSC153 by considering the core subject matters of the course: problem solving, computer science, computer programming, and computing.

Related Pages:

Assignments:

Overview:

• Definitions: Computer science, computer programming, computing, ialgorithm, and more.
• Course basics.
• Getting started with the ECA.

## An Introductory Question

• Rather than telling you exactly what the class is about, I'm going to start the class with a question for you. the questions will help ground the class and also begin to get you used to some aspects of my teaching style (particularly my reliance on recitation-style work).
• What is Computer Science?
• I will give some of my own responses after I've heard some of yours.

## What is CS?

• Computer scientists differ in how they define the discipline. However, most would aggree that
Computer science is the study of algorithms and data structures.
• By algorithms, we mean sets of instructions that can be used to solve problems.
• Some problems are mathematical. For example, you might write an algorithm to find the square root of a real number.
• Other problems deal with textual information. For example, you might write an algorithm that tells how to find a name in the phone book.
• You can write algorithms for a wide variety of problems.
• By data structures, we mean mechanisms for organizing information. For example, we organize some information in lists and other information in tables.
• By study, we mean specify, design, describe, evaluate mathematically, evaluate experimentally, implement in software, implement in hardware, prove properties, consider applications and implications, and much, much more.
• In our studies, we rely on the tools and techniques from a number of other disciplines.
• From mathematics, we take proof techniques, formal language for describing problems and solutions, and even core ideas.
• From science, we take experimental techniques.
• From engineering, we take techniques for designing and constructing things.
• From psychology and the social sciences, we take techniques for understanding the relationship of our work to human endeavors.
• These diverse perspectives and skill sets make CS interesting and challenging.

• I expect and hope that you will find CSC153 different from any class you've taken in the past.
• We use a different format than many classes: a collaborative, workshop-style format. (You may have seen this format in other introductory science courses; we do it somewhat differently.)
• Computers and computer science also require you to think differently. I expect that you'll exercise some brain cells you may have forgotten you have. (And after all, isn't liberal arts education an exercise in thinking in as many ways as you can?)
• Computer Science 153 has a number of goals
• To introduce you to fundamental ideas of computer science: abstraction, algorithms, and data
• To enhance your problem-solving skills and give you experience in formal representation of problems and solutions.
• To introduce you to all three primary paradigms of problem solving: functional, imperative, and object-oriented.
• To give you some programming skills that you can apply to problems in other disciplines.
• To introduce you to algorithm analysis and design.
• Like most computer science courses, CSC153 will have both theoretical and practical components. I hope you will enjoy relating the two.
• Because CS153 combines topics from both CS151 and CS152, it moves at a fairly rapid pace. I expect that you'll be able to keep up with the pace.

• You may have noted that I said that we'll study three paradigms of problem solving.
• Over the years, computer scientists have designed (discovered?) a number of techniques for looking at how to write solutions to problems. There are four basic ones.
• We'll visit each in terms of making cookies (or at least we'll try).
• Imperative: Solutions are a collection of basic instructions with some additional sequencing.
• Sift dry ingredients.
• Stir 50 times.
• ...
• Object-Oriented: Solutions are a collection of interacting objects.
• Head chef: Hand bowl of ingredients to mixing sous-chef.
• Sous-chef: Upon receiving bowl of ingredients, mix.
• ...
• Functional: Solutions consist of function definitions and function applications. It's often useful to think of a function as a form of filter: it converts its input to output.
• The mixer converts separate ingredients into a consistent mush.
• The oven converts raw dough to cooked dough.
• Declarative: Solutions consists of collections of facts.
• To bake cookies, you cook at 375 degrees F for 8 to 10 minutes.
• Chocolate chip cookies contain ...

## The Need for Formality

• Some people wonder why we need computer languages like Scheme, Pascal, C, Java, and the ilk.
• In part, it's probably because the computer elite want to maintain their sense of superiority over the masses.
• In greater part, it's because English and other natural languages can be ambiguous. At the very least, they have many similar structures that are interpreted very differently. Consider the classic pair of
• Time flies like an arrow.
• Fruit flies like a banana.
• Remember: Computers are sentient and malicious. It often seems that they'll do their best to misinterpret whatever it is you write.

• Please refer to the course web site for more details.
• Teaching philosophy: I support your learning.
• Policies
• Attendance: I expect you to attend every class. Let me know when you'll miss class and why.
• Course web.
• Etc.
• Daily work
• Attend class, work on lab and participate in discussion.
• Finish the lab in the evening.
• Do the reading for the next class in the evening.
• The exams
• Three take-home exams during the semester. Plan to spend ten hours on each one.
• An optional final to make up for a bad exam grade.
• Take all three exams anyway.
• The labs
• Available online.
• Being re-written as the semester progresses.
• I'll require more formal writeups of a few labs a semester.
• The homeworks
• One makeup at the end of the semester.
• Core to the academic process.
• My basic policy: Don't cheat.
• The college's basic policy: Cite carefully.
• Significant breakdowns in CSC151 a few years ago.

## History

On to Starting Scheme.

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Fri May 7 09:43:02 2004.
The source to the document was last modified on Wed Jan 21 09:37:53 2004.
This document may be found at `http://www.cs.grinnell.edu/~rebelsky/Courses/CS153/2004S/Outlines/outline.01.html`.

You may wish to validate this document's HTML ; ; Check with Bobby

Samuel A. Rebelsky, rebelsky@grinnell.edu