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!