Title: CS 2200 Lecture 1 Introduction
1CS 2200 Lecture 1Introduction
- (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 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 ?)
3Fast, random transition 1
- Logistics
- Instructor (a.k.a. me)
- Milos Prvulovic (Milos is read as Me-losh)
- Research computer architecture for SW and HW
reliability - Any ?s about me?
- Office
- 219 CCB, phone (404)-385-6364
- Office hours
- Tues./Thurs. 130 300
- Also by appointment
- E-mail
- milos_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
- Mike Niemier
- Office CCB 220
- Office Hours
- See web site
- Email mniemier_at_cc.gatech.edu
- TAs
- This class has five TAs
- The TAs know this stuff!
- The TAs grade your WebWork assignments
- The TAs also have office hours (see web site)
5Random Admin
- Web Page
- http//www.cc.gatech.edu/classes/AY2005/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/AY2005/cs2200_spr
ing
up to a 3 bonus which can only HELP you to
be discussed soon.
7A note on different CS2200 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. - But I do expect us to beat the other section in
class avg.
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 can be used
to calculate ESTIMATES of your grade youre
welcome to sit down and do this calculation with
me anytime)
9Bonus points
- New idea that Im going to use in this class
- 1st, a note on class attendance
- Id like you to come class
- Studies show students who regularly
attendclasses are more likely to graduate
successfully - My experience has been that students who attend
class generally do better (grade-wise) than those
who dont - but I understand if you have another commitment,
job interview, big project deadline in another
class, are sleeping in, or just know this stuff
and decide your time is better spend elsewhere - (After all, its your money, and you can spend
it as you please) - However, Im going to provide some incentive
10The incentive
- Over the course of the semester Im going to give
out 5 pico-quizzes in class. - Youll have about 15 minutes to work on them and
then Ill collect and grade them - The quizzes will be representative of HW and
tests - (read if you can do the quizzes, youre
PROBABLY in pretty good shape for the tests) - Also, when youre done taking a quiz, were going
to work out all of the problems on the board, in
class - (read 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
- Just turning in a quiz sheet gets you 1/5th of a
percentage point tacked on to your final grade
AFTER the curve. - (i.e. if you just put your name on all 5 quizzes
and turn them in, and your final grade is a 78,
you now have a 79) - If you make some reasonable effort on all
problems of a quiz, you get another 1/5th of a
point - (i.e. if you turn in the 5 quizzes, and make some
relevant attempt the problems, 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 would have
got As - Last year, 4 people who got a C were within 0-3
of getting a B after the curve they would 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
14A Word About Assignments
15CS 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
16CS 2200 rules and regulations (2)
- You are responsible for turning in assignments on
time - This includes allowing for unforeseen
circumstances. - You are also responsible for ensuring that what
you turned in is what you meant to turn in. - WebWork includes a getback feature
- Allows you to retrieve exactly what you
submittedand make sure 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.
17CS 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) purchased non-refundable
airline tickets. - The safe time to travel is after the 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 butI
have absolutely NO control over it!
18CS 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 the break
19CS 2200 rules and regulations (5)
- If you have a significant personal problem
(family/illness/etc.), let me know - Itll look very suspicious if your problem occurs
a few hours before an assignment is due - If you have a major problem or you feel
uncomfortable telling me about a smaller problem,
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 requesting whatever extension, etc.
is necessary - Your projects are still due when they are
dueunless your problem spans more than 3 days - Remember, the official deadline is always
Friday!
20CS 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
21CS 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 unavoidably late, please sit near the back
and try to avoid as much disruption to the class
as possible - 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.
22CS 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
23Other 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
24More 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
25Fast, random transition 2
- Where does this class fit into a CS curriculum at
GT?
CS 2200
Systems
Networks
You are here!
26Freshman 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.
27Freshman 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.
28Sophomore 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.
29Brief 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
30Another brief interlude
31The 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
32Where does this class really fit in?
- Lets look at a case study
- Time the future
- Place the Karaq Wastes
- Action immediate
- How does all of this happen?
- Not surprisingly, Im about to tell you that this
class plays a big part
33Level 0 the game
- Whats involved?
- 3D graphics
- Mouse/keyboard/control
- Stereo sound
- Computer players
- Blood
- Guts
- Heroism
- Game starts at a high level
- Concept
- Storyboards
- Programmers
- Artists
- Landscpe, buildings, etc.
- HCI experts
- How to quickly change from granade launcher to
rail gun? - Sound experts
- Screams, booms, etc.
- Actors
- Animators
- Playtesters
All things we have to make happen so
- We can physically play the game
- We can make the game fun
34Level 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)
35Level 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
36Level 3 operation system
- Resource manager
- Processor(s)
- Memory
- I/O devices
- Etc.
Physical HW to make your PS2 work also more in
this class!
37Level 4 compilers
- Compilers are a bridge between
- High-level languages
- Runtime
- OS
- Have you done much with compilers besides using
them?
38Level 5 Hardware
39What 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
40A summarizing picture
CS2130, CS1xxx,
ECE2030
41Power 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
42Purpose 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
43Finally, a quiz
- Dont worry, it doesnt count!
- We just want to figure out where the class is
starting at