Title: CS 2200 Lecture 01 Introduction
1CS 2200 Lecture 01Introduction
- (Lectures based on the work of Jay Brockman,
Sharon Hu, Randy Katz, Peter Kogge, Bill Leahy,
Ken MacKenzie, Richard Murphy, and Michael
Niemier)
2Some initial questions
- How many of you are taking this class because
youre genuinely interested in the subject
matter? - How many b/c its required?
- How many people are CS majors?
- (How many people are going to change majors?)
- Hopefully none b/c of this class!
- How many people are CS majors because they enjoy
CS? - (How many are using it as a stepping stone to
become rich and powerful and take over the
world?) - (you can answer yes to both ?s ?)
3Me
- Logistics
- Instructor (a.k.a. me)
- Michael Niemier (Mike)
- Research interests computer architecture of
nano-scale devices - Office
- 220 CCB, phone (404)-894-1704
- Office hours
- Tuesday 1100 1230, Wednesday 300 430
- Also by appointment
- E-mail
- mniemier_at_cc.gatech.edu
- (Unfortunately I get a TON of email. As I dont
want to miss yours, for any class ?, please put
CS 2200 at the beginning of the subject line.
Thisll make sure I answer your ? as soon as
possible)
4More logistics
- Milos Pruvlovic
- Office CCB 219
- Office Hours
- Tuesday/Thursday 130 300
- Email milos_at_cc.gatech.edu
5Random Admin
- Web Page
- http//www.cc.gatech.edu/classes/AY2004/cs2200_fa
ll/ - This lecture is on the web page!
- Newsgroups
- git.cc.class.cs2200.announce
- git.cc.class.cs2200
6Logistics continued
- Course highlights
- Test 1 and Test 2 9/16/04, 11/2/04
- Final exam TBD, please consult OSCAR
- Grade breakdown
- Homeworks 10
- Projects 30
- Test 1 20
- Test 2 20
- Final Exam 20
- (Tests, HWs, projects, etc. will also be the
same) - Course website
- http//www.cc.gatech.edu/classes/AY2004/cs2200_spr
ing
up to a 3 bonus which can only HELP you to
be discussed soon.
7A note on the different sections
- Even though
- there are 2 sections of this class
- and you do the same HWs
- and you do the same projects
- you will not be compared to students in the
other class when it comes to final grades,
curves, etc. - (of course, I fully expect us to beat the other
section in class average)
8A note on the curve
- A note on the curve
- Grade cutoffs are calculated as follows
- (sigma is the standard deviation)
- A average sigma
- B average (i.e. above average is a B)
- C average - sigma
- D average - 2sigma
- (Note, Ill create a spreadsheet that you can use
to calculate ESTIMATES of your grade youre
welcome to sit down and do this calculation with
me anytime)
9Bonus points
- My new idea that Im going to implement in this
class - 1st, a note on class attendance
- Id like you to come class
- but I understand if you have another commitment,
job interview, big project deadline in another
class, are sleeping in, or just comprehend the
material and decide your time is better spend
elsewhere - (After all, its your money, and you can spend
it as you please) - All of that said, from my experience, people who
attend class generally do better than those who
dont so Im going to provide some incentive
10The incentive
- Over the course of the semester Im going to give
out 7-8 to quizzes in class. - Youll have about 20 minutes to work on them and
then Ill collect and grade them - The quizzes will be very representative of HW
and especially tests - (read if you can do the quizzes, youre
PROBABLY in pretty good shape for the tests) - Also, as soon as youre done taking the quizzes,
Im going to work out all of the problems on the
board, in class - (read so if you dont understand everything,
youll have something to study off of) - (and feel free to ask questions!)
11The incentive (cont.)
- Grading
- This can only HELP your final grade
- Basically, if there are 8 quizzes over the course
of a semester gets you 1/8th of a percentage
point tacked on to your final grade AFTER the
curve for each quiz you take. - (i.e. if you just turn in 8 quizzes, and your
final grade is a 78, you now have a 79) - If you make some reasonable effort on a problem,
you get another 1/8th of a point tacked onto your
final grade for each quiz taken - (i.e. if you turn in 8 quizzes, and make some
relevant attempt at the problem, never get a
problem right, and your final grade is a 78, you
now have an 80).
12The incentive (cont.)
- You might see where this is goingfor every
problem you get right on a quiz, you get more
points tacked onto your final grade but no more
than 1 total percentage point - (i.e. if you take every quiz and get every
problem right, and you have an 78 at the end of
the class, you now have an 81) - Will it help?
- Last year, 3 people who got a B were within 0-3
of getting an A after the curve they could have
got As - Last year, 4 people who got a C were within 0-3
of getting a B after the curve they could have
got Bs - About 50 people received grades so about 15 of
the class would benefit.
13A note on projects
- Heres 1 more new idea
- The projects for this class generally span about
3 weeks and often involve working with
pre-written code - The TAs usually run a help session for each
project - but its usually 1.5 weeks or so after its been
released for people to talk about problems
difficulties, etc - not everyone can come
- etc.
- Im planning on having a TA come to class each
day a project is released to spend about 20
minutes discussing it. - This way you get a heads up as to whats
expected, required, etc. from one of the project
developers
14CS 2200 rules and regulations (1)
- Academic misconduct is taken very seriously in
this class - We will analyze what you turn in against other
students submissions in the current semester as
well as previous semesters - You are required to do your own work without
looking at other students code no matter what the
source is - You are also expected and required to report any
incidents of academic misconduct to the course
instructor or to the Dean of Students responsible
for Academic Misconduct - Failure to do so is in itself Academic Misconduct
15CS 2200 rules and regulations (2)
- You are responsible for turning in assignments on
time. (see note) - This includes allowing for unforseen
circumstances. - You are also responsible for insuring that what
you turned in is what you meant to turn in. - WebWork includes a getback feature
- This allows you to retrieve exactly what you
submitted and insure that it works. - Take advantage of this feature!
- In general, programming assignments should be
turned in with a Makefile and all files needed to
compile and run the program. - The TA grading your submission should be able to
make and run your program without adding files,
repairing things, etc.
16CS 2200 rules and regulations (3)
- Tests and examinations must be taken at the
scheduled date and time. - Please do not ask for special treatment because
you (or your parents) have purchased
non-refundable airline tickets. - The safe time to travel is at the end of or after
finals week. - The finals schedule published at the beginning of
the semester is TENTATIVE. - The official schedule gets published very late in
the semester - (Id actually like to be nice about this but I
promise you, I have NO control over it!) - Brief interlude last year
17CS 2200 rules and regulations (4)
- If you need a certain grade in order to stay in
school, maintain a scholarship, etc. the time to
worry about this is right from the beginning of
the course not during the week before finals. - Grades are based on demonstrated performance not
individual need based on factors external to the
course. - Please do not request special consideration based
on this type of situation - Final grades will be available from OSCAR
normally sometime the week after finals. - You may review your final and discuss your grades
during the following semester in which you are
attending Georgia Tech. - Grades will not be discussed over break
18CS 2200 rules and regulations (5)
- If you have any personal problems
(family/illness/etc.) please go to the Dean of
Student's (Gail DiSabatino) office located in the
Student Services Building (Flag Building) next to
the Student Center. - She is equipped and authorized to verify the
problems and she will issue a note to all your
instructors making them aware of the problem and
requesting whatever extension, etc. is necessary - Actually, this has changed
- You now need to see me instead.
19CS 2200 rules and regulations (6)
- The .announce newsgroup should be read every day.
Official announcements about course matters will
be posted there. - The general course newsgroup is for posting
technical questions about assignments, tests etc.
- Complaints, questions about your personal
problems, etc. should be discussed with your
instructor in person or via email
20CS 2200 rules and regulations (7)
- Out of consideration to your fellow students
please turn off cell phones, beepers, wristwatch
alarms, etc. - Also, make every effort to be on time for class.
- If you are graduating and need this course to do
so please inform your instructor as soon as
possible - Complaints about any aspect of the course should
be directed to the course instructor during
office hours or via email.
21CS 2200 rules and regulations (8)
- The deadline for regrades is 2 weeks after an
assignment grade is posted or returned to you.
This deadline also applies to picking up items
which are returned in class. After this deadline
no grade changes will be made and tests not
picked up will be destroyed
22Other admin stuff
- Historically CS2200 has run all projects on acme
(Solaris). - Our beloved course owner Kishore Ramachandran
has purchased us a new Linux server just for
CS2200! - Introducing turku.cc.gatech.edu
- What does this mean?
- You need a CoC account
- Projects must run on Red Hat 9.0 Linux
23More admin stuff
- If you have an active CoC account do nothing!
- Example changailey_at_cc.gatech.edu
- If you already have a CoC account and it's
inactive - You need to go to CNS (CCB 140) and get it
reactivated - If you have never had a CoC account request one
via the web http//www.cc.gatech.edu/cns/forms/a
ccount_form.html
24Fast, random transition 2
- Where does this class fit into a CS curriculum at
GT?
CS 2200
Systems
Networks
You are here!
25Freshman year Fall semester
- ENGL 1101 (3)
- MATH 1501 (4)
- Calculus I
- Differential calculus and basic integral calculus
including the fundamental theorem of calculus,
including the underlying theory of limits for
functions and sequences. - Lab Science
- Could be BIOL 1510, BIOL 1520, CHEM 1310, EAS
1600, or EAS 1601 - History/Constitution
- Could be HIST 2111, HIST 2112, POL 1101, PUBP
3000, or INTA 1200 - CS 1321
- Introduction to Computing
- Foundations of computing with an emphasis on the
design, construction, and analysis of algorithms.
Laboratory-based instruction to computers and
software tools.
26Freshman year Spring semester
- ENGL 1102
- MATH 1502
- Calculus II
- This course concludes the treatment of single
variable calculus, and begins linear algebra --
the linear basis of the multivariable theory. - Wellness
- HPS 1040, 1062, 1063, or 1064
- CS 1050
- Constructing Proofs
- Techniques of rigorous argumentation, emphasizing
reading and writing of formal and informal
proofs. Application of techniques to domains of
relevance to computer science. - CS 1322
- Objected Oriented Programming
- Introduction to techniques and practices for
implementing algorithms. Emphasis on professional
software practices. Projects focus on interactive
and computationally intensive programs, including
large program management.
27Sophomore year Fall semester
- Humanities I
- MATH 2605
- Replaces Calculus III
- Topics in linear algebra and multivariate
calculus and their applications in optimization
and numerical methods, including curve fitting,
interpolation, and numerical differentiation and
integration. - CS 2130
- Languages and Translation
- Introduces issues of machine translation
including tokenizing, parsing, data
representation, and run-time environments.
Discusses implementation of programming
languages. Laboratory exercises cover tools and
techniques for writing parsers and translators. - ECE 2030
- Introduction to Computer Engineering
- Computer system and digital design principles.
Architectural concepts, software, Boolean
algebra, number systems, combinational datapath
elements, sequential logic, and storage elements.
Design of DRAM control and I/O bus.
28Brief interlude
- CS 2130
- Why eventually SW actually has to make the
computer do something and it actually has to talk
to the microprocessor - This course provides fundamental knowledge of how
that happens also talk about C programming,
UNIX, etc. - ECE 2030
- Why if the above course talks about SW, here we
learn about HW that will eventually have to be
controlled, how a computer computes, etc. - Provides lots of fundamentals for this course,
the future - So, we have
29Another brief interlude
30The top of the pyramid
- 1st 2 years provide fundamental knowledge, base
of the pyramid - Next 2 years allow for specialization
- Form the top of the pyramid
- How?
- Im glad you asked!
- Lets talk about a Playstation 2
31Where does this class really fit in?
- Lets look at a case study
- In past CS 2200s, case study was a video game
- Time the future
- Place the Karaq Wastes
- Action immediate
- How does all of the following happen?
- Not surprisingly, Im about to tell you that this
class plays a big part
32But
- I have to say that Doom type of games arent my
style so lets change that first to - College football!
- (the only reason I bought a Playstation2)
- That said, lets talk about NCAA Football 2004
33Screenshot 1
How do you make a player run where you want
to? Or taunt the other team?
34Screenshot 2
How do you add fun features like night day,
rain snow?
35Screenshot 3
How can you easily play a game from the 30s or
40s?
36Screenshot 4
How can you easily play a game entirely of
mascots?
37Screenshot 5
How can youever play a game with Georgia???
38Again, how do you
- allow for different player movements?
- have mascots play against each other?
- easily have different uniforms from different
eras? - easily allow for different camera angles?
- have game announcers refer to players by name?
- change the weather in a game?
- allow for multiple players?
- have movement on screen match a users input?
- Lets look at different levels of a game
39Level 0 the game
- Whats involved?
- 3D graphics
- Mouse/keyboard/control
- Stereo sound
- Computer players
- Fight songs
- Uniforms
- Tradition
- Game starts at a high level
- Concept
- Storyboards
- Programmers
- Artists
- HCI experts
- Why the PS2 controller is so complex
- Sound experts
- Crowd chants, etc.
- Actors
- Animators
- Playtesters
All things we have to make happen so
- We can physically play the game
- We can make the game fun
40Level 1 application
- Almost a cooks tour of CS disciplines
- Visualization
- Graphics
- User interaction / human computer interaction
- Artificial intelligence
- State machines
- Databases
- Playing against other people remotely
(networking) - Game creation
- Sound
All things needed to make the game happen
(Usually done in SW)
1
2
3
(i.e. going from action to play select)
4
5
6
(actual game play requires HW)
41Level 2 systems
- Runtime system
- Procedure call/return mechanisms
- Memory allocation
- Middleware
- Middleware is connectivity SW that consists of a
set of enabling services that allow multiple
processes running on one or more machines to
interact across a network - (i.e. something that helps you play against your
friends in different cities ?) - Also, say your stuck in this class, but you
really want to be a programmer - Understanding 1-level down will help you be a
better programmer!!! - Also, if not programming graphics, could write SW
that allows HW components to interact more in
this class!!!
Cant access CD in real time
42Level 3 operation system
- Resource manager
- Processor(s)
- Memory
- I/O devices
- Etc.
Physical HW to make your PS2 work also more in
this class!
43Level 4 compilers
- Compilers are a bridge between
- High-level languages
- Runtime
- OS
- Have you done much with compilers besides using
them?
44Level 5 Hardware
45What well cover here
- Broad exposure to computer systems
- Organization of the processor
- Memory hierarchies
- Storage devices
- Parallel processors
- Networking hardware
- SW abstractions in the OS for orchestrating their
usage - Networking protocols to connect the computer
system to its environment - Major topics
- Processor, Memory Hierarchies, I/O Subsystems,
Parallel Systems, Networking
46A summarizing picture
CS2130, CS1xxx,
ECE2030
47Power of Abstractions
- Confine your work to one abstraction layer
- Avoid having to understand other layers.
- This does NOT mean that you only have to
understand 1 layer! - Interfaces persist across implementations
- Good abstractions last a long time.
- So do bad ones, unfortunately.
- But you have to know the limits
- Newtonian physics
- wire delay
48Purpose of CS2200
- 1. Complete the layers of computer abstractions
- set the stage for more work at any layer
- know the overall structure in the event of a
20-year overhaul - 2. At minimum, a tour of the two layers below
- add strength to any CS specialization.
- 3. Bag of tricks
- OS, architecture, networking abstractions
reappear in applications. - These are some of the most time-tested
abstractions in CS
49Finally, a quiz
- Dont worry, it doesnt count!
- We just want to figure out where the class is
starting at