About the Major - TAMU Computer Science Faculty Pages

advertisement
About the Major
(CS at TAMU)
Main Points
• Explain the rationale for the core course
sequence/degree plan for majors.
• Establish expectations: be prepared for
the rigor required in this major, especially
the role of mathematics
• Explain that application of computer
science is inherently multidisciplinary.
About the CS Department at TAMU
• Know your advisors (in 325 Teague)
Dr. Vivek Sarin
Dr. Richard Furuta
• Departmental organizations
–
–
–
–
AWICS – Aggie Women in Computer Science (Dr. Amato)
TACS – Texas A&M Computing Society (ACM chapter)
TAGD – Texas Aggie Game Developers (Dr. Keyser)
ACE Scholars – CSE honors program (Dr. Welch)
• Departmental seminars
– M/W, 4:10, 124 HRBB
– Watch for Distinguished Lecturers
Be Resourceful
• Degree plan, requirements, and course catalog
(pre-reqs) available on web
– BEWARE: not all courses are offered every semester
• CSCE department resources
– computer accounts, email, labs...
• TAMU resources
– library, SELL (software licenses for students)
• Be aware of expected course offerings on web
• Ask questions of...
– your peers
– the faculty
CSCE 110 – Python
CSCE 111 – Java
CSCE 206 – C
CSCE 121
Introduction to programming (C++)
CSCE 221 - Data Structures and
Algorithms
CSCE 222 - Discrete Structures
for Computing
CSCE 312
Computer Organization
CSCE 314
Programming Languages
CSCE 313
Intro to Computer Systems
CSCE 315
Programming Studio
“systems”
(or
ENGR 112+CSCE 113
for CECN)
gateway to upper level
400-level electives
CSCE 411
Analysis of Algorithms
“theory”
Other Classes
• Seminars: 181, 481
• Upper-level electives (400)
– Tracks: at least one from each
• Science classes (16 cr.)
– PHYS, CHEM, BIOL, or GEOS
• Supporting area (12 cr.)
– Could be any interest area: math, business, music....
– Must have a “computational” connection
• Capstone (CSCE 482/483)
– Team-based projects
• ENGR 482 – Engineering Ethics
Plan Your College Career!
• It takes 126 hours to graduate
– 126/8 = 15.75 hours a semester to graduate
in 4 years
– How many hours are you taking?
• What courses will you take? When will
you take those courses?
• Have a plan (it may change) or you could
easily stay in college longer than you think
Example Schedule
Role of Mathematics in Computer
Science
• Mathematical analysis plays a vital role in
many computational systems...so be
prepared for it.
• Current requirements:
– MATH 151, 152 (calc)
– MATH 304 (lin alg)
– STAT 211
– MATH 251 (vector calc) OR 302 (discrete
math) OR 304 (diff eqns)
Combinatorics
• Solving recurrence relations to estimate run-time
complexity
for (i=0 ; i<n ; i++)
for (j=0 ; j<i ; j++)
<do something>
i=0:
i=1: j=0
i=2: j=0, j=1
i=3: j=0, j=1, j=2
...
• Surface representations?
Linear Algebra
• Matrix calculations are useful for...
– Transformations in Graphics
– Scientific computing, e.g. finite element
methods
(0,0)
( w, h)
Linear Algebra
• Matrix calculations are useful for...
– Transformations in Graphics
– Scientific computing, e.g. finite element
methods
Linear Algebra
• Matrix calculations are useful for...
– Transformations in Graphics
– Scientific computing, e.g. finite element
methods
15
Fourier Transforms
•Useful for analyzing/compressing
images, sound files, speech recognition
Fourier Transforms
•Useful for analyzing/compressing
images, sound files, speech recognition
Fourier Transforms
•Useful for analyzing/compressing
images, sound files, speech recognition
Fourier
Fourier Transforms
•Useful for analyzing/compressing
images, sound files, speech recognition
Fourier
Fourier Transforms
•Useful for analyzing/compressing
images, sound files, speech recognition
Fourier
Statistics
• Compare performance of algorithms using empirical
experiments
• Evaluate performance of system under different loads
• Data analysis - finding trends, predictive models
• Distributions
– Binomial, Gamma, Poisson, Gaussian
Calculus
• Physical simulation, light transport
Calculus
• Physical simulation, light transport
The Multidisciplinary Nature of
Computer Science
• Sometimes, CS may feel like a branch of
mathematics (combinatorics, proofs of
correctness, analysis of complexity...)
• However, CS becomes important to
society when it is applied to real-world
problems
• Information Technology is pervasive
– computation, simulation, connectivity
– meteorology, health care, construction,
mapping, oil industry, pharmaceuticals,
communication, financial markets,
entertainment, even the military
• More fields are becoming ‘data-centric’
– digitization
– amassing huge databases (petabytes)
– many jobs in software industry focus on
processing/analyzing this data
– “Data Science” - databases, search, machine
learning, statistics, pattern recognition
• Each application area has its own lingo
– domain concepts, like anatomy/physiology...
– types of data, format, sources of error
• Software engineers must learn how to
communicate with customers
– to understand users’ needs in that field
– This is why we encourage you to develop an
orthogonal interest in a “supporting area”
• Since users don’t understand what things are
possible/impossible with computers, we have to
help guide the design
– if we don’t use and understand their terminology, they
won’t respect us, and nothing gets done
• More application areas:
your interest is your own, but think
about how it involves computation...
– business processes, quantitative trading
– music – MIDI format, synthetic music, sound
synthesis, filtering
– biology – genomes, metabolic pathways,
protein interactions, regulatory networks
– archeology – cataloging of artifacts,
searching, imaging, reconstruction
– automobile design – engine controllers for fuel
efficiency/power, heat, emissions,
manufacturing
– aerospace engineering - fluid dynamics and
airfoil design, air-traffic control (congestion,
routing), automation and displays in cockpit
• Another example: Interface Design (GUIs)
and Cognitive Science
– in order to design good interfaces, it helps to
understand how people think
– how do they respond to different visual inputs?
e.g. button size, color, placement
– should have a “cognitive model” of what tasks
they might be doing and what questions they
might have
– cognitive factors that impact software usage:
• attention, interference between perceptual modalities
• limits on short-term memory
• consistency – e.g. meaning of buttons like “submit”
and “cancel”
• fatigue, distraction, expectation biases...
Summary
• The course sequence focuses on learning data
structures and algorithms at the lower level
(along with systems and programming)
• Based on this foundation, you can take many
upper-level electives.
• Be prepared for the rigor required in this major.
Many topics in CS require mathematics.
• Computer science is inherently multidisciplinary,
and it is important to learn the concepts and
terminology in an application area.
Mathematics and Graphics
Graphics is mathematics made visible
Mathematics
• Calculus
• Linear Algebra
• Differential
Equations
• Real Analysis
• …
Computer Science
 Data Structures
 Searching
 Asymptotic Analysis
 Parallel Computing
