Personal Notes On Curing Neurological / Psychiatric Diseases / Disabilities [Unofficial]

Neural Engineering

  • Artificial Retina
    • Current generation: Very low resolution.
    • “Learning to see” period.
  • Epilepsy – Implantable Electrodes, Brain Cooling, Drug Delivery
    • Implantable Devices Could Detect and Halt Epileptic Seizures – Scientific American
    • Closed Loop Devices:
      • Idea: Detecting seizure onsets and stopping them.
      • Implantable Electrodes
      • Brain Cooling
        • Detecting temperature (associated with seizures) and controlling
      • Drug Delivery 
        • Closed loop
        • Continuous, at regular intervals
      • Challenges for Closed Loop Devices:
        • False positives: Detecting normal activities as seizures.
    • Open loop devices
      • VNS – Vagus Nerve Stimulation (from 1997)
      • Deep brain stimulation
        • Some people have too many seizures; stopping some would be considered as progress.
    • Second generation Closed Loop Devices
      • Not just detecting onset of seizures; rather predicting seizures before they even start.

  • Body Amputation
  • Cochlear Implant
  • Brain Computer Interfacing
  • Tom Mitchell & others applying Machine Learning Techniques to find correlations in 
    • neural firing patterns, spikes and 
    • behavior / thought.
  • Techniques, broadly defined:
    • Neuromechanics
    • Neuromodulation
    • Neural Repair and Regenesis
  • Optogenetics
  • Connectomics [2]
  • Neural patterns should be analogous to what is out there in the world (VS Ramachandran – Similarity of letters, image, sound [3]). Neural processing is modular (Vision – modules for color, shape, etc.).


  1. A Guideline For Research In Neuroscience
  2. Connectomics
  3. Reith Lectures by V S Ramachandran
    1. [Personal Note: I have always been fascinated by the study of human mind and brain. While I was in college, I came across the Reith Lectures by V S Ramachandran Googling topics as diverse as “Neuroscience”, “Brain”, “Neurology”! Going through this set of lectures, I understood how fascinating the study of Neuroscience and Neurology are!] 
    2. [By the way, I have always been and am still Googling my way through human knowledge space!]

Personal Notes On Wolfram Language

