Anda di halaman 1dari 21

Research Areas in CS

Narendran Thangarajan,
Final Year CSE, SSNCE.
Outline
Thanks to forefathers!
Branches in Computer Science
Theoretical
Applied

Thanks to our forefathers!
I dont want history. Show me the super cool stuff now!

Wilhelm Schickard Designed the first mechanical calculator
(1623).
Why? Keplers laws of planetary motion.

Blaise Pascal designed and constructed the first working
mechanical calculator (1642).
Why? He wanted to help his father with his tax revenue
calculations.

Charles Babbage Difference Engine and Analytical Engine
Why? Producing tables was time consuming and expensive at that
time.

First Computer Science Degree
Diploma in Computer Science at the University of Cambridge
Computer Library (1953).

In USA, first computer science degree program started at Purdue
University in 1962.
Who named it?
George Forsythe, founder and head of Stanford Universitys
Computer Science Department.
Branches in CS
CSAB Computing Sciences Accreditation Board
Accreditation of computing disciplines.

Two Major Branches
Theoretical Computer Science
Applied Computer Science

Theoretical Computer Science
Has many sub-branches like
Theory of Computation
Information and Coding theory
Algorithms and Data Structures
Programming Language Theory
Formal Methods
Concurrent, Parallel and Distributed systems.
Databases and Information Retrieval

TOC answers the questions
What can be automated?
What amount of resources are required to perform those
computations?

Automata Theory Study of abstract machines.
DFA, NFA, PDA, Turing Machines

Computability Theory Is the problem solvable on a particular
model of computation?

Computational Complexity Theory How efficiently a problem can
be solved. Time and space complexities.

Eg: P vs. NP Problems (MIT labs)



Theoretical Computer Science
Theory of Computation
Information Theory
Claude E. Shannon. Father of information theory
Find fundamental limits on signal processing operations
Eg : Shannon-Hartley Theorem Theoretical upper bound of
channel capacity.
Eg : Nyquist-Shannon Theorem Sampling rate limit

Coding Theory
Study of properties of codes and their fitness for an application.
Two aspects
Data Compression (source coding)
Error Correction (channel coding)
Eg: Text, Image, Video, Audio Compression.
Eg: Lempel-Ziv algorithms
Theoretical Computer Science
Information and Coding Theory
Algorithms
Step-by-step procedure for solving a given problem.
Eg: Sorting algorithms, Euclids Algorithm.
Analysis of Algorithms Determination of the amount of resources
(such as time and storage) necessary to execute them.
Time complexity Number of steps
Space Complexity Number of storage locations
Remember Computational Complexity Theory?
Eg: Your own sorting algorithm mySort!

Data Structures
Way of storing and organizing data in a computer so that it can be
used efficiently.
How to choose different data structures based on the application.
Eg: B-trees for databases, Hash Tables for compilers
Eg : Change the structure of the Inode data structure

Theoretical Computer Science
Algorithms and Data Structures
Deals with the design, implementation and classification of
programming languages.
Based on Type systems static, dynamic
Based on Programming Paradigm Structured, OOP
Metaprogramming X Macros
Compiler Design and Implementation

It is important to understand the internal working of any
programming language (If you want to get into research).

Theoretical Computer Science
Programming Language Theory
Mathematically-based techniques for the specification,
development and verification of software and hardware systems.
Why?

Specification
Used to give a description of the system to be developed.
Eg: BNF Describes CFG
Eg: Petri Nets describes distributed systems.
Development
Based on the specification software or hardware.
Verification
Automated Theorem Proving Produce a formal proof from scratch
Model Checking Exhaustive search of all possible states.
Theoretical Computer Science
Formal Methods
Concurrency
Property of systems where several computations are executing
simultaneously, and potentially interacting with each other.
Eg: Dining Philosophers problem
Where? Operating Systems and DBMS
Distributed Computing
Consists of multiple autonomous computers that communicate
through a computer network.
A problem is divided into many tasks each solved by one or more
computers.
Why and where do we use distributed systems?
Graphics Processing
Scientific Computing
Network File System

Theoretical Computer Science
Concurrent, Parallel and Distributed
Computing
Database
Organized collection of data supporting efficient processes.
DBMS Software package helping in creation, maintenance and
usage of databases. Eg: Oracle, MySQL
Requirements
DDL ,DML, Security and Workflow and BPM
Data Models RM, OM, ORM, XML Model
Database Languages SQL, OQL, XQuery
DB Design Entities, Relationships and Normalization.
Database Tuning I/O level, DBMS level, DBMS maintenance.
Database storage structures B+ Trees, Heaps, Hashed Buckets.
ACID constraint
Query Optimization Find a way to process a given query in
minimum time.


Theoretical Computer Science
Databases and Information retrieval
Has many sub branches like
Artificial Intelligence
Computer Architecture and Engineering
Computer Graphics and Visualization
Computer Security and Cryptography
Software Engineering

Applied Computer Science
Study and design of Intelligent Agents.
Intelligent Agents A system that perceives its environment
and takes actions that maximizes its chances of success.
Knowledge Representation
Many problems agents are expected to solve requires extensive
knowledge about the world.
Planning - Agents should set goals and achieve them.
Learning
Machine Learning Unsupervised learning, Supervised learning
(classification, regression), Reinforcement learning.
Related Fields NLP, Robotics, Perception (Sensors),
Emotion and Social Skills, Creativity.

Applied Computer Science
Artificial Intelligence
Selecting and interconnecting hardware components to create
functional computers.
A Blueprint How the CPU acts and how it accesses computer
memory.
Three parts
Instruction Set Architecture instruction set, word size, addressing
MicroArchitecture Eg: Computers cache size.
System Design
Data paths computer buses and switches
Memory Controllers and hierarchies
Data Processing DMA
Virtualization / Multiprocessing
Computer Engineering Design VLSI chips, write software and
firmware for embedded microcontrollers, OS design, sensors etc.
Applied Computer Science
Computer Architecture and Engineering
Digitally synthesizing and manipulating visual content.

Three major subfields
Geometry represent and process surfaces
Animation represent and manipulate motion
Rendering reproduce light transport and scattering.

Fractals
Generating infinite patterns like trees.
Julia set and the Mandelbrot series

Applied Computer Science
Computer Graphics and Visualization
The collective processes and mechanisms by which sensitive and
valuable information and services are protected from publication,
tampering or collapse by unauthorized activities or untrustworthy
individuals and unplanned events respectively Some Silencer on Wiki
Maintain the CIA
Confidentiality
Integrity
Authentication
Cryptography studying and practising techniques for secure
communication
Symmetric Key Cryptography
Public Key Cryptography
Cryptanalysis
Cryptographic primitives and Cryptosystems
Applied Computer Science
Computer Security and Cryptography
Systematic approach to the development, operation and
maintenance of software.
Nutshell : Application of Engineering to software.

Sub-disciplines
Software requirements
Software design
Software construction
Software testing
Software maintenance

Applied Computer Science
Software Engineering
Thats all folks!
So CS is not just Programming. Hence Proved.

Choose a domain of interest.
Open up Google Scholar and search for recent papers
(since 2011).
Choose an interesting paper, study thoroughly and start
implementing the proposal made.
Thank You

Anda mungkin juga menyukai