520 likes | 535 Views
Welcome to CS1311! This course will introduce you to the fundamentals of computing and algorithms. Learn why taking this course is important and get familiar with university vocabulary. Attendance strongly encouraged.
E N D
Lecture 1 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!
Bundled at Engineer’s Books • Required • Introduction to Computing and Algorithms • Custom Edition • Russell L. Shackelford • Lecture Notes • Lab Manual • Optional • Algorithmics -- The Spirit of Computing • David Harel
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 Wed Thu Fri Sat You are here
There will be lecture Tuesdays and Thursdays Sun Mon Tue Wed Thu Fri Sat You are here
You will have recitation Tuesday or Wednesday or Thursday Sun Mon Tue Wed Thu Fri Sat You are here
There is no scheduled Lab time Sun Mon Tue Wed Thu Fri Sat You are here
Homework will be assigned on Fridays. It will be available electronically. Sun Mon Tue Wed Thu Fri Sat You are here HW Assigned
Homework will then be due the following Friday at 9:00 a.m. Sun Mon Tue Wed Thu Fri Sat You are here HW Due
Homework will, in general, be based on the preceding Thursday’s and Tuesday’s material Sun Mon Tue Wed Thu Fri Sat You are here HW Due
Quizzes will be given in recitation. In general, they will cover the material from the previous homework Sun Mon Tue Wed Thu Fri Sat You are here HW Due QUIZ
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 “weed-out” course.
CS 1311: Introduction to ComputingOverview 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 Memory Central Processing Unit • Memory stores data used by programs • Data • Numbers • Text • Logical (boolean i.e. TRUE/FALSE) • Other used in operations (e.g. addresses)
Machine Model Memory Central Processing Unit • Memory holds instructions (programs) • Not a focus of this course
Machine Model Memory Central Processing Unit • CPU and Memory communicate via bus (wires) • Type of communication channel allows interconnection
Machine Model Memory Central Processing Unit Display There are also input and output devices attached to the bus. 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!