Date post: | 11-Jan-2016 |
Category: |
Documents |
Upload: | philip-obrien |
View: | 215 times |
Download: | 1 times |
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)
• 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
Dr. Vivek Sarin Dr. Richard Furuta
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 121
Introduction to programming (C++)
CSCE 314 Programming Languages
CSCE 315Programming Studio
CSCE 110 – PythonCSCE 111 – JavaCSCE 206 – C
CSCE 312 Computer Organization
CSCE 313 Intro to Computer Systems
CSCE 221 - Data Structures and Algorithms
CSCE 222 - Discrete Structures for Computing
400-level electives
CSCE 411Analysis of Algorithms
(or ENGR 112+CSCE 113 for CECN)
“systems” “theory”gateway to upper level
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)
• 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?
Combinatorics
• Matrix calculations are useful for...– Transformations in Graphics– Scientific computing, e.g. finite element
methods
Linear Algebra
)0,0(
),( hw
• 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
Linear Algebra
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
Fourier
•Useful for analyzing/compressing images, sound files, speech recognition
Fourier Transforms
Fourier
•Useful for analyzing/compressing images, sound files, speech recognition
Fourier Transforms
Fourier
•Useful for analyzing/compressing images, sound files, speech recognition
• 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
Statistics
• Physical simulation, light transport
Calculus
• Physical simulation, light transport
Calculus
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:– 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
your interest is your own, but thinkabout how it involves computation...
• 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
• Calculus• Linear Algebra• Differential
Equations• Real Analysis• …
Graphics is mathematics made visible
Data Structures Searching Asymptotic Analysis Parallel Computing …
Mathematics Computer Science
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
1T 3T2T
Rendering Fractals
1T 3T2T
1T 2T 3T
Rendering Fractals
1T 3T2T
1T 2T 3T
Rendering Fractals
1T 3T2T
1T 2T 3T
Rendering Fractals
1T 3T2T
1T 2T 3T
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