Title: CS1321 Introduction to Computer Science
1CS1321Introduction to Computer Science
2Welcome
- Were glad youre here.
- We hope you will
- learn useful things.
- Find the course challenging.
- Have fun!
3Lecturers (in no particular alphabetic order)
- David Dagon dagon_at_cc.gatech.edu
- Room 121 in the College of Computing
- Dan Lerner lerner_at_cc.gatech.edu
- Room xxx in the College of Computing
- David Smith dmsmith_at_cc.gatech.edu
- Room 123 in the College of Computing
- Monica Sweat sweat_at_cc.gatech.edu
- Room 120 in the College of Computing
4Why take CS1321
- Required, but why?
- Pervasiveness of Computing Technology
- Probably eventually work with computers
- Will definitely work with computer people
- Critical resources for Tech Experience
- More later...
5Misconceptions
- All computer programming is done by computer
scientists. - Im a(n) (engineering/architecture/music/managemen
t) major. Why would I ever use this stuff? - I don't need to know how to program.
6Course Objective
- It is
- To learn how to design programs
- It is not
- To learn goofy program syntax
- To learn how to count parentheses
- To make your life unbearable
- although at times you will probably think it
is all of these at once
7University Vocabulary
- Lecture Typically led by Professor or Lecturer.
Sometimes big. - Lab Formerly held in equipped laboratory,
involving immediate hands on doing. Now hands on
projects done on your own. - Recitation Typically led by Teaching Assistant
(TA). Smaller group. Questions and answers.
8Lecture
- You are here!
- Will generally follow the material in the text
book, but will usually work through different
examples. - Questions welcome.
- All sections should be synchronized
- Attendance strongly encouraged
- Clear link between attendance and grades
9Lab
- Required by your department
- Graded by your TA
- First lab This week
- Projects take some time because youre learning.
10Recitation
- Led by TA
- Test
- TA will explain details.
- Bring questions.
11Office Hours
- David Dagon
- TBA
- Dan Lerner
- TBA
- David Smith
- Tues Thurs 100 - 300 p.m. or by appointment
- Monica Sweat
- TBA
- Take advantage!!!
12Help Sessions
- Led by TAs or instructors
- Offered for you and driven by your questions.
- Take advantage early
- Not to do your homework for you!
13Resources
- Book
- How To Design Programs
- Felleisen, Findler, Flatt, Krishnamurthi
- http//www.htdp.org
- Class Web Site
- http//www.cc.gatech.edu/AY2002/CS1321
- Lecture slides
- Examples
- On-line Lab Manual
- And much more
- Scheme Web Site
- http//www.cs.rice.edu/CS/PLT/packages/drscheme
14Course Text
How to Design Programs Matthias Felleisen
Robert Bruce Findler Matthew Flatt Shriram
Krishnamurthi ISBN 0-262-06218-6 Also
available at http//www.htdp.org
15WebWork
- Comprehensive package that will be used for
- Announcements
- Discussions
- Assignment Retrieval and Turn in
- etc.
- New version
- Everyone Instructors/TAs/Administrators/Yall
is still learning this thing - Your patience and understanding will be
appreciated
16WebWork
- Available at
- Class web page
- NOT AVAILABLE UNTIL MONDAY!!!
- Username GT Number
- Initial Password Social Security Number
- It might not work!
17Help
- Follow the following sequence of people
- TA (or newsgroup)
- Senior TA (STA) your TA's supervisor
- Instructor/Program Manager
18Our Roles
- Your role
- You are required to demonstrate that you have
learned this material. - You have hired us as trainers to assist you.
- You are ultimately responsible for learning.
- Our role
- We will supply you with a variety of resources to
enable you to learn effectively. - We will evaluate your performance.
- This evaluation will be part of your permanent
record.
19Cafeteria Approach
- Resources are available.
- You pick the ones you want to use.
- Evaluation is like the cash register at the end.
- In this case, evaluation is ongoing so you dont
get a nasty surprise at the end.
20Evaluation
- Homeworks
- Turned in electronically, graded by TAs
- Tests
- Taken in Recitation, graded by TAs
- Lab projects
- Turned in electronically, graded by TA's
- Lecture Final (Official)
21Schedule This Week
- Go to lecture (Tuesday Thursday)
- Go to Recitation (See your schedule)
- Make sure you have a GT Account
- Buy book, start reading
22How the course works
Sun
Mon
Thu
Wed
Tue
Sat
Fri
23You are here
Sun
Mon
Thu
Wed
Tue
Sat
Fri
You are here
24There will be lecture Tuesdays and Thursdays
Sun
Mon
Thu
Wed
Tue
Sat
Fri
You are here
25You will have recitation Tuesday or Wednesday or
Thursday
Sun
Mon
Thu
Wed
Tue
Sat
Fri
You are here
26There is no scheduled Lab time
Sun
Mon
Thu
Wed
Tue
Sat
Fri
You are here
27Homework will be assigned in lecture. It will be
available electronically.
Sun
Mon
Thu
Wed
Tue
Sat
Fri
You are here
HW Assigned
HW Assigned
28Homework will then be due at the midnight before
the next lecture
Sun
Mon
Thu
Wed
Tue
Sat
Fri
You are here
29First Assignment
- Assigned today
- Turn in on paper in class Thursday
30Tests given in recitation. They will cover the
material from the previous homeworks
Sun
Mon
Thu
Wed
Tue
Sat
Fri
HW Due
HW Due
TEST
31Questions?
32Buzzback
- Mandatory survey tool
- Counts towards grade
- We need and want your feedback.
- This course has been heavily influenced by
Buzzback - Totally anonymous
- Details later.
33TA Office Hours
- Your TA will announce his/her office hours in
recitation - Held weekly
- Get back homework and quizzes
- Discuss problems
- You must at least go to pick up your work
- If the grade is not 100,
- Find out what you missed
- Correct your study habits / procedures
34Grading
- Tests 33
- Homework 20
- Labs 15
- Final 30
- Buzzback complete all 2
- Final gt Tests Final replaces test score
- No curve
35Personnel
- You will have
- A lecturer
- TA
- A senior TA (STA)
- A Program Manager (progmgr_at_cc)
36Is 1321 The Shaft
- The course requires a lot of work.
- We bend over backwards to be fair.
- For many students it is a rude awakening from
their carefree high school years. - Some students wait until it is too late to
realize that they are locked in a death spiral. - Resources are there to be used. Make use of
them!!! - There is absolutely no mandate to run a
weed-out course.
37Questions?
38Why Me?
- Why everyone should learn to program
- And as imagination bodies forth
- The forms of things to unknown, and the poet's
pen - Turns them to shapes, and gives to airy nothing
- A local habitation and a name.
- William Shakespeare
- A Midsummer Night's Dream
- Key words
- Things in your imagination
- Turn them into shapes
- patterns or designs
- Give them a habitation and a name
- executable instances of your ideas
39The Algorithmic Model
- What is Computer Science
- What is Programming
- Algorithms
- Defined
- Properties of Good Algorithms
- Describing Algorithms
- Examples
40Definitions
Computer science is the study of what computers
do.
41Definitions
Computer science, today more accurately a
separate discipline, considers a number of rather
mathematical topics. In addition to computability
questions arising from many problems in discrete
mathematics, and logic questions related to
recursion theory, one must consider scheduling
questions, stochastic models, and so on.
Computer Science is no more about computers
than astronomy is about telescopes.
42Definitions
"Computer Science is, simply put, the study of
computation. The study of anything that lends
itself to a computational model is a study in
Computer Science."
43Definitions
Computer science revolves around computational
processes, which are also called information
processes or simply processes. A process is a
dynamic succession of eventsa happening.
44ProcessWhat?
?
If we define CS based on a study of
computational processes--- Whats a
process?
45A Definition Through Indirection
Another way of describing a process is "a
procedure in execution." A procedure is a
collection of instructions, that results in some
useful behavior on behalf of the device that
executes the instruction. When expressed in a
symbolic language, the procedure is called a
computer program.
What's a procedure?
46What is an Algorithm?
47Algorithms
- An algorithm is a precise method of solving a
problem - A given problem may be solvable by a number of
different algorithms - An algorithm will typically use levels of
abstraction to make the solution clearer and
implementation easier.
48Once upon a time
- Many years ago programmers realized that
programming a complex task would be simpler if
they could break the big job down into pieces
49Once upon a time
- This was the birth of modular programming where
big programs get broken down into smaller pieces
called modules, methods, subroutines, procedures
or functions.
50Abstraction
- This breaking down a problem into components that
finally just do one thing is the key to good
abstraction.
51Algorithms Abstraction
- A key feature of a well written algorithm will be
proper use of abstraction - This will provide an algorithm that
- is more understandable
- is easier to implement and test
- provides more reusable modules
- will get a higher grade!
A
52Why Study Computer Science?
53Myth
Computer science is for techno geeks who want to
drive expensive luxury imports.
54What is Programming
- Programming requires two skills
- Algorithmic thinking
- Knowledge of programming language syntax
- Learning language syntax is the easy part
55Algorithm Defined
- A set of logical steps to accomplish a task
- One way to solve a problem
- A recipe of action
- A way of describing behavior
56Algorithms in Computing
Input Data Algorithm Output Data
57Algorithm Recipe
- Chocolate Chip Cookies DATA
(ingredients) 2 1/4 cups flour 1 tsp salt 1
tsp baking soda 2 eggs 3/4 cup brown sugar 1
tsp vanilla ext. 3/4 cup grand sugar 1 cup
soft butter 12oz. semi-sweet chocolate
chipsINSTRUCTIONS (steps) Preheat oven to
375. Combine flour, salt, baking soda, in
bowl, set mixture aside. Combine sugars,
butter, vanilla, beat until creamy. Add eggs
and beat. Add dry mixture and mix well.
Stir in chocolate chips Drop mixture by
teaspoons onto ungreased cookie sheet Bake 8
to 10 minutes
58Abstraction
- a general idea or term
- an impractical idea visionary and unrealistic
- general characteristics apart from concrete
realities, specific objects or actual instances - withdrawal
- absent-mindedness inattention
- a work of art stressing formal relationships
(Random House Dictionary of the English Language)
59Abstraction in Computing
- Refers to the logical grouping of concepts or
objects - Define/implement the general idea
- Isolate the details
- Helps readability and understandingof our
algorithms
60Abstraction in Algorithms
- The Abstraction
- Get to the College of Computing at Georgia
Tech - One Implementation
- begin
- get on I-85 heading towards Midtown Atlanta
- exit I-85 at the 10th street exit
- proceed along exit ramp to 10th street
- turn west on 10th street
- turn left on Atlantic Drive
- stop in front of CoC building
- end
- Other implementations of the same abstraction can
be just as correct, better, or worse
61Why do we stress abstraction?
62Whats Wrong With This Algorithm?
(From back of shampoo bottle) Directions
Wet Hair Apply a small amount of shampoo
Lather Rinse Repeat
63Program Design
- Analyze a problem statement (word problem)
- Express its essence, abstractly and with examples
- Formulate statements and comments in a precise
language - Evaluate and revise these activities in the light
of checks and tests - Pay attention to detail
64Five Points of Advice by Matthias Felleisen
- You cannot learn everything you need to know in
lectures and/or homeworks. You must - 1. Read the Lectures Notes and the Books (How to
Design Programs) - Try to stay ahead of the game and read material
before it is covered in class. If you have
questions, write them down. If these questions
don't get covered, ask in class and/or meet with
the TA, or professor.
65Five Points of Advice by Matthias Felleisen
- You cannot learn everything you need to know in
lectures and/or homeworks. You must - 2. Attempt to solve additional problems.
- Try to solve as many exercises as you read
sections from the book. If you can't do them,
read the material again.
66Five Points of Advice by Matthias Felleisen
- You cannot learn everything you need to know in
lectures and/or homeworks. You must - 3. Attend the lecture and recitations.
- Every professor has a personal understanding of a
(introductory) course and teaches the material
according to a personal style. It is important to
get used to and to exploit this "personalization
of courses" otherwise, you're wasting your
money. - The labs and recitations cover the practical
know-how (how to edit, how to evaluate, how to
print, etc.) and illustrate the material from a
different angle.
67Five Points of Advice by Matthias Felleisen
- You cannot learn everything you need to know in
lectures and/or homeworks. You must - 4. Talk to the teachers.
- If the lecture and the notes leave you with
questions on the material, see your teacher(s)
during office hours or make an appointment. Mark
the passages in the book(s) that you haven't
understood and prepare questions that express
what you haven't understood.
68Five Points of Advice by Matthias Felleisen
- You cannot learn everything you need to know in
lectures and/or homeworks. You must - 5. Keep up.
- Experience proves that students who fall behind
quickly drop out. So, keep up with the readings,
tutorials, and the homeworks. Ask for additional
problems, if the homeworks failed to make a
point.
69Some Tips
- For many students this will be your first
exposure to Computer Science (unlike Math,
Chemistry, etc.)
70Tip 1
Dont wait until the last minute to get help
71Tip 2
Hey, can I still pass if I can get enough partial
credit?
Bad things happen while learning a new skill.
You will probably crash and burn on some
programs. Start early give yourself time for
mistakes.
72Tip 3
Dont be too ambitious with your course load.
You CANNOT slack off in this class, even for a
few days.
73Tip 4
Watch out for the big picture. Dont forget
this is a programming course, not a Scheme
course. Its dangerous to hide from the
programming part of the course. You may be
crushed on the final.
74Discussion?
75(No Transcript)