1

Typically every computer science major begins with either C C# C++ java or python , creating so much abstraction from the hardware which just loads your mind with questions that remain unanswered.When ever i program something i always think of how the under lying stuff is working.They never explain how and where software meets the hardware.Why are they keeping students away from the hardware. I think a cs graduate without knowing the underpinning of a computer should not be considered a cs graduate as opposed to being a software engineer a computer science major relates to everything that is a computer that includes the theoretical stuff and a little bit know how of computer hardware. Instead of teaching this stuff and assembly as a language in the first semester they teach you java or C++. Could not speculate on why this is so.

Comments
  • 0
    Got to disagree with the software engineer comment, I'm a software engineer and architect and I have to know how everything operated from the UI to the hardware
  • 1
    Well, I wouldn't want to teach students that may never have programmed anything Assemlby or C. There is just too much they need to take care of that can crash or break the OS/program. Memory allocation, threading etc are all taken care of in more abstract languages like Java or Python. Their syntax is easier to understand and the language can be teached easier than Assemlby. And one of the most important things is, you can't write programsthat you need in Assembly, whereasJavaorPythoncanbeuse to
  • 0
    C is not a far abstraction from the hardware but no Comp Sci student should ever graduate without Assembly and Compiler Theory imho
  • 0
    @bluescreen well because you are an architect :)
  • 0
    @SirWindfield

    Why not push them hard on the very first day they join as a cs student. The real computation begins with machine code and ends at the assembler.What's the fun of hiking if you drop down on the top of the mountain from a helicopter and then move down towards the base why not climb up. I agree with you that it would make things hard for freshmen but this under my opinion is the proper way a cs course should be taught , starting from the ground up.

    The comment continues ..... see below
  • 0
    @SirWindfield

    Many students enroll in a cs program because they need these questions answered :

    a) What and how are different circuits combined to form a computer.

    b) How do they make electrons(ultimately) do what they want them to do.

    c) What the hell is an operating system and how such a large system is managed

    d) What is the magic behind the command line window.

    e) The most famous question. How do they hack into different systems.

    Later when they jump into the course the following multi-part question arises

    f) How do they make compilers , interpreters , VMs , Assemblers , Operating systems , Programming languages and hardware drivers.

    Then if they are satisfied with these questions. They can work on newer technologies with as much abstraction from the hardware as necessary.
  • 0
    @SirWindfield

    Briefly if i were to design the course curriculum it would be as follows:

    a) Teach them the very foundations of computation and different theories associated with it in a great depth .

    1) Computer architecture
    2) Computer organization and assembly language
    3) Compiler theory
    4) Operating systems
    ........ etc

    b) Newer technologies and higher level programming languages.At this stage abstraction makes sense.
  • 0
    @With-A-Spirit lol I thought the discussion was about school the whole time. Just... Ignore me and let me with my stupidity alone in the corner :)
  • 0
    @SirWindfield

    haha well your idea is not bad you could implement this curriculum at school level
  • 0
    @With-A-Spirit well, still, I don't think that people in 8th grade understand assembly lol
  • 1
    @SirWindfield No a young mind is better than an old one :)
Add Comment