190 likes | 211 Views
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.
E N D
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
(or ENGR 112+CSCE 113 for CECN) CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 121 Introduction to programming (C++) CSCE 221 Data Structures and Algorithms CSCE 312 Computer Organization CSCE 314 Programming Languages CSCE 222 - Discrete Structures for Computing CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” 400-level electives
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.
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 ... • how many nodes are in a binary tree with n levels? 1 2 4 8 16 ----- 31 n=5 levels another example: cryptography is all number theory and group theory
Linear algebra • Matrix calculations are useful for... • perspective transformations Graphics • Scientific computing, e.g. solving heat equation by finite element methods (borrowed from Dr. Jinxiang Chai) 10
Fast-Fourier Transforms (FFTs) • useful for analyzing/compressing images, sound files, speech recognition FFT is an efficient O(N log N) algorithm for computing these coefficients, ak FFT signal: [x1,x2...,xN] coeffs: [a1,a2...,aN] adapted from: http://www.mathworks.com/help/matlab/ref/fft.html
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 • parameter estimation example: given a series of user response-times, what is the Maximum-Likelihood estimate of l in the Poisson distribution?
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
your interest is your own, but think about how it involves computation... • 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
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.