[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)