Which CS areas have the most low-hanging fruit for research?

Author Topic: Which CS areas have the most low-hanging fruit for research?  (Read 1440 times)

Offline rashidacse

  • Full Member
  • ***
  • Posts: 103
  • Test
    • View Profile
Which CS areas have the most low-hanging fruit for research?
« on: November 28, 2015, 12:02:10 PM »
1) Distributed Algorithms and Data Structures.

This is a low-hanging fruit since we can get cheap access to clusters of commodity machines these days and we have decades of prior research into parallel and distributed computing at our disposal. On the other hand we are getting more and more data which doesn't fit into memory hierarchy of a single computer anymore, and even if the communication bottlenecks are miraculously resolved we will always be limited by the physical constraints of a single computing node [1].

For starters see the talk by Neil Conway: Cloud Programming: From Doom and Gloom to BOOM and Bloom: http://neilconway.org/talks/boom...

2) Distributed Databases

See What are the best recommended research topics on databases according to edge technologies and recent research trends?

3) Distributed File Systems

See What are the best resources for learning about distributed file systems?

4) Distributed Numerical Analysis

See What are the best resources for distributed numerical analysis/matrix algorithms?

5) Distributed Convex Optimization

See What are some good resources for learning about distributed optimization?

6) Distributed Stream Processing

See What are some good resources for learning about stream mining? Why?

7) Distributed Machine Learning
e.g. ensemble techniques such as Random Forests, or consensus algorithms with applications in Language Learning

also scaling: What are some introductory resources for learning about large scale machine learning? Why?

8) Distributed inference  and structure learning in Graphical models
e.g. Parallel algorithms for Bayesian networks: Page on iastate.edu

9) Distributed Logic and Coordination Specific Languages
e.g Coordination languages by Gelernter and Carriero:
http://dl.acm.org/citation.cfm?i... and http://www.lindaspaces.com/book/

10) Distributed Combinatorial Optimization
e.g. Search, Matching and Network Flow problems on big Graphs
http://en.wikipedia.org/wiki/Mat...,
try online bipartite matching on streaming inputs, it's a fun problem with many applications in bioinformatics (e.g. genome assembly reduces to maximum matching in bipartite graph, see Cufflinks)

11) Distributed artificial intelligence:  Swarm learning and evolution,  e.g. mimicking Bacterial colonies and Microbial intelligence.  Population Genetics (genetic variation, drift, mutation, selection) applied to multiagent systems. Reinforcement learning in a distributed setting.

12) Distributed quantum algorithms, e.g. for Clock Synchronization

13) Network Coding is fun, with some very elegant recent results, such as Fountain code. See: Network Information Theory and Information Theory, Inference and Learning Algorithms (the last chapter on online codes)

14) Decentralized digital currencies (e.g. bitcoin)

15) Compilers for parallel and distributed systems (e.g.  Page on cmu.edu,  X10, Chapel, C-to-gates (C to HDL) and compilers/runtime for heterogeneous systems (e.g. FPGA + CPU + GPU) ), Programming languages for distributed computing systems

16) Distributed operating systems
Why the data center needs an operating system
Grid computing with Plan 9

17) Distributed robotics and sensor networks