Wolfram Language

  • Symbolic Computing – symbols representing real world entities, concepts, procedures
  • Knowledge about the world built into the language
  • Data 
    • Gathered in the course of building WolframAlpha.
  • Cloud Infrastructures, Devices and their functionalities are symbolic building blocks of the language. 
    • Symbolic Computing + Knowledge & Data 
      • Knowledge, data, real world entities represented by symbols in the programming language. 
      • You can pick a symbol from a domain and apply a procedure from another domain. Everything fits together. 
    • Builds on
      • Mathematica
      • WolframAlpha
      • Natural Language Understanding
      • Wolfram Cloud 
        • Treating it as a giant active repository for symbolic lumps of computation. 
      • CDF (Computable Document Format)
    • Injection of computation into everything.


    Personal Notes On Elementary Combinatorial Techniques [Unofficial]

    • Principle of Addition
    • Principle of Multiplication
      • Counting Permutations 
      • Counting Combinations (WIth or without repetitions)
    • Binomial Coefficients
    • Bijection
    • Partitions
    • Recurrence Relations
      • Counting in terms of smaller instances of the same problem
    • Principle of Inclusion and Exclusion
      • Overlapping sets 
    • Generating Function
    • Polya’s Method
    • Graph Theory

    Proof techniques

    • Mathematical Induction
      • Universal Proof 
    • Pigeonhole Principle
      • Existential Proof

    Personal Notes On Business / Entrepreneurship – 1 [Unofficial]

    1. Analyze all possible alternatives before taking decisions. 


    • Which product? Which set of features should the product have? If the features {e.g., features of a website/app} are going to be released in steps then in what order? Which set of marketing channels? In what order? Long term plans? Brand? How to utilize resources {capital, people, technology} in the best possible way?)  Pick the ones (among each set of alternatives) that seem the best (at least for the moment). One can try other alternatives if the current choice doesn’t work. (Data, Marketing, Strategy, Economics, Systems, Network Science)




    1. Gather and analyze as much market data as possible.
    2. Use quantitative/computational methods as much as possible. (Data science, Network science, Analytics, Operations research, Statistics, “Model thinking” [1] tools) Be creative. Devise your own method.
    3. Think from the customer/consumer point of view.
    4. As a manager, bring out the best in employees. Make them feel as part of the company. Make sure they take pride in company’s success, impact of its products in the real world. Introduce schemes so that the employees grow themselves. Everyone has to keep learning to keep up with the rapid pace of innovation. [Remember: really smart, dedicated knowledge workers are 10, 20, 30 (or even more) times better than the mediocre ones.]
    5. Employ wikinomics. Outsource. Delegate.
    6. Solve problems that people face and/or consider what makes people’s lives better/easier while designing products. Identify problems/inefficiencies.
    7. Employ gamification elements (both within the company among employees {Create an environment so that they enjoy working.} and among customers/consumers). (Even religions have elements of gamification like point system.)
    8. Employ wikinomics – get access to global talent, use open source software and hardware. Utilize cloud computing – get cheap computational and storage resources. With even small teams and limited investment, you can now accomplish things that were once possible only by governments and large organizations. It’s getting increasingly cheaper to prototype / try out new ideas. [1 (Followups)]
    9. Study and analyze economies to find opportunities and ideas. (Marketing, Strategy, Economics, Systems, Networks)
    10. Competitive advantage: Advanced innovative technology, Product design, Business planning – market analysis – strategy, Wikinomics, Data Analysis – Mining, Enchantment, Motivated workforce, AI – Automation.
    11. Data Science + Human Psychology. 
    12. Organization, Operations Management 


    • Automation (of repetitive tasks)




    1. Lead with “LUV” [2]. Create emotional relationship with both employees and customers. Emotionally charged up work-force.
    2. Create a tribe around your product.


    Personal Notes On Economics – 2 [Unofficial]

    Microeconomics in a Nutshell

    The Idea Of Promoting Non-zero Sum Games: How Winning With Others Helps You Win Bigger

    Game theory is a branch of both Economics and Mathematics. 

    When you start considering 

    • your opponents 
    • possible action choices and respective outcomes of actions of both you and your opponents

    you have entered the realm of Game Theory.

    The field has found applications in areas as diverse as Artificial Intelligence, Evolutionary BIology and Politics.

    A game where a player wins 5 points and his opponent loses 5 points is a zero-sum game.

    On the other hand, in a non zero-sum game, the outcome is not zero.
    For example, if a player wins 5 points and his opponent wins 2 points, the overall outcome is 5 + 2 = 7. So here we have a win-win, non-zero sum game – both wins.

    Non-zero sum game doesn’t mean that you have to lose in order to make others win. The idea is not to think solely in terms of your profit but to develop business plans so that you win bigger by including others as “co-winners”. Here are some practical examples. 

    • Lets consider Google’s Android Platform. Google could develop a mobile operating system and develop all the apps themselves. If that happened then we would have far less apps and more importantly, less innovative apps. But Android is an open platform. Anyone can develop apps for the Android platform. So in this case, Google didn’t want to win only by themselves. Google saw you – the app developer – as a co-winner. That is the reason why we have so many App developers making great money. Of course, Google is winning. Google is taking 30% cut. And Google is winning bigger by helping you win. As more apps are available, Android Phone / Tablet sell is on the rise. So just as Google and App Developers are winning, companies who advertise on Android are reaching more customers through the apps and winning bigger. And last but not least, don’t forget the customers whose lives are getting easier and richer with all these apps that app developers are developing. They are winning too!
    • As the economic condition of the developing and undeveloped nations rises, their purchasing power rises, which in turn creates opportunities for developed countries in our increasingly interconnected and interdependent world. Developed countries have more exports and imports among themselves. Why not plan for a future where all the countries have more to export and more to import? Won’t the citizens have a better and richer life? 
    • Google and Facebook have taken initiatives to increase Internet penetration, targeting “the next billion” or so they say, which in turn increases the number of users of their services. So here is the win-win scenario. 
      • Users learn more, communicate better, use better tools [apps] and as a result earn more + living condition goes up.
      • Marketers, App developers reach more of their customers and sell more of their products.
      • Google and / or Facebook get more cut.
    • Taking initiative to reduce Climate change should be win-win.
    • Here is how mobile 
      • fights poverty
      • bypasses poor infrastructure which could have been a roadblock to development 
      • makes companies get rich.

    1. Economics: The science of choice.
    2. Utility: Satisfaction. Consumers consider utility value to choose among different goods and services. Rational agent: maximizes utility (happiness, fulfillment, satisfaction). 
    3. Diminishing marginal utility ensures that no good or service is consumed too much by a single agent.

    4. Behavioral Economics: Utility function differs according to personality, culture, society etc. (e.g., gamification: social status, fun from continuous feedback.) Cognitive biases.  
    5. Operations Research: Payoff may be far in the future, requires sequence of steps. (Behavioral: how much do people think?) Limited rationality; satisficing.
    6. Study – Welfare Economics. Adam Smith – “By pursuing his own interest he frequently promotes that of the society more effectually than when he really intends to promote it.” 
    7. Competition vs Co-operation (Competitive spirit is an essential impetus for individual growth. {Mastery of life and a sense of being in control} There is scarcity – compete.)
    8. Perfectly competitive market: Same product market – competition – price goes down, more innovation – more sales. {e.g., smart-phone}   

    Economics Research Topics

    1. Win-win, Non zero-sum / Positive sum games from an Economist’s point of view. How to apply win-win to different sectors. Mechanism Design.
    2. Theoretical framework for Social Business (Entrepreneurship). (Multi-dimensional nature of human beings can be integrated into the Utility theory.)
    3. Market-Production-Financial Market-GDP-Econometrics


    Personal Notes On Artificial Intelligence [Unofficial]

    • Search
      • Goal State Current State
    • Informed Search
      • Choosing next state based on distance from goal state.
        • Greedy Best First Search
          • Distance of next state from goal state
        • A* Search
          • Distance to next state + Distance of next state from goal state
    • Optimization
      • Searching for maximum / minimum.
      • Modifying the current state and evaluating to see if it’s comparatively optimum than the current state.
      • Algorithms

        Hill Climbing

        Simulated Annealing 

      • Local Beam Search
        • Keeping “a number of” “current states” in memory
        • Algorithms
        • Genetic Algorithm

    • Constraint Satisfaction Search
      • Search + Constraint Propagation
    • Planning
      • Search utilizing concepts from logic.
        • logical AND
          • => decomposition of problem
    • Uncertain / Probabilistic Reasoning
    • Probabilistic Reasoning over time
      • Models
        • Hidden Markov Model
        • Dynamic Bayesian Network
    • Simple Decision Problems
      • Decision Theory = Probability Theory + Utility Theory
    • Complex Decision Problems
      • Game Theory
      • Mechanism Design
    • Reinforcement Learning
      • Inductive / Statistical Learning: Learning input/output pair for a particular problem.
      • Knowledge based learning: Adding to what you already know as you go along learning new things.
      • Reinforcement Learning: Learning sequence of behaviors from feedback.
    • Communicating with real world
      • Natural Language Processing
        • Parsing, Semantics, etc.
      • Statistical Language Processing
        • Probabilistic Language Models
          • Counting occurrence of words, N-gram models.
        • Information Retrieval, Information Extraction, Machine Translation.
      • Perception
        • Computer Vision
      • Robotics
        • Sensors
          • Localization
          • Mapping
        • Actuators
          • Degrees of freedom
        • Software Architecture
          • Reactive Architecture
          • Probabilistic Robotics [3]


    1. Overview of (Artificially) Intelligent Agents
    2. Artificial Intelligence: A Modern Approach
    3. Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series) by Sebastian Thrun , Wolfram Burgard, Dieter Fox

    Personal Notes On Distributed Data Computing [Unofficial]

    • A Data computation problem requiring Multiple jobs (multiple rounds of “map” followed by “reduce”) in Hadoop [5]
      • => YARN (Hadoop) [2]
      • Apache Pig [4]
        • Provides a DSL interface that translates code into Single / Multiple Mapreduce jobs. 
    • Compare: Apache Hama: Bulk Synchronous Parallel Model [3].
      • Cycles of Parallel Computation and Synchronization.
      • Comparison:
        • “Map”: Parallel Computation
        • “Reduce”: Synchronization
        • Multiple rounds of “map” followed by “reduce”: Bulk Synchronous Parallel Model 

    Bulk Synchronous Parallel Model


    Personal Notes On Harddisk Materials [Unofficial]

    • Find material 
      • Write: that can be controlled to change its state permanently until control signal is applied again (without electricity). 
      • Read: current state can be detected.
    • Types of controls:
      • Electric Control
        • STM?
      • Magnetic Control
      • Optic Control  
    • 2 different stable states. 
    • Requirement: Faster read / write.

    Personal Notes On Number Theory [Unofficial]


    • Divisibility, Prime 
      • Algebraic Number Theory
        • Congruences
      • Computational Number Theory
        • Computation Intensive problems
          • Large Primes, etc.
          • Applications:




      • Analytic Number Theory
          • Number Theoretic Functions
          • Partition of Numbers (Generating Functions)
          • Distribution of Primes

    Personal Notes On Economics – 1 [Unofficial]

    • Certain group of people getting rich in a certain area ->
      • Inflation; rise in price in that area
        • -> Affects of Income inequality
        • Examples:
          • High Housing price in an area (San Francisco) due to lots of tech companies settling in an area (with employees having high wages) makes life hard (prices going high) for people living in that area.
          • In Teknaf, Cox’s Bazar (Bangladesh), Illegal drugs made some people filthy rich, which made the prices go up. (Affects of income inequality – made it difficult for common people) When the drug dealers got arrested, the prices went down. Within a few days prices of some products more than halved. [1]
    • Money Goods, Services
      • Some units have more money; less goods, services; Some have more goods, services; less money.
      • Money – Supply, Demand
      • Inflation.

    • Macroeconomics
      • Aggregate supply and Aggregate demand – inter-related
      • Interactions among lots of units “over time”
      • Aggregate demand declines -> Prices decline -> Firms have to spend less (less price for input goods) for producing products -> People buy more of the same products with less money -> Aggregate demand goes up -> Prices increase. => Stability in the long run (fluctuations in the short run). 

    • Better (informed) supply chain management -> Firms taking better decisions for prices, less products are wasted -> Effect on overall economy.


    Personal Notes On Ventures [Unofficial]

    Think in both directions: how a problem can be solved by using technology / science and how a / a set of technology / a body of knowledge can be used in a new domain / to solve problems.
    Innovation / Venture Areas:
    1. Education & Research Platform; helping people reach their potential; better platform for organizing and creating knowledge.
    2. Healthcare
    3. Artificial Intelligence
    4. Data Science, Mining – TV, Video Data – Apps. Recommendation.
    1. Applications of AI, ML, Robotics, Automation
        1. Intelligent personal assistant
        2. Robots, Automation
    1. Financial Technology
    2. Mobile Apps, Devices, Sensors
    3. Better brain, happiness, performance
    4. Computer Vision, Augmented reality, Virtual reality
    5. Wikinomics Platforms
        1. Open Collaboration (Github – Forking, pull back, commenting, 3D Printing designs, tabular data; documents, books, music, QA, Bookmarks, Encyclopedia, mind-mapping)
        2. Social Business, Entrepreneurship
    1. How do you take human – computer (networked) collaboration, intelligence to the next level?
        1. Current: Collective Intelligence, Human computation, Collaboration Platforms
    1. “Design of everyday things”
    2. Biomedical Engineering
        1. Disability, Birth defects
        2. People
          1. Dean Kamen [1] 
          2. Hugh Herr [2]
    1. Better lifestyle choices
        1. Fast food alternatives, healthier choices
        2. Quantified self, Preventive medicine
    1. Look for inspiration in the biological world (Biology Technology)
    2. Political surveying, data analysis, strategy, local / social organization / initiative for solving problems
    3. Law and order
    4. 3D Printing / Additive manufacturing, Fab-lab, Programmable matter, Robotics & Automation, Better CAD/CAM, Artificial Intelligence, New materials, Collaborative manufacturing
    5. Enterprise Software
    6. Embedded systems, control systems
    7. Internet of things
        1. Agents, Multi-agents
    1. Invisible design, Future UX-UI
        1. MIT Media Lab Projects
        2. Application of AI, ML; Experience design, real world – digital information-interfaces, Personalized, Ubiquitous sensors, Sync, Internet of things
    1. Aerodynamics, Aerospace
    2. Applications in Sports
        1. Machine learning & Statistical Analysis, Image Processing, Computer Vision (e.g., finding weakness of a batsman in cricket)
        2. Application Data Science / Visualization techniques to Team play Analysis
        3. Sensors for performance analysis (e.g., in Tennis)
        4. Mechanical Engineering (e.g., batting practice in cricket)
        5. Enumerating all the skills, helping others learn those skills (make the skills automatic – so that players can perform them without thinking)
    1. Neuroscience, Psychology, Neural Engineering


      • Neurological Disorders; Psychiatric Disorders.
    1. (Bangladesh) ICT, Tourism, Employment, Entrepreneurial Platform, Social Enterprise.

    1. Building a startup is getting exponentially (at least linearly) cheaper.
    2. Mini Silicon Valleys all over the world
    3. Wikinomics
    4. Management Science and Engineering
    5. Models: Crowdfunding, Venture Capital, Incubator
    6. Teaching people tools with which to create startups with our world wide education platform (WWEP!).
    7. Our Manufacturing Plant; Enterprise Softwares and Products


    1. Dean Kamen: The emotion behind invention
    2. Hugh_Herr_the_new_bionics_that_let_us_run_climb_and_dance

    Notes On Education: Platforms & Services [Work In Progress]

    Fundamental Shift In Education – A Requirement Of Our Time

    Fundamental shift in education is a requirement of our time.Searchable facts are available online. When you have the Internet at your fingertips aided by Google you can learn anything ever known to mankind.

    Computational devices / apps {e.g., WolframAlpha} are available. We don’t need to do multiplications or divisions or even algebraic calculations anymore. Computer based Numerical Computing and Symbolic Algebra Systems (SageMathematicaMatlab) and Statistical Computing Systems (R) are available. All we need to learn is to turn real world problems into computer programs that can solve our problems.

    Exponential growth of human knowledge means that much of what you know today would become obsolete ten years from now. So lifelong education is the norm.  

    Breadth of knowledge will become increasingly important. You need to know what you need to know and once you know what you need to know, you can find it online.

    Boundaries between different fields of study are opening up. We organized different fields of study (Physics, Chemistry, Biology etc.) more than hundred years ago. We organized everything related to life under Biology. The study of atoms and molecules and reactions was named ChemistryPhysics concerned itself with forces and matter of the universe and their interactions with the ultimate goal of reducing all forms of interaction into few fundamental laws (one law – “The Theory Of Everything”or so the Physicists say – if you are a bit ambitious!). But now in the light of new knowledge and better tools, new organization of fields of study is required.

    As we gained knowledge about the chemical processes of life, we organized our knowledge under the name Biochemistry. Fields that used to be completely separate are merging in the light of new knowledge and better tools to tackle common problems. For example, Biology and Computer Science, once separated, have combined to form Computational Biology / Bioinformatics as a result of explosion both in genomic and more generally biological data and computational power. New fields of study like Bioengineering, Biophysics, Cognitive Neuroscience, Computational Materials Science have popped up. As we look forward into the future, we can see Computer Science and Physics combining to form Physical Digital Integration and creating a world that is much different and better than ours. 

    The Education of future Engineers would be based on Science and Mathematics: learning a few concepts that can explain all the different tools, technologies, possibilities and limits.

    With the proliferation of global collaboration platform The World Wide Web, we need to direct research in the right direction – one that centers on solving real problems collaboratively, not just publication of random research papers (for getting promoted!).

    In short, a complete reorganization of Education as it is today. Are we ready?Followups


    1. MOOC (certificates, relation with employers, transferable credits)
    2. Data Science (Knewton – tagging contents with concepts, learning from students’ interactions, learning to recommend {personalized education}) (Teachers can keep track of students’ progress.)
    3. Reinvent Books. Ebooks 2.0 (interactive, multimedia-rich, social) – Apps – Games – Edutainment (Gamified Education, UVA/Topcoder – gamification elements, social elements)
      1. Social – people sharing parts (a specific chapter, quotes, etc.) of E-books.
      2. Authors getting paid – for number of pageviews
      3. Blog, Forum, Social Media, Communities around books.
        1. Currently Authors build sites, Social Media pages for their books.
          1. Book: Freakonomics: A Rogue Economist Explores the Hidden Side of Everything 
          2. Site: Freakonomics
    4. Free access (premium subscription?) to books (ad).
    5. Children (even College students) going through lectures at home; and solving problems, getting individualized help at school.
    6. Teaching meta skills (learning how to learn, how to solve problems, how to make decisions, how to become an expert, how to be more creative, how to improve writing, how to go about in life) (missing in traditional education)
      1. Role of success coaches, self help books, audio, motivational programs.
    7. Growing morally responsible citizens. (Being morally responsible leads to more success and happiness, satisfaction, fulfillment in life.) (missing in traditional education)
    8. Personalized Learning
    9. Presenting study materials in brain-friendly way. Learning by doing (DIY). Learning by solving problems. Building stuffs – People naturally find it exciting.
      1. instructables 
      2. Maker community
    10. Get involved in different learning/educational communities (e.g., Maker community) to learn more about how education should be like.
    11. Content: web-based (hyperlinks)
    12. Lifelong education (World is changing rapidly. So are jobs and our roles. Exponential growth in knowledge.)
    13. Reaching students in developing countries
    14. Developed countries –  increasing tuition fees
    15. Worldwide collaboration (Wikipedia, QA sites,…..)
    16. IQ and creativity and problem solving capability are not fixed but can be improved with right kind of practice. (Each and every normal human being has enormous potential.)
    17. One can become a master in almost any area. There are books, videos, online content for mastering almost anything. All it requires is investment of time. (It is possible to teach someone to become an expert. In other words, one can learn the methods of becoming an expert.)
    18. Reinforcement / better systems of feedback in child learning
    19. See Head First series learning principles. [8]
    20. Research platform – one that centers on solving real problems collaboratively, not just publishing random research papers.
    21. Analyzing and structuring all of human knowledge in terms of fundamental concepts and theories. 
      1. Physics attempts to do that for the physical universe.
    22. Students learning by finding answers to questions, solving problems (not just exercises) (rankings), doing projects (motivation – show others). (Projects, lab work show that whatever is learned in books / web has real world equivalents, applications. So students / learners begin to regard what was previously “bookish” “boring” knowledge, in a whole new way.)
    23. Schools can encourage finding answers to their questions online (turning it into a habit). Schools can work on forming good habits – reading books, enjoy doing intellectually satisfying work, being good citizens. (It’s all about providing the right feedback or more precisely – reinforcement learning. A step further – gamification.)
    24. Parental motivation, Cultural thinking patterns (Indian, Chinese descendent students in US) play a huge role.
    25. Curious ideas: Education in Second Life,
      1. Cross Reality – MIT Media Lab & Second Life
      2. Harvard class invades Second Life
    26. Learning to Program (& share):  Scratch, Alice. Designing devices by dragging-and-dropping parts and assigning parameters.
    27. Humanities for all (how to go about in life? People, society); not just science, math, tech and business. (Think) Creativity, design.
    28. Industry – Educational Institute collaboration (employment) – Udacity – job, IBM – Brooklyn High School.
    29. Encouraging everyone to learn from absolutely everything in life.
    30. Study – children. 
      1. Children are exploratory in nature. 
        1. (They have to be exploratory. Otherwise, how would they learn the rules of this complex world?) 
      2. They watch everything with fresh eyes – creative. 
      3. Enjoy learning. 
      4. Strong Belief: there is no limit to what they can achieve.
    31. Learning by doing – DIY, Open Source, Personalized manufacturing.
    32. Education and Learning is not confined to classrooms. We can learn from everything we see & experience around us.  
    33. Multimedia – You learn more when you see things in action.
    34. Problem Solving – You really start learning something.
    35. Change in culture. 
      1. Example: FIRST by Dean Kamen. 
      2. Celebrity Scientists / Engineers.
      3. Textbooks are boring. The way concepts are presented is boring.

    The Education of future Engineers would be based on Science and Mathematics: learning a few concepts that can explain all the different tools, technologies, possibilities and limits.

    Whatever you teach someone is not completely internally absorbed by him / her until he/she understands it in terms of what he/she already knows. A teacher should make sure that the student can describe whatever he/she has learned in his/her own words / ways.
    Problems in Online Education
    1. Very low retention rate: Not enough motivating as traditional classrooms.
      1. Social features – motivation;
      2. Gamification – as students move forward they feel more in control of everything – feeling of mastery in the real world – “if you can complete this, you can go out and build that”;
      3. Monetary value: rich pay; poor – “solve challenges and get a free course!”
      4. When it’s free everyone can click and start learning (Wikipedia), but completion of a course requires motivation
    2. One-on-one interaction
    3. Reviewing and grading; Current models: 


    • Peer review
    • Automated
    • Paid


    1. Interactive Content
    2. Online discussion forums
    3. Offering industry skills that companies want their employees should learn
    4. Certification – job
    5. You can learn at your own pace; go back and learn something if you have lackings and then come back to where you left off. 
    6. Content 
      1. Interactive
      2. Multimedia-rich
      3. Problem Solving & Gamification
    The Education of future Engineers would be based on Science and Mathematics: learning a few concepts that can explain all the different tools, technologies, possibilities and limits.
    Whatever you teach someone is not completely internally absorbed by him / her until he/she understands it in terms of what he/she already knows. A teacher should make sure that the student can describe whatever he/she has learned in his/her own words / ways.


    EdX [7]
    • Interactive (Questions after short videos) => You are compelled to focus.
    • Self pace. Lectures.
    • Instant Feedback => Students take a lot of pride in getting their answers right!
    • Gamification. (e.g., build online circuit)
    • Students learn by teaching. Discussion forums.
    • Business Model: License MOOC courses
    Current MOOCs


    • Lacks: Strong community, tribes
      • [Maker: Strong community]
    • Very few: Course offerings with traditional Universities


    Personalized Learning
    Data – Learning
    Online courses + Active Learning at Institution
    Course Content that generates curiosity, story-telling, etc. Excited Students. Traditionally, teachers assume that, its the students’ job to pay attention. So teachers don’t usually apply the techniques that people from other professions do to “engage” their audience.  


    Education & Learning Platform
    1. Find out and structure all of the different elements (presentation of lectures, how to get students excited etc.) of Education and Learning (a theoretical model of education and learning) and the best possible model for each of the different elements (e.g., the best way to present lectures etc.).
    2. Design a Computer-based Educational and Learning Platform.
    3. Implement.
    4. Change the world!


    Develop authoritative course + textbook (E-Book 2.0) collaboratively with experts on different areas and sub-areas of knowledge. Engage communities.

    Education Platform Of The Future


    Vision Of “World Wide Education Platform” (WWEP!)

    The vision

    People all over the world would go to a few education providers online for all their education and learning.

    “In 50 years, he (Sebastian Thrun) says, there will be only 10 institutions in the world delivering higher education and Udacity has a shot at being one of them.” [1]

    I believe it will happen a lot earlier than 2050.

    Main Themes of “World Wide Education Platform”

    • One Mobile Computer with broadband access per child 
    • Content
      • Authoritative Courses
      • Interactive Content 
      • Programming, Computing
      • E-book Subscription
      • Wiki, QA. 
      • Learning by doing: Projects, Open Platforms, Open source software, DIY
      • Teaching Meta-Learning Skills
      • HTML5 based. (Type of device won’t become a roadblock.)
    • Personalized Education
      • Content Discovery: Search, Recommendation, Hyperlinks
      • Big Data 
      • Gamified Experience
    • Community driven
      • Wikinomics
      • DIY Communities 
    • Lifelong Education
    • Works collaboratively with existing Educational Institutions (Schools, Colleges, Universities)

    Minimum goal of education should be to teach people required skills so that they can learn whatever they need, acquire whichever skill they want to excel at, on their own.

    There lies enormous potential in each and everyone of us. A great education system would unlock that potential.

    Current Platforms
    Khan Academy



    • Gates
    • Google




    1. A Guideline For Research In Neuroscience
    2. Vision Of Collaborative Research Platform
    3. Research Problems I Want To Work On
    4. Fundamental Shift In Education – A Requirement Of Our Time
    5. Vision Of “World Wide Education Platform” (WWEP!)
    6. Managing Complexity
    7. Anant Agarwal: Why massive open online courses (still) matter
    8. Head First Labs

    Personal Notes On Media, Communication & Interaction [Unofficial]

    Media, Communication, Interaction, Digital Products 

    • News
      • Politics & Views
      • Tech
      • Science
      • Business & Economics
    • Blog
    • Vlog 
      • Youtube
    • Microblog
    • Apps
    • Gadgets
    • Forums / QA
      • Custom built  
        • Communication, Discussion, Opinions, Views
      • Stackoverflow
      • Quora
    • Open Source Codebase
    • Open Source Hardware
    • Educational Content
      • Interactive EBooks
    • Start a number of series on a range of topics with co-editors.
    • Social Media (Current)

      • Facebook
      • Google+
      • Blogger
      • Youtube
      • Twitter
      • Quora
      • LinkedIn

    Personal Notes On Sub-areas of Management Science & Engineering [Unofficial]

    • Economics & Finance, Financial Engineering
    • Organization, Tech & Entrepreneurship
    • Decision Analysis & Risk Analysis
    • Systems Modeling & Optimization
    • Production and Operations
    • Probabilistic & Stochastic Systems
    • Information Science & Technology
    • Strategy & Policy
    • Business Intelligence 
    • Data Analytics & Mining
    • Networks


    Personal Notes On Computer Science Skills [Unofficial]

    Computer Science Skillsets I Am Focusing On
    • Skillset 1: Software Engineering
      • Programming Languages [1] [2]
      • Software Engineering skills, tools and processes [3] [4] [5] [6]
    • Skillset 2: Theory & Algorithms 
      • Theoretical Computer Science
        • Algorithms [1] [2]
        • Data Structures
        • Language, Automata & Discrete Mathematics
      • Computational Science & Engineering
    • Skillset 3: Systems
      • Systems Programming
      • Computer Security
      • Database: RBBMS and NoSQLs
      • Cloud and Mobile Development [1] [2]
      • Parallel, Multicore and Concurrent Programming [3]
      • Networked and Distributed Systems Programming [4] [5] [6] [7]
    • Skillset 4: Intelligence & Data 
      • Machine Learning [1]
      • Data Science & Analytics, Big Data 
      • Artificial Intelligence [2]
    • Skillset 5: Physical Digital [1] [5] 
      • Robotics & Manufacturing [2] [3] [4] [6]
      • Internet Of Things
    • Skillset 6: Info Bio 
      • Computational Biology & Bioinformatics
      • Systems BIology [1] 
    • Skillset 7: Interactive Computing
      • Education [1] [2] 
      • Wikinomics [3] [4]

    What is the least you need to know so that you can develop any software?

    Programming language: structure the main syntactic elements

    Algorithms and Data Structures
    • Structure all the data structures
    Software Development, OOA&D, Design Patterns, Functional Programming, Software Engineering Tools

    Can you develop prototypes from scratch?
    Master existing systems – interacting with them, their internals, how they could be made to work better.
    Operating Systems
    Database: Relational, NoSQL
    Parallel & Distributed Computing

    Computer Architecture

    Machine Learning
    Language Processing

    Multicore, Networked & Distributed Programming

    How do you make developers orders of magnitude (say 100 times) more productive?
    How do you develop software so that they have less bugs?
    • Support for Abstractions, Components in language
    • Start with Scala DSL, Clojure Macros, and Code generation (from XML / DSL – synchronization with code, CLI / Interpreter).
    • Library, Framework, Plugin, Middleware, Reusable infrastructure (e.g., Akka)
    • Classify, Categorize all the different bugs, Test Driven Design

    Programming Language Paradigms
    1. Imperative, State (Memory) manipulation based, Assignment oriented Programming Language
    2. Functional Programming Language
    3. Object Oriented Programming Language
    4. Rule-based, Logic-based Programming Language

    Most languages have hybrid philosophy.
    Scala – Object Functional Programming Language

    • Functional Programming
    • What makes Clojure different
    • Scala
    • Dependency Injection
    • Parallel Programming Models
    • Knowledge Ontology for Artificial Intelligence

    Concurrent Programming Models

    Parallel Programming: Multiple-processor or multicore programming

    Concurrent Programming: Multithreaded programming

    Concurrent Programming Models:
    1. Threads and lock-based Synchronization
      1. Java
    2. Functional programming model
      1. Pure Functions with no side-effects + Immutable Data Structures
    3. STM (Software Transactional Memory)
      1. Clojure
    4. Actor based message passing
      1. Scala
      2. Erlang
      3. Clojure
    5. Channel based message passing:
      1. Go
      2. Unix processes-pipes
    6. Non-blocking I/O or asynchronous I/O
      1. Callback Functions
        1. Node.JS: Event driven programming and Callback Functions.

    Programming Language
    Components, Composition of Components, Parameterization

    Functional Programming

    First class functions
    which means functions are first-class citizens.
    • functions can be assigned to variables
    • functions can be stored in data structures
    • functions can be passed to functions as arguments
    • functions can be returned from functions

    Pure functions without any side-effect
    • Functions take values as parameters and return values.
    • No global or mutable state.

    What do these two features lead to
    1. Localized thinking space
    2. Localized testing
    3. Control abstraction with higher order functions
    4. More readable & shorter code
      1. Higher order Functions leads to less branches and assignments, which in turn leads to readable, shorter code.
    5. Data abstraction with closures
    6. Concurrency – immutable data structures
    7. Simplifies programming; No need for complicated OO Design Patterns, which are required to solve problems that OO introduces.
    8. Higher order Functions, Composition of function at runtime, Function Types, Anonymous Functions / Function literals, Partial Functions, Currying,
    9. Distributed programming – map-reduce
    10. Loose coupling?
    11. Reusable? Replaceable components?
    12. Flexible? Extendable?
    13. Real world modeling? Functions take in data, and return data
    14. Recursion. Memoization. Dynamic Programming. Immutability.
    15. Monads
    16. Pattern Matching

    (OOP – interacting objects)

    Function returning output”s”?

    C++ Function pointers, function objects

    Scalable Web Applications

    Mobile (HTML5)
    Cloud (Big Data, NoSQL)

    Programming Languages I Am Learning / Working With
    Language – Why
    C/C++ – Systems Programming. Efficiency.
    Go – Systems, Concurrent and Networked Programming. Static Typing. Faster compilation.
    Java – Managed Code. Android Development. Open Source Libraries and Frameworks.
    Scala – A blend of all the features you saw in different languages. OOP and Functional Programming on JVM. Static Typing. Terse syntax.
    Clojure – Lisp Features on JVM. Metaprogramming (Programmable Language). Parallel Programming.
    Python – Rapid Development. Open Source Libraries and Frameworks.
    JavaScript – Web Front-end. Object-based Programming. Node.JS.
    R – Statistical, Numerical Computing
    Haskell – Pure Functional Programming
    Erlang – Fault tolerant Parallel Distributed Programming

    Language philosophy
    Language features – Sentences, Control, Abstractions

    Memory manipulation. Writing Systems Software. Efficiency.
    Generic Programming.
    Figure out how STL is implemented so that you can implement on your own.
    Boost Library.


    Computer Security

    Physical Digital
    1. Systems, Linux, Drivers, Modules, Android,
    2. Image Processing, Computer Vision; Signal Processing; Robotics; Machine Learning; Knowledge Representation, Probabilistic Agents, Planning; Semantic Web, Networking;
    3. Computer Architecture, Microprocessor; Arduino / Raspberry
    4. Sensors
    5. MEMS
    6. Electronics; Control Engineering; Machines;
    7. Security
    8. Physics

    1. Akka
    2. Play
    3. Spray
    4. Spark, Spark Streaming, MLlib, GraphX, Shark
    5. Storm
    6. Scalaz
    7. Lift
    8. Stratosphere

    1. Incanter
    2. Ring, Compojure
    3. core.logic

    OO Design Patterns:
    1. Strategy
    2. Factory
    3. Dependency Injection
    4. Publisher-subscriber
    5. Service Oriented Architecture

    Cross Language Development
    1. Thrift
    2. JVM


    Java Language & Standard Library:
    1. Language features: Class, Object; Garbage Collection; Inheritance, Polymorphism, Interface; Nested Type; Package; Assertion; Annotation; Generics; Enum; Exception
    2. Data Manipulation API: Math; Random number; BigDecimal; BigInteger; Geometry; String, Character, Regular  Expression; Primitive Wrapper; Array; Collections; XML Processing;  
    3. Development API: Internationalization; Preferences; References; Reflections; JMX
    4. Systems and Network Programming API: System; GUI, Swing, AWT; Threading (Thread & Lock); Concurrency; Networking – Protocols; Servlet, JSP; Web Services; File; JDBC;

    Java Vital Techniques:
    1. Concurrency
    2. Dependency Injection, IoC
    3. AOP
      1. AspectJ
    4. Modular Java
      1. OSGi
    5. Classfiles & Bytecodes
    6. Performance Tuning

    Java Libraries & Frameworks
    1. Spring
    2. Android
    3. Play
    4. Hadoop

    Java Software Development Tools:
    1. Automation; Increased productivity
    2. Testing
      1. Unit Testing
        1. JUnit
      2. Integration, Functional, Load, Performance Testing
    3. Build
      1. Maven
    4. Continuous Integration
      1. Jenkins
    5. Version Control:
      1. Git
    6. Quality Metrics
    7. Issue Management
      1. Bugzilla
    8. Technical Documentation Tools

    Java Standard Library
    • String Handling: String, StringBuilder, StringBuffer, String.split() (StringTokenizer), Text, Character, Pattern, Matcher
    • Collections: Map, List, PriorityQueue, Set, Queue, Arrays, Collections,  
    • Math: Math, BigInteger, BigDecimal,
    • I/O: Scanner, File,   
    • Exception Handling:

    Mobile Development
    1. Android Application Development
    2. Android Internals
    3. Mobile Web

    1. jQuery
    2. Bootstrap
    3. AngularJS
    4. Node.JS


    Multicore, Parallel, Networked & Distributed Programming

    Parallel Programming
    1. GPU Programming

    Cloud Computing
    1. Google App Engine
    2. OpenStack
    3. AWS: Basics

    Network Programming


    Server Architecture

    Web Framework:
    1. Django
    2. Spring MVC
    3. Play
    4. Ring, Compojure

    Scaling Internet Applications:
    1. Cache
      1. Memcached
    2. Message Queue
      1. AMPQ
      2. RabbitMQ
    3. Task Queue
      1. Celery
    4. Mapreduce
      1. Hadoop


    Distributed Data Processing Framework
    1. Mapreduce Framework
      1. Apache Hadoop
        1. Hadoop Family Projects
          1. YARN
          2. Hive
          3. Pig
          4. HBase
          5. Sqoop (HadoopRDBMS)
          6. Zookeeper
          7. Impala
          8. Accumulo
    2. Bulk Synchronous Parallel Model
      1. Apache Hama
    3. Pregel
      1. Apache Giraph
        1. Bulk Synchronous Parallel Computations for processing Graphs  
    4. Stratosphere
    5. Spark
      1. Spark Streaming, MLlib, GraphX, Shark
    6. Storm
    7. Percolator
    8. Dremel

    Artificial Intelligence
    1. Language Processing
      1. Statistical
        1. Information Retrieval & Web Search
          1. Lucene, Nutch, Solr
        2. Information Extraction
      2. Natural
        1. Parsing
    2. Adversarial Search
    3. Constraint Satisfaction
    4. First Order Logic
    5. Planning
    6. Probabilistic Models: Bayes, Markov

    Data Science & Analytics

    Data Mining
    1. Data Warehouse & OLAP
    2. ETL

    Big Data
    1. Hadoop

    Machine Learning
    1. Inductive Learning
      1. Decision Tree
      2. Ensemble Learning
    2. Statistical Learning
      1. Bayes
      2. Neural Network
        1. Deep Learning
      3. SVM
    3. Knowledge Based Learning
      1. Explanation Based
      2. Relevance Based
      3. Inductive Logic Programming
    4. Reinforcement Learning
    5. Computational Learning Theory
    6. Machine Learning Library
      1. Mahout
      2. scikit-learn

    Numerical Algorithm


    1. MySQL
    2. SQLite

      1. Mongodb (Document-oriented)
      2. Couchdb (Document-oriented)
      3. Cassandra (Distributed)
      4. Redis (In-memory)
      5. Riak (Dynamo, key-value)
      6. HBase (Bigtable)
      7. Neo4j (Graph)
    1. Semantic Web, linked data

    Operating system (& Computer Architecture)
    1. Linux
      1. Loadable kernel modules
      2. Device Drivers Peripherals and Interfacing
    2. Android Internals

    Algorithms and Data Structures

    Data Structures
    • Structure all the data structures
    • Linear: Stack, Queue, Linked List, Heap, Binary Indexed Tree, RMQ
    • Tabular: Hashtable
    • Non-Linear: Rooted Trees, Binary Search Trees, Red-Black Trees, B-Trees

    • Computational Complexity
    • Dynamic Programming
    • Graph Algorithms
      • BFS
      • DFS
      • Topological Sorting
      • Strongly Connected Components
      • Minimum Spanning Tree
        • Prim
        • Kruskal
      • Single source shortest Path
        • Dijkstra
      • All Pairs Shortest Paths
        • Floyd Warshall
      • Maximum Flow
        • Maximum Bipartite Matching
    • Backtracking
    • Greedy Algorithms
    • Divide & Conquer
    • Number Theoretic Algorithms
    • Computational Geometry
    • Matrix Algorithms
    • Algorithmic Game Theory
    • Linear Programming
    • Topcoder Algorithm Tutorials

    Mathematics & Theory
    1. Combinatorics
    2. Probability
    3. Number Theory
    4. Linear Algebra
    5. Graph Theory
    6. Automata Theory

    Software Engineering

    1. Agile

    1. Automation, Increased productivity
    2. Testing
      1. Unit Testing
      2. Integration, Functional, Load, Performance Testing
    3. Build & Continuous Integration
      1. Maven
    4. Version Control:
      1. Git
    5. Quality Metrics
    6. Issue Management

    Computer Architecture

    1. Special purpose processors: GPU, DSP, SIMD, FPGA


    Personal Notes On Physics [Unofficial]

    • Secondary Units 
      • Depends on other units through equations 
        • Not accurate – the equations were formed a long time ago and themselves are not accurate. 
          • Examples
            • Faraday’s Laws
              • Magnetic Flux [Unit – Weber] – Electromotive force [2]
        • Other units are defined in terms of Fundamental Units [1].
        • Inaccuracy in equations  
          • => Propagates to (secondary) units.
          • Equations are only approximations and we are inventing better and better approximations with time. 


    1. Fundamental Unit
    2. Weber_(unit)

    Personal Notes On 3D Printing, Additive Manufacturing [Unofficial]

    • Complex Shapes
    • Mass Customization
    • Scan – Print 
      • Bio-parts
      • Applications in Archaeology 
    • Printing circuits on Silicon 
      • Ultraviolet laser  
    • Organ Printing
      • gel
    • Microscale 3D Printing [1]
      • Multiple materials
      • “Integrating form and function”
        • Printing Functional Materials 
        • Electrical, Mechanical, Optical Properties
      • Applications
        • Cyborg parts
        • Artificial Organs
        • Bioprinting
          • Inks
            • Different types of Cells
            • Materials that form the matrix
    • Novel Materials
      • High-throughput Computational Materials Design
      • Combinatorial and Computational Chemistry
      • Nanotechnology
    • Bioprinting
      • Challenges
        • Models of tissues
        • Scanning? 
          • MRI – resolution not enough to scan and find out how cells are organized. 
        • Lack of a Photoshop 
          • Editing – Moving cells around
        • Cells not dieing from pressure while coming out of ink-nozzles 


    Personal Notes On Clojure [Unofficial]

    Future Official Posts: 
    • What makes Clojure different
    • Clojure as a Lisp
    • Clojure for parallel programming 

    Uniform syntax

    • forms

    In other languages, there is restriction on the type of parameter. In C, only variables and pointers. In Java, only primitive and reference types. In functional languages, values and functions. There is no such limitation in Lisps & Clojure.

    Uniform Syntax

    First Class Functions

    Code as Data

    List Datatype – fundamental 

    • cons, first, rest; OOP languages – references to Objects

    Tree structured execution. No syntax.

    Data Abstraction – functions on lists

    Dynamic Naming?

    Forms, Uniform Syntax – Metaprogramming, Syntactic Abstraction, Parameter

    Code have same structure as Data (cons, first, rest)

    Execution model – functions working on data

    Data Structure, Lots of functions

    “Seq” abstraction

    Datatype and Protocol


    Compound Data – Data Abstraction – with Sequence

    (No need for a Class template.)

    Higher Order Function (Control Abstraction) on Sequence

    Common pattern of Data access: first and recursive rest on Sequence

    Concurrency support

    Functional programming

    • Localize thinking space
    • Localize testing
    • Easily parallelizable

    In languages with non-uniform syntax, one has to define macro for each type of sentence. But Clojure, being a Lisp and having uniform syntax (sentence), doesn’t have that sort of restrictions.

    Uniform Syntax, Forms
    Code as Data

    Programmable Programming Language

    Creation of abstractions

    • Functional 
    • Control
    • Data
    • Class
    • Syntactic

    Other languages: Data or Function
    Clojure / Lisps: Data or Function or Expression (Forms)

    Function: Defined execution model.


    Large scale development? Reusable libraries and framework? Real world modeling?

    Each of the high level functions can be seen as taking inputs and returning output using the same recursive “list” model – functions working as data processors. Study.


    • Efficiency?

    Clojure reader

    Personal Notes On Go Programming Language [Unofficial]

    Notable Features of Go Programming Language

    • Support for Concurrent Networked programming (designed with modern trends in mind; others – Unicode support) – high level libraries for Concurrent Networked programs – feels like dynamic interpreted languages – even better
    • OO? interface? Seems to discourage complexities of OO Java, C++, Design Patterns. One of the design goals – Clutter free – you write code and it does stuffs – removing “incidental complexity”. More suitable to modern developers – Agile development; small teams using open source libraries and frameworks to build great products.
      • Interface

      • Struct
    • Support for Functional programming
    • Fast compilation – dependency graph
    • Pointers. Allocation – new, make. Systems programming. 
    • Strongly typed. Less Runtime errors. Efficient.
    • Garbage collected.
    • Concise syntax 
      • Readable code
      • Type inference 
      • Semicolon-less etc. 
      • Data Structures, Built-in Libraries – feels like dynamic interpreted languages.
    • Open source projects make languages popular these days. Seems to be good at that too.
    • Three design goals – the goods of Strongly typed popular Languages that feels like Dynamic Interpreted Languages with modern requirements in mind so that it is easy to write concurrent and networked programs.
    • Rob Pike, Ken Thompson (C, UNIX) in the design team among other notables.
    • Modular Code.
    • Less is more. You can keep everything in your head. (Lisp philosophy – The whole language is out there all the time.)
    • Panic – recover (in place of Exception Handling)
    • Concurrency
      • Goroutine, Channels (Unix process-pipe, lighter), Mutex lock-unlock, Atomic

      Operator Overloading
      Object-based / Protoype-based Programming

    Rob Pike:

    • composition and coupling
      • interfaces
      • concurrency gives us the composition of independently executing computations.
      • embedding