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.