3 Welcome We’re glad you’re here. We hope you will learn useful things. Find the course challenging.Have fun!
4 Why take CS1311 Required, but why? Pervasiveness of Computing TechnologyProbably eventually work with computersWill definitely work with computer peopleCritical resources for Tech ExperienceSee supplemental chapter in textbook.
5 MisconceptionsAll computer programming is done by computer scientists.I’m a(n) (engineering/architecture/music/management) major. Why would I ever use this stuff?
6 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.
7 Lecture You are here! Will generally follow notes but not guaranteed. Questions welcome.All sections should be synchronizedAttendance strongly encouragedClear link between attendance and grades
8 Lab Required by your department Graded by a Lab TA First lab: This weekProjects take some time because you’re learning.
9 RecitationLed by TAQuizTA will explain details.Bring questions.
10 Office Hours Bill Leahy TBA David Smith Mon & Wed 1:00 - 3:00 p.m. Take advantage!!!
11 Help Sessions Led by TA’s or instructors Offered for you and driven by your questions.Take advantage earlyNot to do your homework for you!
12 Books Required Introduction to Computing and Algorithms Custom Edition Russell L. ShackelfordLecture NotesLab ManualOptionalAlgorithmics -- The Spirit of ComputingDavid HarelBundled at Engineer’s
15 WebCT Comprehensive package that will be used for Announcements DiscussionsAssignment Retreival and Turn inetc.First use in CS 1311New versionEveryone: Instructors/TA’s/Administrators/Y’all is having their first experience this SemesterYour patience and understanding will be appreciated
16 WebCT Available at: http://webct3.gatech.edu NOT AVAILABLE UNTIL SATURDAY!!!Username: GT NumberInitial Password: Social Security NumberIt might not work!
17 Help Follow the following sequence of people TA (or newsgroup) STA Instructor/Program Manager
18 Our RolesYour roleYou 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 roleWe 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.
19 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.
20 Evaluation Homeworks Turned in electronically, graded by Rec TA’s QuizzesTaken in Recitation, graded by Rec TA’sLab projectsTurned in electronically, graded by Lab TALab MidtermTaken electronicallyLab FinalLecture Final (“Official”)
21 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 AccountBuy books, start reading
32 Buzzback Mandatory survey tool Counts towards grade We need and want your feedback.This course has been heavily influenced by BuzzbackTotally anonymousDetails later.
33 Student/TA MeetingsMandatory meeting between small group of students (<5) and TA.Held weeklyGet back homework and quizzesDiscuss problemsContributes towards grade.
34 Grading Lab Projects 10% Lab Midterm 10% Lab Final 10% Homework 10% Quizzes %Lecture Final %Buzzback complete all +1%Meetings w/TA each miss -1%Final > Quiz: Final replaces quizNo curve
35 Personnel You will have: A lecturer (bleahy@cc OR dmsmith@cc) A lab TA A recitation TAA senior TA (STA)A Program Manager
36 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.
39 Part 1 Introduction to Procedural or Imperative Programming Language: Pascal like PseudocodeWill cover essential programming concepts and introduce some basic data structures
40 And now for something completely different... Part 2 has traditionally been an introduction to Object Oriented programmingUp until now it has been taught using a modification of the basic pseudocode used in Part 1Starting now we will now be introducing Object Oriented Programming using Java
42 Part 1: Programming We will be writing general algorithms There will not be a specific target machineProgramming will be done in pseudocodeHand gradedSimplified modelFocus on algorithms and styleAvoid syntactic details
43 Machine Model Mental model Machine capabilities overview Important: Focus on the right way to do thingsBased on both theory and practiceNot based on what a given machine or language will allow
44 Machine Model Central Processing Unit CPU controls the operation Executes sequences of commandsTypically called instructionsCapabilitiesMathCompare numbersMake simple decisions.
45 Machine Model Memory Central Processing Unit Memory stores data used by programsDataNumbersTextLogical (boolean i.e. TRUE/FALSE)Other used in operations (e.g. addresses)
46 Machine Model Memory Central Processing Unit Memory holds instructions (programs)Not a focus of this course
47 Machine Model Memory Central Processing Unit CPU and Memory communicate via bus (wires)Type of communication channel allows interconnection
48 Machine Model Memory Central Processing Unit Display There are also inputand output devicesattached to the bus.Keyboard
49 Basic CapabilitiesWe 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 likeMoving data from the keyboard to memoryMoving data from the memory to the CPUPerforming mathStoring the result in memoryWriting the result on the display tube
50 Basic Capabilities // Our first algorithm (minus some details) // // Declare which variables we’ll needTime, 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 memoryDistance <- Time * Speed// Get a number from memory and display itprint(Distance)// The end!