…
What are Fractals?
• Recursion made visible
What are Fractals?
• Recursion made visible
What are Fractals?
• Recursion made visible
What are Fractals?
• Recursion made visible
What are Fractals?
• Recursion made visible
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
Rendering Fractals
T1
T2
T3
Rendering Fractals
T1
T1

T3
T2
T2
T3

Rendering Fractals
T1
T1

T3
T2
T2
T3

Rendering Fractals
T1
T1

T3
T2
T2
T3

Rendering Fractals
T1
T1

T3
T2
T2
T3

Fractal Tennis
Start with any point x
For ( i=1; i<100; i++ )
x = Trandom(x)
For ( i=1; i<100000; i++ )
draw(x)
x = Trandom(x)
Fractal Tennis
Start with any point x
For ( i=1; i<100; i++ )
x = Trandom(x)
For ( i=1; i<100000; i++ )
draw(x)
x = Trandom(x)
Gets a point on
the fractal
Fractal Tennis
Start with any point x
For ( i=1; i<100; i++ )
x = Trandom(x)
For ( i=1; i<100000; i++ )
draw(x)
x = Trandom(x)
Creates
new points
on the
fractal
Fractal Tennis – Example
25,000
Points
Fractal Tennis – Example
50,000
Points
Fractal Tennis – Example
75,000
Points
Fractal Tennis – Example
100,000
Points
Fractal Tennis – Example
125,000
Points
Fractal Tennis – Example
150,000
Points
More Fractals
More Fractals
More Fractals
Download