1 / 57

Upcoming Events/Important Dates

Today: About the CS Majors John Keyser. Upcoming Events/Important Dates. About the Major (CS at TAMU). Today’s Goal. Explain the rationale for the core course sequence/degree plan for majors.

hidi
Download Presentation

Upcoming Events/Important Dates

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Today: About the CS Majors John Keyser Upcoming Events/Important Dates

  2. About the Major(CS at TAMU)

  3. Today’s Goal • Explain the rationale for the core course sequence/degree plan for majors. • Establish expectations: be prepared for the rigor required in CPSC, especially the role of mathematics. • Explain that application of computer science is inherently multidisciplinary.

  4. Advising in the CSE Department • Know your advisors (in EABA 100C) Jennifer Runnels Vivek Sarin Rick Furuta Maria Blandon Tara Dean (coming soon)

  5. About the CS Department at TAMU • Departmental organizations • TACS – Texas A&M Computing Society • AWICS – Aggie Women in Computer Science • TAMUHack • TAGD – Texas Aggie Game Developers • AAIS – Aggie Artificial Intelligence Society • ACC – Aggie Coding Club • TAMU Cyber-Security • Departmental activities • Programming Competitions • Honors Program • Departmental seminars • M/W, 4:10, 124 HRBB • Watch for Distinguished Lecturers

  6. Be Resourceful • Degree plan, requirements, and course catalog (pre-reqs) available on web • BEWARE: not all courses are offered every semester • BEWARE: some courses fill up! • 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

  7. The Degrees

  8. The Basic Philosophy – CSCE Classes • A core of basic courses • The fundamentals of computing • Required for both CPSC and COMP • Upper-level electives • CPSC: 7 courses, breadth requirement • COMP: 3 courses (any) • General Classes • CSCE 181, CSCE 481 • CSCE 482 (Capstone)

  9. Standard Flow Through Core Courses CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  10. CPSC – Year 1 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  11. CPSC – Semester 3 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  12. CPSC – Semester 4 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  13. CPSC – Semester 5 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  14. CPSC – Semester 6+ CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  15. COMP – Semester 1 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  16. COMP – Semester 2 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  17. COMP – Semester 3 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  18. COMP – Semester 4 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  19. COMP – Semester 5 CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  20. COMP – Semester 6+ CPSC: ENGR 102 - Python CSCE 121 Introduction to programming (C++) COMP: CSCE 110 – Python CSCE 111 – Java CSCE 206 – C CSCE 222 Discrete Structures for Computing CSCE 221 Data Structures and Algorithms CSCE 314 Programming Languages CSCE 312 Computer Organization CSCE 313 Intro to Computer Systems CSCE 315 Programming Studio CSCE 411 Analysis of Algorithms “systems” “theory” gateway to upper level 400-level electives

  21. Upper Level ElectivesTrack 1: Algorithms and Theory CSCE 411 (prereq C or better in 221, 222)__________ Analysis of Algorithms CSCE 433 (prereq 315)_________________________ Formal Languages and Automata CSCE 440 (prereq 315)_________________________ Quantum Algorithms CSCE 442# (prereq 221; coreq MATH 304 or 308)____ Scientific Programming

  22. Upper Level ElectivesTrack 2: Systems CSCE 410*** (prereq 313, 315) __________ Operating Systems CSCE 412 (prereq C or better in 315) _____ Cloud Computing CSCE 416 (prereq 312 or 350)___________ Hardware Design Verification CSCE 456# (prereq 313, MATH 152)______ Real-Time Computing CSCE 461 (prereq 350 or 315)___________ Embedded Systems for Medical Applications CSCE 462 (prereq 313)_________________ Microcomputer Systems CSCE 463 (prereq 313)_________________ Networks & Distributed Prog. CSCE 464 (prereq 313)_________________ Wireless and Mobile Systems CSCE 465 (prereq 313 and 315)__________ Computer & Network Security CSCE 469# (prereq 350)________________ Advanced Computer Architecture

  23. Upper Level ElectivesTrack 3: Software CSCE 429+ (prereq 315)____ Software Development, Globalization and Culture Abroad CSCE 430 (prereq 411)______ Problem Solving Programming Strategies CSCE 431 (prereq 315)______ Software Engineering CSCE 434 (prereq 315)______ Compiler Design CSCE 435 (prereq 315)______ Parallel Computing CSCE 438 (prereq 315)______ Distributed Objects Programming CSCE 451 (prereq 313)______ Software Reverse Engineering

  24. Upper Level ElectivesTrack 4: Information and Intelligent Systems CSCE 310 (prereq 221, C or better)_______________ Database Systems CSCE 320 (prereq STAT 211, CSCE 222)__________ Principles of Data Science CSCE 420 (prereq 221**)_______________________ Artificial Intelligence CSCE 421 (prereq MATH 304, STAT 211, CSCE 221) Machine Learning CSCE 436 (coreq 315)_________________________ Computer-Human Interaction CSCE 441 (prereq 221)________________________ Computer Graphics CSCE 443 (prereq 441)________________________ Game Development CSCE 444 (prereq 315)________________________ Structures of Interactive Information CSCE 445 (prereq 221)________________________ Computers and New Media CSCE 446 (prereq C or better in 221 or 441)_______ Virtual Reality CSCE 447 (prereq C or better in 221 or 441)_______ Data Visualization CSCE 452 (prereq 315)________________________ Robotics and Spatial Intelligence CSCE 470 (prereq 315)________________________ Information Storage and Retrieval

  25. Upper Level ElectivesUntracked Electives (7th Elective) CSCE 402 ______________________________ Law & Policy in Cybersecurity CSCE 477 (prereq CSCE/CYBR 201)_________ Cybersecurity Risk • For CPSC, the 7th elective can be from one of several options, in addition to a “tracked” elective. The courses above are options, as are: • Undergraduate Research (CSCE 491) • Directed Study (CSCE 485) • Co-Op (1 hour per semester; do 3 times to get a “full” course credit)

  26. Other CSCE Class Options • “Fast Track” classes: • Take the graduate version of an undergraduate class. Get graduate credit and get credit-by-exam for the undergrad class. • GPA limitations; must file petition • CSCE 489: • Special Topics classes; could be anything • Not (yet?) a “permanent” course • Not offered on a planned schedule • Often, they DO count in a track

  27. Other Classes • Science classes • CPSC: 14 credits • PHYS, CHEM, BIOL, or GEOS • Be sure to take from the approved lists • COMP: 9 credits • Any meeting the University core curriculum requirements • Communication: • CPSC: 2 courses required • ENGL 104 • 1 of: (ENGL 210, COMM 203, COMM 205) • COMP: 3 courses required • ENGL 103 or 104 • 1 of: ENGL 203, ENGL 210, ENGL 241 • 1 of: COMM 203, COMM 205, COMM 243 • University Core Curriculum • All other options are basically “open” to meet UCC requirements • Be sure to meet the ICD/Cultural Discourse requirements along the way

  28. Mathematics

  29. Role of Mathematics in Comp. Sci. • Mathematical analysis plays a vital role in many computational systems...so be prepared for it. • CSCE 222 (Discrete Structures for Computing) is a math-like course • Current requirements (CPSC): • MATH 151, 152 (calc) • MATH 304 (linalg) • STAT 211 • MATH 251 (vector calc) OR 302 (discrete math) OR 308 (diff eqns) • COMP: Just 2 math courses • 1 Calculus course, • 1 more from prescribed list

  30. Asymptotic Analysis • “Big-O” analysis • One of the most critical ways of analyzing, talking about programs and algorithms • As the size of a problem increases, how do the resources (time, memory) increase? • The “simple” cases you develop on may not scale well to the giant cases you have to run on! • Should become a natural part of your vocabulary and thinking

  31. 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?

  32. Linear Algebra • Matrix calculations are useful for... • Transformations in Graphics/Robotics • Scientific computing, e.g. finite element methods • Machine Learning (representing how neural nets work/connect) • Graph algorithms • Information retrieval/recommenders (e.g. page rank) • Signal Processing and Compression • Cryptography • Etc.

  33. Linear Algebra • Matrix calculations are useful for... • Transformations in Graphics

  34. Linear Algebra • Matrix calculations are useful for... • Transformations in Graphics

  35. Linear Algebra • Matrix calculations are useful for... • Scientific computing, e.g. finite element methods 35

  36. Fourier Transforms • Useful for analyzing/compressing images, sound files, speech recognition Image from: https://northstar-www.dartmouth.edu/doc/idl/html_6.2/Filtering_an_Imagehvr.html

  37. Fourier Transforms • Useful for analyzing/compressing images, sound files, speech recognition Image from: https://northstar-www.dartmouth.edu/doc/idl/html_6.2/Filtering_an_Imagehvr.html

  38. Fourier Transforms • Useful for analyzing/compressing images, sound files, speech recognition Fourier Image from: https://northstar-www.dartmouth.edu/doc/idl/html_6.2/Filtering_an_Imagehvr.html

  39. Fourier Transforms Fourier Transforms • Useful for analyzing/compressing images, sound files, speech recognition Fourier Image from: https://northstar-www.dartmouth.edu/doc/idl/html_6.2/Filtering_an_Imagehvr.html

  40. Fourier Transforms Fourier Transforms • Useful for analyzing/compressing images, sound files, speech recognition Fourier Image from: https://northstar-www.dartmouth.edu/doc/idl/html_6.2/Filtering_an_Imagehvr.html

  41. 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

  42. Calculus • Physical simulation, light transport

  43. Calculus • Physical simulation, light transport

  44. Supporting AreaThe Multidisciplinary Nature of CS

  45. Supporting/Concentration Area • What is this thing? • CPSC: 12 Credit Supporting Area • COMP: 29 Credit Concentration Area

  46. 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

  47. Supporting/Concentration Area • Not just a set of random classes! • Should be a coordinated set of courses with relationship to computing • CPSC: Several approved tracks, but you are not limited to those; can propose one yourself • COMP: Most people will design their own concentration area • Can use toward minor(s)/double major or degree, etc.

  48. 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

  49. 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

  50. 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, 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

More Related