Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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,292 views

Published on

  • Be the first to comment

  • Be the first to like this

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

×