Download presentation
Presentation is loading. Please wait.
1
Some of these slides are based on material from the ACM Computing Curricula 2005
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
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
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 http://en.wikipedia.org/wiki/Computer_science
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
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
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
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
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
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
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
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
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
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
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
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
Computer Graphics ◦ Areas Visualization Animation Games ◦ Components Pixels, image types ◦ Display/rendering techniques ◦ Graphics Programming Rotation Transformation Shading
18
Artificial Intelligence ◦ Intelligent systems Knowledge Representation Search Problem solving techniques Planning Plan alteration Uncertainty ◦ Robotics ◦ Computer Vision ◦ Natural Language Processing ◦ Fuzzy systems
19
Data Mining ◦ Data analysis ◦ Association rules ◦ Clustering ◦ Recommender Systems E.g. amazon.com (purchasing) E.g. MovieLens (movie recommendations)
20
Theory of Computation ◦ Finite State Theory ◦ Context-free grammars ◦ Models for computational systems ◦ Intractable problems P = NP ?
21
Other Areas of Theory ◦ State Theory ◦ Graph Theory ◦ Various areas of mathematical theory Number theory Geometrical theory
22
Bioinformatics Chemical informatics Medical informatics Mathematics and Computing ◦ Discrete Structures ◦ Advanced Issues Business computing (information systems) Others…
23
Computer Security / Information Assurance ◦ Involves: Security of systems Security of applications Security theory
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
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
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.