Some of these slides are based on material from the ACM Computing Curricula 2005
 As discussed:
◦ Elements of science, engineering, art, social science, ….
◦ Changing as we speak; it’s a new discipline
...
 Not set in stone – classifications are evolving
 First take – a possible high-level split
◦ Systems (low-level computer...
 Major Areas (my classification):
◦ Algorithms and Data Structures
◦ Systems
◦ Applications
◦ Theory
◦ Cross-Cutting Area...
 Algorithms and Data Structures
◦ Algorithms: a series of steps taken to solve a problem
◦ Data Structures: an organized ...
 Algorithms
◦ A sequence of finite instructions used to solve some
problem
 E.g. series of steps to build a house
 Foun...
 Data Structures
◦ A set of data used to represent a concept, plus the
operations that work on that set of data
 E.g. a ...
 Algorithm Analysis
◦ Some algorithms are more efficient than others
◦ How can we categorize families of algorithms?
◦ Wh...
 Computer Architecture
◦ The internal structure of computing systems
 CPU (control unit + arithmetic-logic unit), main m...
 Operating Systems
◦ OS structure (manager, resource allocator)
◦ Processes and Threads, Memory Management, Input
and Out...
 Networks
◦ Open Systems Interconnect (OSI) 7-layer model
 Physical, Data Link, Network, Transport, Session,
Presentatio...
 Parallel Processing
◦ Can problems be split into work that can be done at the
same time by multiple processors?
 Distri...
 Programming Languages (Practical)
◦ Foundation of many other areas
◦ Major concepts in any high-level language
 Data ty...
 Software Engineering / Development
◦ Stages of software development
 Requirements gathering
 Requirements analysis and...
 Database Systems (higher-level)
◦ Conceptual modeling of data (entities,
relationships)
◦ Implementation models (relatio...
 Web Applications
◦ Web page structure (HTML)
◦ Tools for web development
◦ Major programming environments (Java/J2EE, .N...
 Computer Graphics
◦ Areas
 Visualization
 Animation
 Games
◦ Components
 Pixels, image types
◦ Display/rendering tec...
 Artificial Intelligence
◦ Intelligent systems
 Knowledge Representation
 Search
 Problem solving techniques
 Plannin...
 Data Mining
◦ Data analysis
◦ Association rules
◦ Clustering
◦ Recommender Systems
 E.g. amazon.com (purchasing)
 E.g....
 Theory of Computation
◦ Finite State Theory
◦ Context-free grammars
◦ Models for computational systems
◦ Intractable pro...
 Other Areas of Theory
◦ State Theory
◦ Graph Theory
◦ Various areas of mathematical theory
 Number theory
 Geometrical...
 Bioinformatics
 Chemical informatics
 Medical informatics
 Mathematics and Computing
◦ Discrete Structures
◦ Advanced...
 Computer Security / Information Assurance
◦ Involves:
 Security of systems
 Security of applications
 Security theory
 Many computer science topics and jobs
involve both:
◦ systems and application work
◦ theoretical and applied work
◦ low-...
 CS 145 – Fundamentals of Object-Oriented
Programming
 CS 146 – The Big Picture in Computer Science
 CS 245 – Advanced ...
 CS 345 – Database Systems
 CS 352 – Computer Architecture
 CS 396 – Computer Science Seminar (outside
speakers, writin...
 CS 370 – Computer Security
 CS 388 – UNIX Systems Programming
 CS 420 – Artificial Intelligence
 CS 450 – Theory of C...
Upcoming SlideShare
Loading in …5
×

Areas of CS (ppt) - Online Privacy Issues Overview

1,136 views
1,033 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,136
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Areas of CS (ppt) - Online Privacy Issues Overview

  1. 1. Some of these slides are based on material from the ACM Computing Curricula 2005
  2. 2.  As discussed: ◦ Elements of science, engineering, art, social science, …. ◦ Changing as we speak; it’s a new discipline ◦ Blends with many other disciplines to create new areas of study for current and future generations  Next Step: Understanding the Areas of Computer Science ◦ Why?  To best prepare for your future course work  To best prepare for possible future job positions or graduate school
  3. 3.  Not set in stone – classifications are evolving  First take – a possible high-level split ◦ Systems (low-level computer science) ◦ Applications (high-level computer science)
  4. 4.  Major Areas (my classification): ◦ Algorithms and Data Structures ◦ Systems ◦ Applications ◦ Theory ◦ Cross-Cutting Areas ◦ Hybrid Areas (with other disciplines)  Another view (Wikipedia – Computer Science) ◦ Theory of Computation ◦ Algorithms and Data Structures ◦ Programming Methodology and Languages ◦ Computer Elements and Architecture ◦ Numerical and Symbolic Computation ◦ http://en.wikipedia.org/wiki/Computer_science
  5. 5.  Algorithms and Data Structures ◦ Algorithms: a series of steps taken to solve a problem ◦ Data Structures: an organized collection of data of one type and operations on that data  Systems ◦ Development of lower-level tools and systems for computing  Applications ◦ Development of applications of lower-level tools combined with higher-level structures to solve higher-level problems  Theory ◦ Theoretical foundations of computer science  Hybrid Areas (with other disciplines) ◦ The “computer science + X” areas; e.g. bioinformatics  Cross-Cutting Areas ◦ Topics that apply to all of the above
  6. 6.  Algorithms ◦ A sequence of finite instructions used to solve some problem  E.g. series of steps to build a house  Foundation  Frame  Roof  Interior work  E.g. series of steps for a simple computer program  Input  Processing  Output  Example: calculate the area of a circle given its radius  Example: input and process a list of numbers to find and display the largest number in the list
  7. 7.  Data Structures ◦ A set of data used to represent a concept, plus the operations that work on that set of data  E.g. a list (of grocery items) plus operations on that list  E.g. a tree (representing the biological taxonomy) plus operations on that tree  Kingdoms, classes, orders, genera, species, varieties  E.g. a graph or network of computing systems plus operations on that network
  8. 8.  Algorithm Analysis ◦ Some algorithms are more efficient than others ◦ How can we categorize families of algorithms? ◦ What affects how fast we can execute a given computational algorithm?  In-class exercise: different types of algorithms
  9. 9.  Computer Architecture ◦ The internal structure of computing systems  CPU (control unit + arithmetic-logic unit), main memory, secondary memory, input, output ◦ Gate (electronic) logic ◦ Number representations (base 2, other number bases) ◦ Representation of data and instructions ◦ Conversion of programming language to machine language ◦ Pipelining – keeping multiple resources busy by not waiting for all steps to complete before working on a task ◦ Caching – storage of commonly used data for easy access ◦ Multiprocessing – use of multiple processors to work on tasks in parallel
  10. 10.  Operating Systems ◦ OS structure (manager, resource allocator) ◦ Processes and Threads, Memory Management, Input and Output, Files, Security ◦ Inter-Process Communication, including mutual exclusion approaches  “Dining Philosophers” problem ◦ Deadlock ◦ Scheduling ◦ Issues with multi-processor systems ◦ Interaction of OS with other systems ◦ Case Studies (Windows, Linux, Mac OS, others)
  11. 11.  Networks ◦ Open Systems Interconnect (OSI) 7-layer model  Physical, Data Link, Network, Transport, Session, Presentation, Application ◦ Types of systems (end nodes, routers) ◦ Other network equipment (switches, gateways, bridges, hubs, …) ◦ Circuit switching and packet switching ◦ Applications  File Transfer Protocol  Telnet / Secure Shell protocols  Hypertext Transfer Protocol
  12. 12.  Parallel Processing ◦ Can problems be split into work that can be done at the same time by multiple processors?  Distributed Processing ◦ Can problems be shared across the network at the same time? (e.g. SETI @ Home)  Database Systems (low-level) ◦ Query optimization ◦ Overall system optimization  Compiler Development ◦ Lexical analyzer (scanner) ◦ Semantic analyzer (parser)
  13. 13.  Programming Languages (Practical) ◦ Foundation of many other areas ◦ Major concepts in any high-level language  Data types  Variables  Expressions  Statements  Control Structures  Sequence  Selection (conditional execution)  Repetition (Loops)  Containers
  14. 14.  Software Engineering / Development ◦ Stages of software development  Requirements gathering  Requirements analysis and specification  Testing  Design  High-level (including Design Patterns)  Low-level  Implementation  Maintenance ◦ Approaches  Unified Process (more structured, emphasis on modeling, documentation)  Agile Process (less structured, emphasis on client communication, deliverable systems)
  15. 15.  Database Systems (higher-level) ◦ Conceptual modeling of data (entities, relationships) ◦ Implementation models (relational, object-oriented, object-relational hybrid) ◦ Languages for managing relational data  Structured Query Language (SQL) ◦ Application issues  Programming interfaces (e.g. Java DataBase Connectivity (JDBC))  Efficiency issues (e.g. connection pooling)  Structural issues (e.g. data layers in applications)
  16. 16.  Web Applications ◦ Web page structure (HTML) ◦ Tools for web development ◦ Major programming environments (Java/J2EE, .NET) ◦ Client-side programming (e.g. JavaScript) ◦ Server-side programming (e.g. Java Server Pages (JSPs), Active Server Pages (ASP)) ◦ New web technologies (e.g. AJAX, Web 2.0) ◦ Newer models for web development (e.g. Ruby on Rails) ◦ Service-Oriented Architecture (SOA)
  17. 17.  Computer Graphics ◦ Areas  Visualization  Animation  Games ◦ Components  Pixels, image types ◦ Display/rendering techniques ◦ Graphics Programming  Rotation  Transformation  Shading
  18. 18.  Artificial Intelligence ◦ Intelligent systems  Knowledge Representation  Search  Problem solving techniques  Planning  Plan alteration  Uncertainty ◦ Robotics ◦ Computer Vision ◦ Natural Language Processing ◦ Fuzzy systems
  19. 19.  Data Mining ◦ Data analysis ◦ Association rules ◦ Clustering ◦ Recommender Systems  E.g. amazon.com (purchasing)  E.g. MovieLens (movie recommendations)
  20. 20.  Theory of Computation ◦ Finite State Theory ◦ Context-free grammars ◦ Models for computational systems ◦ Intractable problems  P = NP ?
  21. 21.  Other Areas of Theory ◦ State Theory ◦ Graph Theory ◦ Various areas of mathematical theory  Number theory  Geometrical theory
  22. 22.  Bioinformatics  Chemical informatics  Medical informatics  Mathematics and Computing ◦ Discrete Structures ◦ Advanced Issues  Business computing (information systems)  Others…
  23. 23.  Computer Security / Information Assurance ◦ Involves:  Security of systems  Security of applications  Security theory
  24. 24.  Many computer science topics and jobs involve both: ◦ systems and application work ◦ theoretical and applied work ◦ low-level and high-level work  Important issues to consider: ◦ Where are your primary interests? ◦ Where are your primary abilities? ◦ How do particular school/job positions intersect with the various areas of computer science?
  25. 25.  CS 145 – Fundamentals of Object-Oriented Programming  CS 146 – The Big Picture in Computer Science  CS 245 – Advanced Programming and Data Structures  CS 255 – Algorithms and Discrete Structures  CS 268 – Web Programming ◦ or  CS 278 – Digital Logic
  26. 26.  CS 345 – Database Systems  CS 352 – Computer Architecture  CS 396 – Computer Science Seminar (outside speakers, writing)  CS 330 – Programming Languages  CS 355 – Software Engineering 1  CS 362 – Operating Systems  CS 485 – Software Engineering 2  CS 462 – Networks (Comprehensive Majors Only)  Plus one or two CS electives
  27. 27.  CS 370 – Computer Security  CS 388 – UNIX Systems Programming  CS 420 – Artificial Intelligence  CS 450 – Theory of Computation  CS 455 – Computer Graphics  CE 452 – Advanced Computer Architecture  CE 478 – Microcontroller System Design  CS 291/491 – Special Topics ◦ Robotics ◦ Data Mining ◦ Cryptography and Network Security

×