35
PROF. DANIEL ERNST JANUARY 24 TH , 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

PROF. DANIEL ERNSTJANUARY 24 T H , 2011

AREAS OF COMPUTER SCIENCE

CS 146The Big Picture in Computer Science

Page 2: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

What Disciplines Are Close To/Part Of Computer Science?

Association of Computing Machinery (ACM) has defined several versions of Computing Curricula

CC 2005 lists 5 sub-areas of computing: Computer Science Computer Engineering Information Systems Information Technology Software Engineering

http://www.acm.org/education/education/curric_vols/CC2005-March06Final.pdf

Page 3: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Representation of Computing Knowledge

From CC 2005

Page 4: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Quiz question #1 – which of the five? (IS, IT, CS, CE, SE)

From CC 2005

Page 5: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Quiz question #2 – which of the five? (IS, IT, CS, CE, SE)

From CC 2005

Page 6: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Quiz question #3 – which of the five? (IS, IT, CS, CE, SE)

From CC 2005

Page 7: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Quiz question #4 – which of the five? (IS, IT, CS, CE, SE)

From CC 2005

Page 8: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Quiz question #5 – which of the five? (IS, IT, CS, CE, SE)

From CC 2005

Page 9: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

CHARLES BABBAGE(1791 - 1871)

Computer Scientistof the Week

Page 10: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Not set in stone – classifications are evolving

First take – a possible high-level split Systems (computer science infrastructure) Applications (high-level computer science)

Areas of Computer Science (1)

Page 11: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Major Areas (one fairly arbitrary classification): Algorithms and Data Structures Systems Applications Theory Cross-Cutting Areas Hybrid Areas (with other disciplines)

Other views:Wikipedia has multiple different lists – all of which

have serious flaws (and change regularly): http://en.wikipedia.org/wiki/Computer_science http://en.wikipedia.org/wiki/Outline_of_computer_science

Areas of Computer Science (2)

Page 12: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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

What are the Areas?

Page 13: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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

Algorithms/Data Structures (1)

Page 14: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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

Algorithms/Data Structures (2)

Page 15: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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

Algorithms/Data Structures (3)

Page 16: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Computer Architecture The internal structure of computing systems

CPU (control unit + arithmetic-logic unit), main memory, secondary memory, input, output

Gate (electronic) logic Representation of numbers, data, and instructions Microarchitectural techniques:

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

Systems (1)

Page 17: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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 – classic thought

experiments Deadlock Scheduling Issues with multi-processor systems at the software

level Interaction of OS with other systems Case Studies (Windows, Linux, Mac OS, others)

Systems (2)

Page 18: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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

Systems (3)

Page 19: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Multiprocessing (“Parallel Processing”) Can problems be split into work that can be done at

the same time by multiple processors?

Database Systems (low-level) Query optimization Overall system optimization

Compiler Development Lexical analyzer (scanner) Semantic analyzer (parser)

Systems (4)

Page 20: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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

Applications (1)

Page 21: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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)

Applications (2)

Page 22: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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)

Applications (3)

Page 23: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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)

Applications (4)

Page 24: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Computer Graphics Areas

Visualization Animation Games

Components Pixels, image types

Display/rendering techniques Graphics Programming

Rotation Transformation Shading

Applications (5)

Page 25: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Artificial Intelligence Intelligent systems

Knowledge Representation Search Problem solving techniques Planning

Plan alteration Uncertainty

Robotics Computer Vision Natural Language Processing Fuzzy systems

Applications (6)

Page 26: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Data Mining Data analysis Association rules Clustering Recommender Systems

E.g. amazon.com (purchasing) E.g. MovieLens (movie recommendations)

Applications (7)

Page 27: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Applications (8)

Computational Science and Mathematics Modeling and Simulation

We know the math behind a lot behaviors: Physical Chemical Social Financial

Let computers calculate out what may happen in a situation

Numerical Algorithms, instead of symbolic In practice, often done in a broadly interdisciplinary

environment

Page 28: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Theory of Computation Finite State Theory Context-free grammars Models for computational systems Intractable problems

P = NP ?

Theory (1)

Page 29: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Other Areas of Theory State Theory Boolean Algebra Various areas of mathematical theory

Discrete Structures Numerical Analysis Linear Algebra Graph Theory Advanced Issues

Theory (2)

Page 30: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Bio/chemical/medical informatics Mostly applied data mining

Scientific simulationFinancials – “Quants”Business computing (information systems)MediaArtLOTS of others!

I would argue that it is being related in some way to ALL general topics.

Hybrid Areas (1)

Page 31: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

Computer Security / Information Assurance Involves:

Security of systems Security of applications Security theory

Ethics in Computing Privacy Abuse/Denial of service Behavior with Anonymity

Cross-Cutting Areas(1)

Page 32: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

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?

Grey, Not Black and White

Page 33: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

CS 145 – Fundamentals of Object-Oriented Programming

CS 146 – The Big Picture in Computer ScienceCS 245 – Advanced Programming and Data

StructuresCS 255 – Algorithms and Discrete Structures

CS 268 – Web Programming or

CS 278 – Digital Logic

Required CS Courses at UWEC (1)

Page 34: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

CS 345 – Database SystemsCS 352 – Computer ArchitectureCS 396 – Computer Science Seminar (outside

speakers, writing, job prep)

CS 330 – Programming LanguagesCS 355 – Software Engineering 1

CS 362 – Operating SystemsCS 485 – Software Engineering 2

CS 462 – Networks (not SE)Plus one or two CS electives

Required CS Courses at UWEC (2)

Page 35: PROF. DANIEL ERNST JANUARY 24 TH, 2011 AREAS OF COMPUTER SCIENCE CS 146 The Big Picture in Computer Science

CS 370 – Computer SecurityCS 388 – UNIX Systems ProgrammingCS 420 – Artificial IntelligenceCS 450 – Theory of ComputationCS 455 – Computer Graphics

CE 452 – Advanced Computer ArchitectureCE 478 – Microcontroller System Design

Both CE electives require CS 278CS 291/491 – Special Topics

Robotics Data Mining Cryptography and Network Security Parallel Computing

Elective CS Courses at UWEC (1)