I just think when you're learning how to use lists and hash tables, you're learning how to abstract, decompose, solve problems, which is the 'science' part... when you're learning about pointers, also, but the emphasis is more learning about the 'computer' part .
If you want to do 'computer science' or engineering, eventually you have to learn both.
But for a beginner, who might end up just casually coding as part of another discipline, or wants to understand computers as part of a liberal arts education and never goes past the first language, I think the higher level abstractions are a better place to start. (And the languages are a little gentler)
If you want to do 'computer science' or engineering, eventually you have to learn both.
But for a beginner, who might end up just casually coding as part of another discipline, or wants to understand computers as part of a liberal arts education and never goes past the first language, I think the higher level abstractions are a better place to start. (And the languages are a little gentler)