main points explain the rationale for the core course sequence/degree plan for majors. establish...

Post on 04-Jan-2016

217 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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. Schaeffer)– ACE Scholars – CS honors program (Dr. Amato)

• departmental seminars – typically M/W, 4:10, in 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)

• 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 221Data 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”

Other classes

• seminars: 181, 481 (prep for internships)• upper-level electives (400)

– tracks, breadth requirement• 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

Role of Mathematics in Computer Science

• Mathematical analysis plays a vital role in many computational systems...so be prepared for it.

• 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

...

• how many nodes are in a binary tree with n levels?

Combinatorics

1

2

4

8

16-----31

n=5 levels

another example:cryptography is allnumber theory andgroup theory

• Matrix calculations are useful for...– perspective transformations Graphics– Scientific computing, e.g. solving heat

equation by finite element methods

Linear algebra

10

10100

0010

0001

'

'

'

z

y

x

dw

y

x

(borrowed from Dr. Jinxiang Chai)

Fast-Fourier Transforms (FFTs)• useful for analyzing/compressing images,

sound files, speech recognition

adapted from: http://www.mathworks.com/help/matlab/ref/fft.html

FFT is an efficient O(N log N) algorithm forcomputing these coefficients, ak

signal: [x1,x2...,xN] coeffs: [a1,a2...,aN]FFT

• 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

• parameter estimationexample: given a series of user response-times, what is the Maximum-Likelihood estimate of inthe Poisson distribution?

Statistics

• Is Calculus (integral/differential equations) ever used in Computer Science?– Yes, for example in queuing theory,

estimating network delays

– can use this to determine maximum service times, required queue length, etc.

from V. Rego (1986). Characterisations of Equilibrium Queue Length Distributions in M/G/1 Queues.docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1533&context=cstech

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, identifying patterns– 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.

top related