27
Areas of Computer Science Some of these slides are based on material from the ACM Computing Curricula 2005

Areas of CS (ppt) - Online Privacy Issues Overview

  • Upload
    newbu

  • View
    1.187

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Areas of CS (ppt) - Online Privacy Issues Overview

Areas of Computer Science

Some of these slides are based on material from the ACM Computing Curricula 2005

Page 2: Areas of CS (ppt) - Online Privacy Issues Overview

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

What Is Computer Science?

Page 3: Areas of CS (ppt) - Online Privacy Issues Overview

Not set in stone – classifications are evolving

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

Areas of Computer Science (1)

Page 4: Areas of CS (ppt) - Online Privacy Issues Overview

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

Areas of Computer Science (2)

Page 5: Areas of CS (ppt) - Online Privacy Issues Overview

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 6: Areas of CS (ppt) - Online Privacy Issues Overview

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 7: Areas of CS (ppt) - Online Privacy Issues Overview

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 8: Areas of CS (ppt) - Online Privacy Issues Overview

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 9: Areas of CS (ppt) - Online Privacy Issues Overview

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

Systems (1)

Page 10: Areas of CS (ppt) - Online Privacy Issues Overview

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)

Systems (2)

Page 11: Areas of CS (ppt) - Online Privacy Issues Overview

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 12: Areas of CS (ppt) - Online Privacy Issues Overview

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)

Systems (4)

Page 13: Areas of CS (ppt) - Online Privacy Issues Overview

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 14: Areas of CS (ppt) - Online Privacy Issues Overview

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 15: Areas of CS (ppt) - Online Privacy Issues Overview

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 16: Areas of CS (ppt) - Online Privacy Issues Overview

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 17: Areas of CS (ppt) - Online Privacy Issues Overview

Computer Graphics◦ Areas

Visualization Animation Games

◦ Components Pixels, image types

◦ Display/rendering techniques◦ Graphics Programming

Rotation Transformation Shading

Applications (5)

Page 18: Areas of CS (ppt) - Online Privacy Issues Overview

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 19: Areas of CS (ppt) - Online Privacy Issues Overview

Data Mining◦ Data analysis◦ Association rules◦ Clustering◦ Recommender Systems

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

Applications (7)

Page 20: Areas of CS (ppt) - Online Privacy Issues Overview

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

P = NP ?

Theory (1)

Page 21: Areas of CS (ppt) - Online Privacy Issues Overview

Other Areas of Theory◦ State Theory◦ Graph Theory◦ Various areas of mathematical theory

Number theory Geometrical theory

Theory (2)

Page 22: Areas of CS (ppt) - Online Privacy Issues Overview

Bioinformatics Chemical informatics Medical informatics Mathematics and Computing

◦ Discrete Structures◦ Advanced Issues

Business computing (information systems) Others…

Hybrid Areas (1)

Page 23: Areas of CS (ppt) - Online Privacy Issues Overview

Computer Security / Information Assurance◦ Involves:

Security of systems Security of applications Security theory

Cross-Cutting Areas(1)

Page 24: Areas of CS (ppt) - Online Privacy Issues Overview

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 25: Areas of CS (ppt) - Online Privacy Issues Overview

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

Required CS Courses at UWEC (1)

Page 26: Areas of CS (ppt) - Online Privacy Issues Overview

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

Required CS Courses at UWEC (2)

Page 27: Areas of CS (ppt) - Online Privacy Issues Overview

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

Elective CS Courses at UWEC (1)