|
IMHO CS, software engineering and computer programming are very different but closely related fields. Each field focus and work on different (but complementary) set of activities in order to efficiently solve a computation-based automation problems. Based on the scale and complexity level of software artifacts, you'll see an individual, a small team or very large team are working on a given challenge/problem[1]. CS is, with mathematics as its foundation, focused more on the abstract and computational aspects[2] of a computational problems/challenges. As expected, CS solutions are usually very generic and independent of any specific programming language, it presents its solution in abstract forms and along with some code (written in some programming language). From CS's point of view, the coding part of its solution is primarily[3] for demonstrating that the solution of a specified problem is computable and efficient (for some practical purpose) and can be verified independently if needed. Now, computer programming languages are just one of the tools which helps us write those codes to "communicate" our solutions to computers and fellow programmers (who, as part of the team, need to understand in order to help developing and maintaining the software program). And, there're other alternative programming languages available which practically does the same job (though some of them are more appropriate and suitable than others, due to reasons/concerns outside the scope of a particular programming language[4]). Having said all the above, I think I understand the core of the problem(s) you (and students in similar position as you) described here, in your post. I think I've faced similar challenges while trying to understand some non-CS course (for example, accounting and finance). Being new to any field of STEM/business/..., it's easy to get pulled into non-important areas of studies instead of focusing on the core ideas/concepts of the course. And I believe it's always course instructor primary responsibility making sure that core concepts/ideas are made very clear at the course and individual lectures level and, similarly, corresponding supporting concepts/activities which make up the course and its core concepts. NOTE: I've few more thoughts on the subject; however, I think, my current post is already getting too long so I stop this post, at this point. --- [1] - Btw, as you may already know, team size alone doesn't indicate that they're working on a easy or difficult problem. Sometimes it's just a consequence of some financing/time constraints or inefficient team management. [2] - For example; data model, data structure and algorithm. [3] - Other benefits are secondary and can be considered as bonus. [3] - Reasons/concerns related to either CS or software engineering. |