CS 1301 Lecture 1

advertisement
CS 1311
Fall 2000
Instructors
• Bill Leahy
– bleahy@cc.gatech.edu
– Office: CoC 121
– Office Hours: Tue & Thur 3 - 5
• David Smith
– dmsmith@cc.gatech.edu
– Office: CoC 121
– Office Hours: Mon & Wed 1 - 3
Welcome
• We’re glad you’re here.
• We hope you will learn useful things.
• Find the course challenging.
• Have fun!
Why take CS1311
•
•
•
•
•
Required, but why?
Pervasiveness of Computing Technology
Probably eventually work with computers
Will definitely work with computer people
Critical resources for Tech Experience
• See supplemental chapter in textbook.
Misconceptions
• All computer programming is done by computer
scientists.
• I’m a(n)
(engineering/architecture/music/management)
major. Why would I ever use this stuff?
University 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.
Lecture
• You are here!
• Will generally follow notes but not guaranteed.
• Questions welcome.
• All sections should be synchronized
• Attendance strongly encouraged
– Clear link between attendance and grades
Lab
•
•
•
•
Required by your department
Graded by a Lab TA
First lab: This week
Projects take some time because you’re learning.
Recitation
• Led by TA
• Quiz
• TA will explain details.
• Bring questions.
Office Hours
• Bill Leahy
– TBA
• David Smith
– Mon & Wed 1:00 - 3:00 p.m.
• Take advantage!!!
Help Sessions
•
•
•
•
Led by TA’s or instructors
Offered for you and driven by your questions.
Take advantage early
Not to do your homework for you!
Books
• Required
– Introduction to Computing and Algorithms
• Custom Edition
• Russell L. Shackelford
– Lecture Notes
Bundled at Engineer’s
– Lab Manual
• Optional
– Algorithmics -- The Spirit of Computing
• David Harel
Map to Engineers
MAIN ENTRANCE
GEORGIA TECH
STUDENT CENTER
SAC
TECH PARKWAY
HABERSHAM BUI LDI NG
GEORGIA TECH
THELMA’S
KI TCHEN
NEXUS
ARTS
CENTER
ENGINEER'S
BOOKSTORE
748 MARIETTA ST.
MEANS STREET
WACHOVI A
MARI ETTA STREET
SALVATI ON
ARMY
Wing Zone
WebCT
• Comprehensive package that will be used for
– Announcements
– Discussions
– Assignment Retreival and Turn in
– etc.
• First use in CS 1311
• New version
• Everyone: Instructors/TA’s/Administrators/Y’all is
having their first experience this Semester
• Your patience and understanding will be
appreciated
WebCT
• Available at:
• http://webct3.gatech.edu
• NOT AVAILABLE UNTIL SATURDAY!!!
• Username: GT Number
• Initial Password: Social Security Number
• It might not work!
Help
• Follow the following sequence of people
– TA (or newsgroup)
– STA
– Instructor/Program Manager
Our 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.
Cafeteria 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 don’t
get a nasty surprise at the end.
Evaluation
• Homeworks
– Turned in electronically, graded by Rec TA’s
• Quizzes
– Taken in Recitation, graded by Rec TA’s
• Lab projects
– Turned in electronically, graded by Lab TA
• Lab Midterm
– Taken electronically
• Lab Final
– Taken electronically
• Lecture Final (“Official”)
Schedule This Week
• Go to lecture (Tuesday & Thursday)
• Go to Recitation (See your schedule)
• Do not go to lab!
• Make sure you have a GT Account
• Buy books, start reading
How the course works
Sun
Mon
Tue
Wed
Thu
Fri
Sat
You are here
Sun
Mon
Tue
You
are
here
Wed
Thu
Fri
Sat
There will be lecture Tuesdays
and Thursdays
Sun
Mon
Tue
You
are
here
Wed
Thu
Fri
Sat
You will have recitation Tuesday or
Wednesday or Thursday
Sun
Mon
Tue
You
are
here
Wed
Thu
Fri
Sat
There is no scheduled Lab time
Sun
Mon
Tue
You
are
here
Wed
Thu
Fri
Sat
Homework will be assigned on Fridays.
It will be available electronically.
Sun
Mon
Tue
You
are
here
Wed
Thu
Fri
HW
Assigned
Sat
Homework will then be due the
following Friday at 9:00 a.m.
Sun
Mon
Tue
Wed
Thu
Fri
You
are
here
HW
Due
Sat
Homework will, in general, be based on the
preceding Thursday’s and Tuesday’s material
Sun
Mon
Tue
Wed
Thu
Fri
You
are
here
HW
Due
Sat
Quizzes will be given in recitation. In general, they
will cover the material from the previous homework
Sun
Mon
Tue
Wed
Thu
Fri
You
are
here
HW
Due
QUIZ
Sat
Questions?
Buzzback
•
•
•
•
Mandatory survey tool
Counts towards grade
We need and want your feedback.
This course has been heavily influenced by
Buzzback
• Totally anonymous
• Details later.
Student/TA Meetings
• Mandatory meeting between small group of
students (<5) and TA.
• Held weekly
• Get back homework and quizzes
• Discuss problems
• Contributes towards grade.
Grading
•
•
•
•
•
•
•
•
•
•
Lab Projects
10%
Lab Midterm
10%
Lab Final
10%
Homework
10%
Quizzes
30%
Lecture Final
30%
Buzzback complete all
+1%
Meetings w/TA each miss -1%
Final > Quiz: Final replaces quiz
No curve
Personnel
• You will have:
– A lecturer (bleahy@cc OR dmsmith@cc)
– A lab TA
– A recitation TA
– A senior TA (STA)
– A Program Manager
(progmgr@cc)
Is 1311 “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 “weedout” course.
Questions?
CS 1311: Introduction to Computing
Overview
1. Basic algorithmic/procedural programming
2. Object oriented programming
3. Performance Issues
Part 1
• Introduction to Procedural or Imperative
Programming
• Language: Pascal like Pseudocode
• Will cover essential programming concepts and
introduce some basic data structures
And now for something
completely different...
• Part 2 has traditionally been an introduction to
Object Oriented programming
• Up until now it has been taught using a
modification of the basic pseudocode used in
Part 1
• Starting now we will now be introducing Object
Oriented Programming using Java
Part 3
• Performance Issues
Part 1: Programming
• We will be writing general algorithms
• There will not be a specific target machine
• Programming will be done in pseudocode
– Hand graded
– Simplified model
– Focus on algorithms and style
– Avoid syntactic details
Machine Model
• Mental model
• Machine capabilities overview
• Important:
– Focus on the right way to do things
– Based on both theory and practice
– Not based on what a given machine or
language will allow
Machine Model
Central
Processing
Unit
• CPU controls the operation
• Executes sequences of commands
• Typically called instructions
• Capabilities
• Math
• Compare numbers
• Make simple decisions.
Machine Model
Central
Processing
Unit
Memory
• Memory stores data used by programs
• Data
• Numbers
• Text
• Logical (boolean i.e. TRUE/FALSE)
• Other used in operations (e.g. addresses)
Machine Model
Central
Processing
Unit
Memory
• Memory holds instructions (programs)
• Not a focus of this course
Machine Model
Central
Processing
Unit
Memory
• CPU and Memory communicate via bus
(wires)
• Type of communication channel allows
interconnection
Machine Model
Central
Processing
Unit
There are also input
and output devices
attached to the bus.
Memory
Display
Keyboard
Basic Capabilities
• We will get into exact details of how we write
algorithms in pseudocode next time.
• For now to get the basic idea we can imagine
capabilites like
– Moving data from the keyboard to memory
– Moving data from the memory to the CPU
– Performing math
– Storing the result in memory
– Writing the result on the display tube
Basic Capabilities
// Our first algorithm (minus some details)
//
// Declare which variables we’ll need
Time, Speed, Distance isoftype Num
// Get a number from keyboard and store it.
read(Time)
// Get another from keyboard and store it.
read(Speed)
// Get the values from memory, multiply them
// together and then store in memory
Distance <- Time * Speed
// Get a number from memory and display it
print(Distance)
// The end!
Questions?
Go to Recitation!
Download