[HN Gopher] A Data-Centric Introduction to Computing
       ___________________________________________________________________
        
       A Data-Centric Introduction to Computing
        
       Author : oumua_don17
       Score  : 39 points
       Date   : 2021-08-22 08:41 UTC (1 days ago)
        
 (HTM) web link (dcic-world.org)
 (TXT) w3m dump (dcic-world.org)
        
       | ngcc_hk wrote:
       | How does this compared with using say lisp and relational data
       | ... strange to ask but to read hundreds of pages using a new
       | language pyret need some motivation.
        
       | pphysch wrote:
       | 1. "Data-centric"
       | 
       | 2. Uses Python and a Python/Racket-derivative language (Pyret)
       | exclusively
       | 
       | Frankly, I can't reconcile "data-centric" programming foundations
       | that completely gloss over the dirty realities of bits and
       | pointers--the real foundation of data and data structures.
       | 
       | It's extremely ironic to me that the _first_ section of the body
       | is titled *3.1 Motivating Example: Flags*. Flags? Like bits, bit
       | flags, bools, _the simplest form of digital data_ , right...!?
       | 
       | No, it's literally about building an OOP-style abstraction of
       | national flags.
        
         | ssivark wrote:
         | It's "data humans might be interested in" rather than "data as
         | we happen to implement using semiconductor circuits".
         | 
         | "Data-centric" is an overloaded concept that means different
         | things to different groups of people (all legitimate).
        
           | pphysch wrote:
           | Let us be honest: this textbook is the result of academic
           | inbreeding and the career ambitions of its authors.
           | 
           | Find me a single job posting that involves both "data" and
           | programming (including relatively complicated recursive
           | binary tree algorithms) yet does not rely on the barbarian
           | semiconductor or its vulgar bits.
        
             | thewakalix wrote:
             | Sure, all programming "relies" on hardware and low-level
             | languages, but that doesn't mean that a purely high-level
             | approach is useless. That's the point of abstractions.
        
         | dan-robertson wrote:
         | Clearly you and the authors have very different ideas about
         | what data is. But then it just feels like a pointless complaint
         | like complaining about an article for using
         | American/commonwealth/British spelling.
         | 
         | Presumably your actual complaint is about the structure and
         | pedagogical merits of the book, but then why not write that
         | instead of moaning about definitions?
         | 
         | For what it's worth, I disagree with you and I think there are
         | good CS books that don't really talk about bits or technical
         | details of computers (SICP is a famous example). I also think
         | that C style computer-fiddling doesn't really help to build
         | intuitions for modern computers as the models implied by C
         | don't really map to compiler output or to performance on real
         | computers--if you want to know about that, CS-101 is probably
         | the wrong place to go.
        
           | pphysch wrote:
           | A semester/year-long programming course that leaves students
           | with not the foggiest idea of what "byte" or "csv" or
           | "database" means has absolutely no business calling itself
           | "data-centric". Full stop.
           | 
           | "Algorithm-centric" is a far more accurate description of
           | what is going on in this book. And that's okay. Just not as
           | marketable.
        
         | nlarew wrote:
         | > bits and pointers--the real foundation of data and data
         | structures
         | 
         | Sure, if you're programming a database b-tree or other system
         | level application then these are important. Most developers do
         | not write that type of program. In fact, good higher order data
         | models abstract away implementation details like bits and
         | pointers so that you can focus on things that actually matter -
         | like your domain and what your data describes within it.
         | 
         | > No, it's literally about building an OOP-style abstraction of
         | national flags.
         | 
         | I'm not sure where you get the "OOP-style" critique. I think
         | this article does a good job of describing an expression-
         | oriented functional style - a natural pairing with a "data-
         | centric" paradigm. It doesn't even mention classes, mutable
         | state, this/self, polymorphism, encapsulation, etc.
         | 
         | This is an article for true beginners (it introduces number and
         | strings!) so it makes sense to use a real, tangible thing like
         | flags as an example. Yes _ national flags_, the real things
         | that 99% of people who don't program think of when they hear
         | the word flag.
        
           | pphysch wrote:
           | And yet these "data-centric" programmers are in for a world
           | of hurt and confusion when they crash into their first numpy
           | or psycopg2 import.
           | 
           | Better to start them with the actual foundations of what data
           | looks like, in my opinion.
        
         | FranzFerdiNaN wrote:
         | Let me guess: you learned programming in C and thus feel that
         | everyone should learn the same order of subjects?
        
           | pphysch wrote:
           | Almost; I "learned" with Java/Python for years then learned
           | with C.
        
         | BoiledCabbage wrote:
         | > Frankly, I can't reconcile "data-centric" programming
         | foundations that completely gloss over the dirty realities of
         | bits and pointers--the real foundation of data and data
         | structures.
         | 
         | "Bits and pointers" are not the real foundation of data. It's
         | voltages, chips and the chemistry & physics that support them.
         | 
         | Being serious though, all computing is an abstraction. Use the
         | appropriate abstraction for your domain. If your domain isn't
         | directly how the data is stored then don't start with the
         | physics, chemistry, chips, pointers and bits.
        
           | pphysch wrote:
           | The topic is programming, not electrical engineering.
        
             | beecafe wrote:
             | Its not called "programming" if it's at the level of bits
             | and pointers, that's just LARPing a compiler. Real
             | programmers work in Python, Ruby, PHP, Java, etc
        
       ___________________________________________________________________
       (page generated 2021-08-23 23:02 UTC)