Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
Get HideMyAss! VPN, PC Mag's Top 10 VPNs of 2016 for 55% off for a Limited Time ×
Education Government Politics

Treat Computer Science As a Science: It's the Law 219

theodp writes: Last week, President Obama signed into law H.R. 1020, the STEM Education Act of 2015, which expands the definition of STEM to include computer science for the purposes of carrying out education activities at the NSF, DOE, NASA, NOAA, NIST, and the EPA. The Bill was introduced by Rep. Lamar Smith (R-TX) and Rep. Elizabeth Etsy (D-CT). Smith's February press release linked to letters of support from tech billionaire-backed Code.org (whose leadership includes Microsoft President Brad Smith), and the Microsoft-backed STEM Education Coalition (whose leadership includes Microsoft Director of Education Policy Allyson Knox).
This discussion has been archived. No new comments can be posted.

Treat Computer Science As a Science: It's the Law

Comments Filter:
  • sTEM (Score:5, Insightful)

    by roman_mir ( 125474 ) on Tuesday October 13, 2015 @09:00AM (#50716747) Homepage Journal

    It is Science, Technology, Engineering, and Mathematics, I think comsci qualifies for the last three but not for the first one and I have a comsci degree.

    • Re:sTEM (Score:5, Interesting)

      by jellomizer ( 103300 ) on Tuesday October 13, 2015 @09:10AM (#50716803)

      There is a wide difference on how computer science is taught across many institutions.
      In My college Computer Science was combined in the Department of Math, Physics and Computer Science. So Computer Science was taught in more of Mathematical and Scientific method. Encouraging taking the scientific method to help solve problems.
      1. Identify the question you want to solve.
      2. Offer a Hypothesis on how to solve it.
      3. Experiment (writing code), and going back to #2 if it doesn't work.
      4. Offer your Theory as your solution.

      In class our peers may review some of our solutions and offer feedback, such as stating inputs of X, Y, Z may cause it to fail. Or applying Discrete mathematics to prove that it does or doesn't work.
      While there is some talk about the technology and engineering principles, it was mostly Science and Math. for my version of Computer Science.
      I have dealt with other students from other schools who said Computer Science was Engineering Lite, others where it was Just computer engineering under the Computer Science name. And others where it was just focusing on the technology and not as much the principals.

      My Computer Science classes focused a lot more on Big O performance, while other students Never heard of it.

      Computer Science for the Most Part seems to be a combination of STEM all with different levels of degrees.

      • Re:sTEM (Score:5, Insightful)

        by RabidReindeer ( 2625839 ) on Tuesday October 13, 2015 @09:45AM (#50717013)

        There are actually 4 aspects to software design and implementation.

        1. Scientific: The discovery, proof, and design of algorithms. An algorithm is a basic set of rules to accomplish a task, and although more than one algorithm might accomplish that task (for example, sorting), the algorithm considered as a "black box" is invariant as to functionality. This is true science, with a mathematical slant.

        2. Engineering. The ability to locate appropriate algorithms for a given task from the "literature" (speaking abstractly, since traditional printed textbooks are only a small part of the resources most of us tap these days). And to determine which algorithms are optimal for the specific project at hand.

        3. Creative. This is the part Management hates. Ideally, software could be constructed by employing automated processes. In reality, there's almost always a creative aspect, and creativity is something that, so far, requires human beings. You can give 2 people an algorithm and they can implement it in 2 entirely different ways. Some of which are easier to read/maintain than others. Some of which are more flexible. Highest marks (in my book) go to implementations that are compact, readable, efficient, reliable (including fail-soft) and adaptable. I can name some sterling examples of such code. Low marks (again, my book) go to crap that's poorly-documented, ill-organized, unreliable and inflexible. Experience has taught me that if code has one virtue, it often has more, and, alas, the same thing goes for faults.

        4. Mechanical. Code grinding. No matter how artistic a software project may be, there's just a certain amount of underlying concrete and rebar that demands less in the way of creativity and more in the way of just plain uninspired grunt work. If you're going to employ monkeys on a project, this is the part - and the only part - where monkeys should be employed. Don't undervalue them, no amount of inspired mathematical architecture and engineering can survive a rotten foundation. Although if we have a fault in that area these days its that the wallpaper-and-panelling crowd is valued more than the flooring-and-wall-stud group.

        Of course, getting a project implemented is only one phase, even though it's where the ball gets built and started rolling. Other aspects not covered here include the support and maintenance, and the requisite planning and budgeting to ensure that the project continues for as long as it's needed and doesn't get hammered when IE8 support is dropped by Microsoft or some similar internal or external upset to the scheme of things.

        • Yes! And this is why I hate when people equate computer science or software engineering with coding. Someone who considers themselves a 'coder' is only suited for #4, and possibly #3 in rare cases.

        • I hope someone mods you up because I've been asked by high-schooler's "what's the difference between Computer Science and Computer Engineering?" and I've answered in pretty much the same way, except your answer is better. I'd like to add that on top of what you've written, there are a lot of other tasks/skills/jobs that go into getting successful software products out the door. E.g., Product Owners, Scrum Masters, Build Team, Test Team, Customer Engineering, etc.

      • by T.E.D. ( 34228 )

        In My college Computer Science was combined in the Department of Math, Physics and Computer Science. So Computer Science was taught in more of Mathematical and Scientific method.

        That's a nifty theory on paper. However, if you got an accredited degree then you had the same set of core courses with pretty much the same material in them I had for my accredited CS degree from an Engineering school. That's what accreditation means.

        The only serious difference would have been in the other courses you took. My engineering school also required two semesters each of Chemistry, Physics, and Calculus (from the Engineering School. Not the easier versions the Liberal Arts folks took). Someone

      • Do you consider stuff like research in quantum computing to be "Computer Science" ? How about more efficient compression algorithms, or encryption/decryption work? What is the difference in your mind between a degree in "software development" vs "software engineering" vs "computer engineering" vs "computer science" ?

      • My Computer Science classes focused a lot more on Big O performance, while other students Never heard of it.

        Any university that claims to teach computer science without teaching Big O should lose its accreditation.
        Big O is fairly important.

    • It is Science, Technology, Engineering, and Mathematics, I think comsci qualifies for the last three but not for the first one and I have a comsci degree.

      Computer science is largely a branch of mathematics which is generally considered a formal science [wikipedia.org].

      • Don't believe everything you read on Wikipedia. Math is not a science---it's a philosophical paradigm. There are also some very important differences between science and mathematics because of this. For example, in mathematics, a "absolute" proof can be obtained without empirical evidence.

        The concept of a "formal science" is simply a long-winded way of defining an art or discipline. It doesn't make things into a science just because someone says it is.

        Also, there is a good smell test to use: If you nee

        • Don't believe everything you read on Wikipedia.

          The link to wikipedia was for your convenience. The accuracy of my statement stands as computer science IS a type of formal science. This is to differentiate it from an empirical science.

          Math is not a science---it's a philosophical paradigm.

          Had you bothered to read what I linked to you would have understood the difference between a formal science and an empirical science. Mathematics and computer science largely fall under the banner of formal sciences though they often have a tight relationship with and are used in empirical science investigation.

          The concept of a "formal science" is simply a long-winded way of defining an art or discipline.

          Though I

          • Well, if you want to redefine science to suit your needs, then, sure, it's a science.

            By the way, what is your definition of science, and how is it different than any other philosophical paradigm?
            By your reasoning, one could easily make a convincing case that accounting is a "formal science" unless you want to arbitrarily hold "formal sciences" to include just what you deign to be a science.
            Anyhow, all empirical science boils down to Physics, and many physicists use Mathematics as a tool to assist in creatin

            • Well, if you want to redefine science to suit your needs, then, sure, it's a science.

              Not my definition. A science is any systematic enterprise that follows the scientific method to build and organize knowledge. Nothing more, nothing less. If your activity does not utilize the scientific method then it is by definition not science. What we typically refer to as science is what I (and others) called empirical science.

              You are getting WAY to wrapped up in the word science and failing to grasp my point. I'm not arguing that math is a science in the typical use of the term or under my defini

        • Correction - if you add "science" to something, it's fairly new and probably not yet mature. There are fields of science with old names (physics, astronomy, chemistry), and following that you put -ology at the end of something to name a science (biology, psychology). Somewhere in the Twentieth Century, we dropped the "-ology" suffix and substituted "science".

    • I have a computer science degree too. I guess you could say the science part of computer science was math instead, but by the time you've gone down that path I think you've thrown almost all of science into the math category. I think the problem is that we train people in a scientific field and almost all the jobs fall firmly in the engineering definition and we don't have any terminology to distinguish between applied and non-applied computer science. I'd say the folks working in quantum algorithms are
      • but by the time you've gone down that path I think you've thrown almost all of science into the math category.

        That's not really true. If you happened to be locked in from birth and somehow attained high intellectual competence anyway, no amount of math would connect your random fantasies about what the world around you - if you could perceive it - might be like into the actual objective reality.

        • The argument is that computer algorithms are mathematical constructs with a few computation specific constraints. Relativity is just as easily a mathematical construct with a few physics specific constraints (like being connected to observable phenomenon).
      • Quantum algorithms: sounds like applied math and physics.
        Of course, all STEM ultimately becomes math & physics at some level.

    • STEM is a concept that got out of control.
      The problem was schools were not giving enough effort in Science and Math. (Technology and Engineering in my mind are practical executions of Science and Math, but I guess S&M wouldn't be a good name)
      So this was the Degree Requirement for A High school graduation (1 credit is a full year of classes)
      4 Credits of English
      4 Credits of History/Social Studies
      2 Credits of Math
      2 Credits of Science
      3 Credits of Foreign Language or 2 Credits with 3 Credits of Art and Musi

      • by PPH ( 736903 )

        I would have took away the 2 credits of history and put them in Math.

        But then you run into Bubba the jock. Who expects to move up through academia and receive the credentials necessary for a leadership roll in society. "I was told there would be no math."

    • I have a degree and have been doing computer "science" for nearly 20 years now. I would be happy if it would simply be Technology and Engineering most of the time, let alone Science or Mathematics.

      Most of the time the code I see could be better described as "art".

      • by Bengie ( 1121981 )
        Code that technically works is the worst kind of code. Don't breath, lest you topple over the jinga tower. Many people's code looks like a random walk through a maze. They eventually make it out, but there was no planning involved.

        Insult to injury is many times the code is also technically follow best practices. It's so hard to explain to these people that even if the code technically works and follows best practices, it doesn't mean it's good code. It just means it's better code. Following the letter of
    • It is Science, Technology, Engineering, and Mathematics, I think comsci qualifies for the last three but not for the first one and I have a comsci degree.

      Beat me to it. It's a mixture of engineering, maths, and art (we don't have technology degrees here so I'm not sure what that entails), but very little science. Like other fields that feel the need to put "science" in their name (for example political science), it mostly isn't.

      • It is Science, Technology, Engineering, and Mathematics, I think comsci qualifies for the last three but not for the first one and I have a comsci degree.

        Beat me to it. It's a mixture of engineering, maths, and art (we don't have technology degrees here so I'm not sure what that entails), but very little science. Like other fields that feel the need to put "science" in their name (for example political science), it mostly isn't.

        It *should* be engineering, but it isn't. It's hard to qualify it as science as it's more like mathematical theory than anything else.

        That said, CompSci should be split to have a formal engineering track for 99% of students, and a formal research/theory track for those that want to just stick to academia and related research. The software world would be better for it since a true discipline to how programs are written could be brought about instead of all this bs'ing over how it's art.

    • After looking at the House summary, it reads like computer science wasn't just left out as an official science, it reads that computer science wasn't officially any of the four. I didn't read the full bill.
    • It is Science, Technology, Engineering, and Mathematics.

      In California schools, it is STEAM. Science, Technology, Engineering, Art, and Mathematics. They added "art" to get more girls interested. It seems to be working. It is pretty neat to see kids using a 3D printer in art class.

    • Computation lies at the foundations of mathematics where I did my Ph.D., and compsci is the discipline of making it practically useful. But it is pure mathematics and electronics more than anything else. The science part is physics, and while that is often underemphasised, you cannot get far in modern practical computing without relying on consequences of physics. Ultimately, however, Maths+Logic+Physics+Computation need to be understood and taught as an integrated whole, and the rest of science built on to

    • As one of the authors of SICP said at the start of that videod course, Compsci is not about computers, and is not a science. I am slowly building a better nomenclature. It begins with two disciplines: turing mechanics and lambda theory. The first is about irreversible physical manipulations, the second is about supplying humanly intuitive meaning to those manipulations. I find it strange that having so loved infinity and set theory as a student, I am now compelled to be ever more a finitist.

  • Huh? (Score:5, Interesting)

    by Rei ( 128717 ) on Tuesday October 13, 2015 @09:01AM (#50716757) Homepage

    Where does it say that "computer science must be treated as science, by law"? It declares computer science to be part of STEM. STEM does not simply mean "science" - science is only the "S" in STEM. STEM means "Science, Technology, Engineering, and Math" There's nothing inappropriate about computer science being taught in that grouping.

    • It must of been written by my Third Grade teacher, who for the most part really messed me up and my friends as well, with her barbaric teaching styles.
      There was one of my friends in her class, he was a really nice kid, however had some learning disabilities so some concepts he didn't catch too well. He was having problem with word problems which require subtraction. He asked for help, She was kinda big on embarrassing students so a lot of us heard this.
      Teacher: You are subtracting a Larger number from a sm

      • by Durrik ( 80651 )
        I wonder if I had the same teacher. I remember getting told you couldn't subtract a big number from a small number. And then getting detention because I used the calculator I got as a prize for being the most improved in Math by that same teacher to show you could. Apparently the calculator was malfunctioning. That completely messed me up when my family moved and I got laughed at when I insisted you couldn't subtract a large number from a small one.

        Or maybe its just the elementary school way of teachi

        • Working in education, I see a lot of teachers who are incapable of doing math they are teaching (K-6), beyond the basics of + - * /

          And by that I mean, they have to use a calculator to do what I would consider "simple math" in their head. You know 97 - 45 = ??? type stuff. They just can't do it without writing it down or breaking out a calculator. You see their peers at McDonalds having trouble making change.

          Now when it comes to Kardashians or whatever, they can run play by play for the last three years. It

    • Good grief. Read. It's about funding and promotion:

      "The bill strengthens science, technology, engineering and math (STEM) education efforts and expands the definition of STEM to include computer science."

      "Computer science is also added as a subject for the scholarship program."
  • by houghi ( 78078 ) on Tuesday October 13, 2015 @09:04AM (#50716781)

    If it is backed by those big names and billionaires, I am afraid what the real reasons are.

    We are at a situation where we think that people who are not us are fighting our battles, because they (partially) are now the same as ours.

    If Microsoft, Google, Apple or any other company gets something done ine politics, they do it for them, not for you.

    Just think and go to https://www.isidewith.com/elec... [isidewith.com] so you can decide with you mind, not with your heart or balls, who YOU think might be right for your future.

    • Don't worry. Was signed by Obama, so all is golden.
    • Re: (Score:2, Insightful)

      by Anonymous Coward

      Programmers are too well paid for the boards of the corporations, costs are far higher than they want. They're all working together to reduce their IT payroll costs and have been making concerted efforts to drive remuneration down since the late 80s. It's not limited to Google, Apple, Microsoft, et al. The entire Western world's govts are pushing programming on pre-teens attempting to make coding little more than a factory job of the 70s. Unfortunately for them, the target keeps moving as new technology and

  • by T.E.D. ( 34228 ) on Tuesday October 13, 2015 @09:10AM (#50716809)

    Perhaps its different these days, but when I was studying CS back in the 80's, pretty much every accredited program in the US was either part of its Uni's Math Department, or its Engineering Department.

    So perhaps people had trouble making up their minds if it was a kind of Math or of Engineering, but either way it should already have been covered in STEM.

    • At my university in the late 90's, computer science was its own department in the College of Liberal Arts and Sciences (we had a separate College of Engineering). It was only one floor down from the mathematics department, though, and most of my professors treated it as a branch of mathematics. I know other schools, especially the more technology-focused ones, grouped it with the engineering departments.
    • Faculty of Science, department of Computer Science. But it's true there was an overlap with Faculty of Engineering, whereas the Bio Engineering (whom actually fall under Engineering) were mainly running around the Faculty of Science building :-)
    • by vovin ( 12759 )

      Before 'computer science' was a thing people were being recruited to work on computers out of primarily mathematics and engineering schools. Ideally you had a degree in both math and engineering (or physics). As the computer industry and software businesses bloomed colleges and universities designed computer oriented curriculum that included some math and engineering pre-requisites. Later when the software business exploded the demand for CS degrees pushed universities to find ways to get more student throu

  • ... isn't. :p

    (Old academic joke)

    -Chris

  • by Chrisq ( 894406 ) on Tuesday October 13, 2015 @09:29AM (#50716891)
    Computer science pretty much is a science. Not your coding classes, computer technology training, etc, but real computer science is very much a science. Of course all courses include some coding and computer technology, and just as you'd expect someone with a Chemistry degree to be able to do the work of a lab technician some one with a CS degree will be able to code and operate computers -- but there is much more than that.
    • by gnupun ( 752725 )

      Computer science pretty much is a science. Not your coding classes, computer technology training, etc, but real computer science is very much a science.

      But are computer programs science, or technology? Is a word processor, spreadsheet, power point presentation tool science or technology? I say it is technology, not science. Science is something discovered from nature (like atoms, magnetism, gravity etc.) whereas technology is artificial (not from nature), man-made artifacts created using science and math to

      • But are computer programs science, or technology?

        The process of deriving the ideas used to build programs is science. Applying those ideas to actually construct programs is engineering. The programs are technology.

        • by gnupun ( 752725 )

          The process of deriving the ideas used to build programs is science.

          How is it science when you don't derive it from experimenting on nature? If I create a wooden shape that is a union of random geometric shapes, is that natural or man-made?

    • No, I disagree. Science is empirical, and Computer "science" is rational. Computer science produces truth by means of mathematical proofs, not by observation and measurement. Mathematics by the same token is not empirical and not a science.

  • Being a "Computer Scientist" I have to say that I consider my profession more of a trade more in line with a plumber or electrician. Sure there are more scientist computer scientists, but they mostly work in universities. If you are a computer scientist and disagree please say so.
  • by X10 ( 186866 )

    I have a degree in astrophysics. I work in AI. I don't have an opinion about the issue being discussed.

  • There are really thee parts to what most people think of as comp sci - as I see it anyway.

    1) Computer Engineering - The design and architecture of machines that do computation
    2) Software Engineering - The design of computable algorithms for solving specific problems.
    3) Information Theory - Analysis and classification of datums specifically the transmission, processing, utilization, and extraction of information from them. This usually feeds the 'specific problems' the Software Engineering guys are trying t

  • Speaking as an outsider looking in, and based on the stories that frequently seem to come out of the US, or at least certain parts there of (creationism, global warming deniers, etc) how about treating science as a science first? :P

The reason computer chips are so small is computers don't eat much.

Working...