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 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 ?)
- Dont forget those answers! Well be back to
them later!
3More initial questions
- See attached handout
- Name
- What CS discipline do you want to specialize in?
- What do you want to learn in this course?
- Please attach or copy a picture
- Birthday
- Favorite color
- Favorite salad dressing
- Favorite sport to watch
- Favorite type of music
- Favorite ice cream
- Croutons or Bacon Bits
- Please fill out and return in a week itll help
me get to know all of you.
4My answers
- See attached handout
- Name Michael Thaddeus Niemier (Nee my er)
- What CS discipline do you want to specialize in?
- Computer architectures for nano-scale devices
- What do you want to learn in this course?
- How to integrate ideas from various schools into
this class - Please attach or copy a picture
- Birthday 05/24/1976
- Favorite color Green
- Favorite salad dressing Ceaser
- Favorite sport to watch College Football
- Favorite type of music Soundboard quality live
U2 concerts - Favorite ice cream Chocolate brownie sundae
- Croutons or Bacon Bits LOTS of croutons
5Fast, random transition 1
- Logistics
- Instructor (a.k.a. me)
- Michael Niemier
- Research interests computer architecture of
nano-scale devices - Any ?s about me?
- Office
- 219 CCB
- Office hours
- Tues./Thurs. 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)
6More logistics
- Bill Leahy
- Office CCB 121
- Office Hours
- Tues/Thur 430 - 600
- and by appointment
- Email bleahy_at_cc.gatech.edu
7Logistics continued
- Course highlights
- Test 1 and Test 2 2/5/04, 3/25/04
- Final exam TBD, please consult OSCAR
- Grade breakdown
- Homeworks 10
- Projects 30
- Test 1 20
- Test 2 20
- Final Exam 20
- (FYI grade breakdown is essentially the same for
both sections) - (Tests, HWs, projects, etc. will also be the
same) - Course website
- http//www.cc.gatech.edu/classes/AY2004/cs2200_spr
ing
8CS 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
9CS 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.
10CS 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 ND undergrad story
11CS 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
12CS 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
13CS 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
14CS 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.
15CS 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
16Other 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
17More 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
18Fast, random transition 2
- Where does this class fit into a CS curriculum at
GT?
CS 2200
Systems
Networks
You are here!
19Freshman 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.
20Freshman 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.
21Sophomore 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.
22Brief 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
Digital Logic
CS 2200
SW
Fortran
Java
C
23Sophomore year Spring semester
- Humanities II
- MATH 3012
- Applied Combinatorics
- Elementary combinatorial techniques used in
discrete problem solving counting methods,
solving linear recurrences, graph and network
models, related algorithms, and combinatorial
designs. - CS 2200
- Systems and Networks
- A broad exposure to computer system structure and
networking including software abstractions in
operating systems for orchestrating the usage of
the computing resources. - CS 2335
- Software Practicum
- Methods for solving large programming problems.
Techniques for quality assurance, managing
programs, working in teams, analyzing problems,
and producing effective solutions. - CS 2340
- Objects and Design
- Object-oriented programming methods for dealing
with large programs. Focus on quality processs,
effective debugging techniques, and testing to
assure a quality product.
You are here!
24Junior year Fall semester
- PHYS 2211
- Physics I
- Social Science I
- CS 3500
- Theory I
- Computational machine models and their language
classes. Decidability and undecidability. Data
structures and efficient algorithms for
fundamental computational problems. Tractability
and intractability. - CS Specialization
- Free elective
25Another brief interlude
26Junior year Spring semester
- PHYS 2212
- Physics II
- CS 4001
- Computing and Society
- Examines the role and impact of information and
communication technology in society, with
emphasis on ethical, professional, and public
policy issues. - LCC 3401
- MATH 3215
- Introduction to Probability and Statistics
- This course is a problem oriented introduction to
the basic concepts of probability and statistics,
providing a foundation for applications and
further study. - CS Project
- CS 3351, CS 3901 or CS 3911
- CS 3351 Studio Project
- A project-oriented laboratory course used to
familiarize students with software engineering
methods in a realistic environment. - CS 3901 Research Project
- Individual investigation of significant areas of
computer science. Guided study and research. - CS 3911 Design Project
- Intensive team-based project experience in the
specification, design, and implementation of
software and/or hardware for subsequent use in
research, industry, and teaching. - Social Science II
27Senior year Fall semester
- Free Elective
- Free Elective
- Social Science III
- CS Specialization
- CS Specialization
28Senior year Spring semester
- Free Elective
- Free Elective
- Free Elective
- CS Specialization
- CS Free Elective
29The 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
30Where 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
31(No Transcript)
32(No Transcript)
33(No Transcript)
34(No Transcript)
35(No Transcript)
36(No Transcript)
37But
- I have to say that Doom type of games arent my
style so lets change that first to - College football baby!
- (the only reason I bought a Playstation2)
- That said, lets talk about NCAA Football 2004
38Screenshot 1
How do you make a player run where you want
to? Or taunt the other team?
39Screenshot 2
How do you add fun features like night day,
rain snow?
40Screenshot 3
How can you easily play a game from the 30s or
40s?
41Screenshot 4
How can you easily play a game entirely of
mascots?
42Screenshot 5
How could youever play a game with Georgia???
43Again, 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
44Level 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
45Level 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)
46Level 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
47Level 3 operation system
- Resource manager
- Processor(s)
- Memory
- I/O devices
- Etc.
Physical HW to make your PS2 work also more in
this class!
48Level 4 compilers
- Compilers are a bridge between
- High-level languages
- Runtime
- OS
- Have you done much with compilers besides using
them?
49Level 5 Hardware
50Remember this chart?
- CS 2200 is one of the springboards to your chosen
path of study
Lets explore this area
51CS specializations (1)
- In COC, I think you take 4 classes from 3 areas
and can expand with free elective sequence - Computer Systems
- CS 3210 Design of Operating Systems
- CS 3220 Comp. Struct. HW/SW Co-design of a mP
- CS 4210 Advanced Operating Systems
- CS 4220 Programming Embedded Systems
- CS 4230 Distributed Simulation Systems
- CS 4240 Compilers, Interpreters, Program
Analyzers - CS 4290 Advanced Computer Organization
- Graphics and Visualizations
- CS 4451 Computer Graphics
- CS 4455 Video Game Design and Programming
- CS 4480 Digital Video Special Effects
- CS 4495 Computer Vision
- CS 4496 Computer Animation
52CS specializations (2)
- Intelligent Systems
- CS 4600 Introduction to Intelligent Systems
- CS 4495 Computer Vision
- CS 4610 Knowledge Systems
- CS 4611 AI Problem Solving
- CS 4612 AI Planning
- CS 4631 Intelligent Robotics and Perception
- CS 4641 Machine Learning
- CS 4650 Natural Language Understanding
- CS 4752 Philosophical Issues in Computation
- Usability
- CS 4750 Human-computer interface design eval.
- CS 4470 Introduction to User Interface SW
53CS specializations (3)
- Data Management Systems
- CS 4400 Introduction to Database Systems
- CS 4420 Database Systems Implementations
- CS 4440 Emerging Database Technologies Apps
- Educational Technology
- CS 4660 Introduction to Educational Technology
- CS 4665 Educational Technology Design
Evaluation - CS 4670 Computer-supported Collaborative
Learning - Software Engineering
- CS 3300 Introduction to Software Engineering
- CS 4320 Introduction to Software Processes
- CS 4330 Software Engineering Applications
54CS specializations (4)
- Networking and Telecommunications
- CS 3251 Computer Networking I
- CS 4251 Computer Networking II
- CS 4255 Intro. to Network Management
- CS 4260 Intro. to Telecommunications Systems
- CS 4270 Data Communications Laboratory
- Theory
- CS 4500 Theory
- CS 6505 Computability, Algorithms and
Complexity - CS 6520 Computational Complexity Theory
- CS 7510 Graph Algorithms
- CS 7520 Approximation Algorithms
- CS 7530 Randomized Algorithms
55A 1 page case study
- So, you want to be a video game designer
- Intelligent Systems
- CS 4611 AI Problem Solving
- CS 4612 AI Planning
- Graphics and Visualizations
- CS 4451 Computer Graphics
- CS 4455 Video Game Design and Programming
- Usability
- CS 4750 Human/computer interface design
evaluation - Software Engineering
- CS 3300 Introduction to Software Engineering
- Computer Systems
- CS 3220 Comp. Struct. HW/SW Co-design of a mP
- (so SW actually works with the chipset for the
Playstation 7)
56What 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
57A summarizing picture
CS2130, CS1xxx,
ECE2030
58Power 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
59Purpose 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 trix
- OS, architecture, networking abstractions
reappear in applications. - These are some of the most time-tested
abstractions in CS
60Summary
- We asked some initial ?s
- We went through some logistics
- I showed you where this class fit into the GT CS
curriculum - We went through a video game case study
- and said to hell with Georgia!
- We showed how this class could be a springboard
for whatever CS interest or career you want to
pursue - We introduced material that will be covered in
this class and the idea of abstractions - Are there any questions?
61Finally, a quiz
- Dont worry, it doesnt count!
- We just want to figure out where the class is
starting at