KEMBAR78
Fields in computer science | PDF
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 don’t want history. Show me the super cool stuff now!

• Wilhelm Schickard – Designed the first mechanical calculator
  (1623).
  ▫ Why? Kepler’s 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 University’s
   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
Theoretical Computer Science

Theory of Computation
• 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

Information and Coding Theory
• 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

Algorithms and Data Structures
• Algorithms
  ▫ Step-by-step procedure for solving a given problem.
  ▫ Eg: Sorting algorithms, Euclid’s 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

Programming Language Theory
• 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

Formal Methods
• 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
Concurrent, Parallel and Distributed
Computing
• Concurrency
  ▫ Property of systems where several computations are executing
    simultaneously, and potentially interacting with each other.
  ▫ Eg: Dining Philosopher’s 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

Databases and Information retrieval
• 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.
Applied Computer Science
• Has many sub branches like
  ▫ Artificial Intelligence
  ▫ Computer Architecture and Engineering
  ▫ Computer Graphics and Visualization
  ▫ Computer Security and Cryptography
  ▫ Software Engineering
Applied Computer Science

Artificial Intelligence
• 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

 Computer Architecture and Engineering
• 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: Computer’s 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 Graphics and Visualization
• 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 Security and Cryptography
• “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

Software Engineering
• 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
That’s 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 

Fields in computer science

  • 1.
    Research Areas inCS Narendran Thangarajan, Final Year CSE, SSNCE.
  • 2.
    Outline • Thanks toforefathers! • Branches in Computer Science ▫ Theoretical ▫ Applied
  • 3.
    Thanks to ourforefathers! • I don’t want history. Show me the super cool stuff now! • Wilhelm Schickard – Designed the first mechanical calculator (1623). ▫ Why? Kepler’s 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.
  • 4.
    First Computer ScienceDegree • 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 University’s Computer Science Department.
  • 5.
    Branches in CS •CSAB – Computing Sciences Accreditation Board ▫ Accreditation of computing disciplines. • Two Major Branches ▫ Theoretical Computer Science ▫ Applied Computer Science
  • 6.
    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
  • 7.
    Theoretical Computer Science Theoryof Computation • 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)
  • 8.
    Theoretical Computer Science Informationand Coding Theory • 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
  • 9.
    Theoretical Computer Science Algorithmsand Data Structures • Algorithms ▫ Step-by-step procedure for solving a given problem. ▫ Eg: Sorting algorithms, Euclid’s 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
  • 10.
    Theoretical Computer Science ProgrammingLanguage Theory • 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).
  • 11.
    Theoretical Computer Science FormalMethods • 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.
  • 12.
    Theoretical Computer Science Concurrent,Parallel and Distributed Computing • Concurrency ▫ Property of systems where several computations are executing simultaneously, and potentially interacting with each other. ▫ Eg: Dining Philosopher’s 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
  • 13.
    Theoretical Computer Science Databasesand Information retrieval • 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.
  • 14.
    Applied Computer Science •Has many sub branches like ▫ Artificial Intelligence ▫ Computer Architecture and Engineering ▫ Computer Graphics and Visualization ▫ Computer Security and Cryptography ▫ Software Engineering
  • 15.
    Applied Computer Science ArtificialIntelligence • 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.
  • 16.
    Applied Computer Science Computer Architecture and Engineering • 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: Computer’s 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.
  • 17.
    Applied Computer Science ComputerGraphics and Visualization • 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
  • 18.
    Applied Computer Science Computer Security and Cryptography • “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
  • 19.
    Applied Computer Science SoftwareEngineering • 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
  • 20.
    That’s 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.
  • 21.