Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Education Technology

Computer Studies w/o Excessive Coding? 255

Peterus7 asks: "I'm a student at the University of Washington, and I was planning on majoring in Computer Science or Informatics until I took Computer science, and I'm realizing that it's simply beyond me. I grew up with computers, and naturally I want to study a field that involves a lot of interaction between people and technology (mainly computers), but the Intro to Java class I'm taking now is driving me over the edge. Any suggestions for a technologically intensive field that doesn't require ungodly amounts of coding, or perhaps any general methods for surviving computer science courses for new students?"
This discussion has been archived. No new comments can be posted.

Computer Studies w/o Excessive Coding?

Comments Filter:
  • ECE (Score:3, Insightful)

    by glassesmonkey ( 684291 ) on Wednesday February 25, 2004 @06:54AM (#8384379) Homepage Journal
    Most Big-Ten schools have renamed their EE dept. to be called "Electrical and Computer Engineering"

    You could always try the EE route. Usually you need a few courses in intro. programming and maybe have to write some matlab code someday.
    • Re:ECE (Score:5, Insightful)

      by Anonymous Coward on Wednesday February 25, 2004 @07:30AM (#8384510)
      You could always try the EE route. Usually you need a few courses in intro. programming and maybe have to write some matlab code someday.

      Yes. If you go for ECE you'll be writing MATLAB code, but if the programming in CS is too tough for this guy, then EE definitely will. There are probably another three calculus classes to take before he can do ECE, and if programming Java is too tough for him, Calculus definitely will be. Nevertheless, the CE route (which still requires all that Calculus and probably still more coding than he seems willing to do) is more like what he wants, it seems. CE will be more about digital design of computers, but he needs classes like introductory java to be able to follow the examples in algorithms and data structures classes.
      • Re:ECE (Score:5, Insightful)

        by cybermace5 ( 446439 ) <g.ryan@macetech.com> on Wednesday February 25, 2004 @09:10AM (#8384932) Homepage Journal
        The coward is absolutely correct; CS is generally accepted as an easier major than EE. No EE major I knew, including myself, had even the slightest problem with the introductory programming class (which was C++ based). As an EE, you don't get any of the classes that really go into methods of generating algorithms and architecting code structures from top-level concepts to the tiny details, yet you end up having to use some of the most arcane languages in existence. Verilog, VHDL, AHDL, assembly for who knows how many different platforms, ABEL, MATLAB, SPICE; dozens of languages that may not necessarily be all that bad on their own, but every vendor has a different one. And that doesn't count the complicated mathematical structures you need to use to calculate the behavior of even simple circuits, semiconductors, signal processing, and electromagnetic waves and fields. With CS at least the majority of the concepts are language-agnostic and tie together pretty seamlessly from freshman to senior year.
      • Re:ECE (Score:3, Insightful)

        but if the programming in CS is too tough for this guy, then EE definitely will

        Too bad your comment is rated so low as it's probably true. The majority of people in my freshman year EE classes switched majors to Computer Science after encountering Physics and Math 101 -- I remember rooms going from standing room only first semester to mostly empty seats second semester! And a lot of those CS converts switched to Business after taking their first CS Math courses. Find what you really like to do. Life's to

    • Most Big-Ten schools have renamed their EE dept. to be called "Electrical and Computer Engineering"

      Actually, Washington is one of the schools where it's CSE [washington.edu] (Computer Science and Engineering) and EE [washington.edu] is another department.

      As for advice, find out what you're good at and what you like doing... and don't choose your major based solely on how much money you'll make when you graduate (there are many miserable lawyers because of this). Industrial Technology Education (ITED) is like a hands-on approach to usi

    • That is true. Virginia Tech did a similar thing with their EE department several years ago (round '98 or so.) Though what happened is that the department split into two closely related departments: EE and ECE.

      My experience in ECE there was that my time was split about 50-50 between doing hardware/electrical stuff and programming; though some courses were a mix such as microprocesser I. I really enjoyed the ECE college there.

  • Computer Science (Score:5, Insightful)

    by justinmc ( 710870 ) on Wednesday February 25, 2004 @06:55AM (#8384383)
    This sounds familier to me. I did a Computer Science degree in UCC (big Uni in Cork Ireland) and you would not believe the amount of people in my class who only realised what Computer Science was once they were in the course. A lot of them just wanted to 'do stuff with computers' and did not want to actually learn how to code, or build hardware etc. I guess the best example was when a class mate said to me - 'This class is stupid, we haven't even been thought how to use Windows or Excel'. I responded with: 'No, here we are meant to learn how to write the next Windows (O/S) or Excel (Applications). I finished the course in 1999 and got my Degree - and went into a job where no coding was required (Network Security). However I still find every Theory class useful. Example, I was on the Cisco Advanced Routing Course and the instructor was covering OSPF (a dynamic routing Protocol). He was of the opinion that no one could know what SPF was, but I knew this from my algoriths course in 3rd year. My advice to the poster is to understand what computer science is. If they want to do something with Systems and People, then a course like the BIS (Business Information Systems) course at UCC is useful. But if you really want to know the maths and theory of computers - I recommend Computer Science. Thanks Jay
    • by cperciva ( 102828 )
      No, here we are meant to learn how to write the next Windows (O/S) or Excel (Applications).

      Computer Science != Computer Programming. A good computer science program will have minimal coding requirements (just as much as is required to demonstrate the theory).
      • by PainKilleR-CE ( 597083 ) on Wednesday February 25, 2004 @08:24AM (#8384705)
        Computer Science != Computer Programming. A good computer science program will have minimal coding requirements (just as much as is required to demonstrate the theory).


        You have to understand a language well enough to figure out the examples given in higher level courses. Therefore, for most people, the first year or two of a CS degree is very definitely computer programming.
        • by cperciva ( 102828 ) on Wednesday February 25, 2004 @09:31AM (#8385055) Homepage
          You have to understand a language well enough to figure out the examples given in higher level courses.

          If higher level courses include *any* examples of code, they're not being taught properly. Pseudo-code (or even just pretty pictures) should be sufficient.
          • by jhoffoss ( 73895 ) on Wednesday February 25, 2004 @10:11AM (#8385343) Journal
            I agree, but this isn't how it works at most colleges in the real world. Colleges have industry at their door demanding well-educated graduates, and in CS this often means fairly proficient in C/Java/what-have-you. Granted, no one straight out of college can walk right into a developer job. But I took a software engineering course for my CS degree. Do you think that has ANYTHING to do with computer science at its core? Not a chance. But it makes for a better developer if I at leave have a clue what a development model is.

            I think nowadays, you'd have to be going somewhere like MIT or Cornell to get a *true* CS education, with high-level examples, pseudo-code, etc. and little actual coding.

            Of course, this is all my opinion.

          • by Vagary ( 21383 ) <jawarrenNO@SPAMgmail.com> on Wednesday February 25, 2004 @01:40PM (#8388203) Journal
            Guess what: when most of the potential CompSci teachers are going to industry, it doesn't get taught properly. For example: I love theory and I enjoy teaching, but half way through my Master's degree I realised that I'm not willing to put up with the bullshit required to get to a position where I have the opportunity to teach.

            And actually I'd have to disagree with you somewhat: higher-level courses should have purely theoretical lectures, but students should get the opportunity to implement those theories in labs. Labs in CompSci?! A novel idea, I know. It's almost enough to make it into a real science...
        • by cpex ( 601202 )
          i also agree the cs != programming but for a computer scientist code is the language you speak to precisely express your ideas. Just like being a lawyer is not speaking legalese, and being a doctor is not just about knowing all the names of our body parts and names of medicines. However a doctor who says "hey hand me the knifey thinging and hold that red squishy thing there behind the other red squishy thing and stop that red stuff from spraying all over" during surgery is not going to be a doctor for much
      • by Dixie_Flatline ( 5077 ) <vincent.jan.gohNO@SPAMgmail.com> on Wednesday February 25, 2004 @10:39AM (#8385534) Homepage
        I partly agree. I used to TA introductory courses to Computing Science, and the first thing I told my students is that if they wanted to be programmers, they should go to a different institution. We were in the business of making computing scientists.

        That said, the first year courses are all introductions to programming and programming concepts. You then take one more course in pure programming in your second year along with your logic and algorithmics classes. After that, you're expected to be able to pick up languages as you go. Classes in non-procedural programming (Lisp, Prolog), Object Oriented Languages (Java, Smalltalk), and Compilers (lex, yacc) all expect you to do a considerable amount of programming to cement certain concepts in your head. Even the algorithmics courses expected you to be able to come up with an algorithm and implement it.

        So, Computing Science is NOT the same as Computer Programming, you're right. However, the pure study of algorithmics and protocols and language without any practical element is nearly useless at the undergraduate level. Only as you get higher level degrees does it become truly possible to leave the computer behind and do all of your work on paper.
        • I should clarify that in my compilers class, we didn't study lex and yacc. They were tools that we had to use to help us write our compiler. In the other classes, we DID study prolog, lisp, java and smalltalk at the language level.
        • I partly agree. I used to TA introductory courses to Computing Science, and the first thing I told my students is that if they wanted to be programmers, they should go to a different institution. We were in the business of making computing scientists.

          Understandable, but a very ivory tower attitude.

          The reality is that the majority of your students are going on to be programmers, perhaps even software engineers, but they're not going to be computer scientists. This doesn't mean you shouldn't teach comput

      • Re:Computer Science (Score:2, Informative)

        by davechen ( 247143 )
        Well, I went to a pretty good CS dept (UC Berkeley) and we did a heck of a lot of coding. For the compiler class, we wrote a compiler. For the OS class, we wrote multi-threaded, producer-consumer code. For the graphics class we wrote a software renderer.

        You could avoid all that coding by doing more theory and hardware classes, but that would be pretty unusual.
      • So, I've got to ask -- where do you think programmers should come from, if not from CS? Yeah, it's possible to teach any b-school monkey to throw together Visual Basic widgets, but that's the kind of "programming" that leads to so many real-world applications being bloated and buggy. We need computer scientists writing code to ensure high-quality products.
    • by Sentry21 ( 8183 ) on Wednesday February 25, 2004 @10:30AM (#8385473) Journal
      Too true. In my computer information systems course, there were a few people who understood what programming was (even though they'd never done anything but copy javascript off tutorial websites), but most people were completely clueless.

      One girl asked me, the first time we were in the lab, 'Do these computers have HotMail?' I almost cried. A few weeks later, the fellow beside me asked me for help with a compile error that he couldn't figure out. I looked over at his screen, and saw the error. 'Missing semicolon on line 34'. I told him he was missing a semicolon on line 34 and off he went.

      People don't understand that computer science is computer work, not computer play. They signed up, most of them because they like chatting on MSN and want to make lots of money. They don't realize that there's a lot of work, thinking, and math to CS, and sometimes, it's just over their heads.

      --Dan
  • by kndnice ( 453079 ) on Wednesday February 25, 2004 @06:57AM (#8384394) Homepage
    i study cognitive science (specializing in computation and human-computer-interaction [hci]). this field is basically the abstraction of interactions but without doing hardcore programming.

    i started out as computer science and engineering and didnt like how it pigeon-holed students. cognitive science is a great field involving computer science, neuroscience and psychology.

    (MIT's media lab is a cogsci lab)

  • EE Info (Score:2, Interesting)

    by ezelkow1 ( 693205 )
    I am currently an EcE student at Purdue. Personally, i find the electrical sections of an ECE degree to be much harder than the programming elements, but thats just me. At least here, with a Computer engineering degree there is still a fair amount of programming that you have to do. 2 C courses, 1 course in ABEL (hardware programming), 1 Course in advanced data structure programming using C/C++, 1 Course in VHDL (integrated circuit design and programming), and those are just the ones ive gotten to. I be
  • I'm over in Sweden, and all I can say is that we've got the same problem here, for many people programming is the main stumbling block in their informatics studies. On the other hand, you can "get away" with very little programming here if you pick the right courses. Basically someone studying informatics at my uni only really has to learn and use programming for a total of maybe 10 weeks during the first semester, after that it's entirely possible to pick courses that don't include programming all the way
  • Sorry... (Score:5, Insightful)

    by DarkDust ( 239124 ) <marc@darkdust.net> on Wednesday February 25, 2004 @06:59AM (#8384402) Homepage
    Sorry, but you should learn something else. Really, if you don't take the time to learn programming (hey, be thankful it's Java and not LISP ;-) you should do something else.

    I think it's extremely important to at least understand the basics of "how is software built". And learning a programming language is actually a lot easier than learning a real language, and you can learn both if just sit down and practice, gawddamnit !

    "Opportunity is missed by most people because it is dressed in overalls and looks like work." - Thomas Edison
    • Re:Sorry... (Score:5, Insightful)

      by ajagci ( 737734 ) on Wednesday February 25, 2004 @07:33AM (#8384522)
      Sorry, but you should learn something else. Really, if you don't take the time to learn programming (hey, be thankful it's Java and not LISP ;-) you should do something else.

      No, he shouldn't be "thankful". Quite to the contrary. LISP is an interactive, dynamically typed language, which makes it great for introductory CS teaching. So are Python, Basic, Logo, Ruby, and many others.

      Java is a statically typed, compiled language with enormous libraries and messy, complicated development environments. That makes it a poor choice for an introductory course.

      I think it's extremely important to at least understand the basics of "how is software built". And learning a programming language is actually a lot easier than learning a real language, and you can learn both if just sit down and practice, gawddamnit !

      For someone who already knows programming, that's true. But these students are supposed to learn programming.

      Your argument actually supports what I'm saying: you should teach students programming in a language that is well-suited to the task of teaching and that doesn't burden beginners with irrelevant and complex features. You should also teach in a language that doesn't narrow the view students get of CS; sadly, Java is a one paradigm language, and a very limited paradigm at that. Once they have learned programming in a teaching language, as you say yourself, learning another programming language is easy.
      • Re:Sorry... (Score:3, Interesting)

        by phrasebook ( 740834 )
        You should also teach in a language that doesn't narrow the view students get of CS

        I agree. At my uni the very first programming class any CS/SE/CE student takes is done in Haskell, of all languages. I think a lot of people found it difficult to think in that language, perhaps because they had already used, or were expectig to use, Java or C++ or similar. I didn't much like it at the time but looking back, it was an excellent choice for an intro class. Touched upon a lot of concepts that I didn't see for
      • No, he shouldn't be "thankful". Quite to the contrary. LISP is an interactive, dynamically typed language, which makes it great for introductory CS teaching.

        Back in the day I tutored 1st year students doing scheme. It was good that they learned the functional paradigm early, and it was good that the amatuer hackers were on a par with the newbies in an unfamilar language, but The Pain, The Pain! The syntax is not newbie friendly, and finding bugs and misplaced brackets with them was very frustrating.
        • Scheme has (almost) no syntax. Maybe it the lack of syntax that is not newbie friendly.

          As far as misplaced parens, Emacs and show-paren-mode are your friend.
        • Sure, I agree: the syntax is a bit of a hurdle with Scheme, and the fact that there is no redundancy in its nesting invites errors. But there are good introductory programming environments for Scheme that pretty eliminate that problem. Furthermore, understanding Scheme syntax is in itself a useful learning experience.

          Java syntax may be a little more "robust", but it has its own problems, in that it contains a lot of ad-hoc syntactic constructs; and unlike Scheme, with Java programmers really have to lear
      • Re:Sorry... (Score:3, Insightful)

        by (trb001) ( 224998 )
        Java is a statically typed, compiled language with enormous libraries and messy, complicated development environments. That makes it a poor choice for an introductory course.

        On the contrary, that makes it an excellent language to learn with because you don't suffer from the "shooting yourself in the foot" syndrome. This is the exact reason why CS classes in nearly every high school while I was that age taught programming in Pascal...the compiler will catch the programmer assigning an int to a string the
        • Secondly, Java reads like English. Sadly, System.out.println is probably the most useful and complicated statement a beginner will learn, but look for any Java source and you can practically read, in English, what the code is doing.
          If you want English readability, go with Cobol. It was originally designed so that beancounters could program using their "language".
        • Ugh, Java is a terrible language to teach in. It's far more than is required. Because it's taught at a straight procedural programming language at the beginning to avoid confusing students, they pick up all sorts of bad habits and use the language very poorly once they get out of that class. It takes a while to retrain them to use Java properly and in the Object Oriented fashion for which it was intended.

          Pascal and Modula-2 are excellent teaching languages. Assembly, to an extent, is also an excellent teac
          • It's not Java's fault that it's taught as a procedural language. It's the teacher's fault for teaching it that way. They shouldn't be using it as an intro course.

            You're right on the rest it though. Teach something else first, teach Java for the OO course and more advanced stuff later.
        • Re:Sorry... (Score:3, Insightful)

          by ajagci ( 737734 )
          On the contrary, that makes it an excellent language to learn with because you don't suffer from the "shooting yourself in the foot" syndrome.

          In intro CS classes, programmers shouldn't write applications that are large enough for that to be a concern.

          This is the exact reason why CS classes in nearly every high school while I was that age taught programming in Pascal...the compiler will catch the programmer assigning an int to a string then testing it like a boolean.

          The reason high schools used Pascal
      • I TA'd a "Introduction to Programming for People Who Will Never Take Another Programming Course" last year and because the Computing Dept standardized on Java (I have yet to meet a Professor who admits to being in favour of that, interestingly enough) it was also taught in Java. Despite the language, they managed to learn some important basic concepts like functions (we called them "methods", of course) and control structures. Still, I feel guilty to this day that these students will never understand why th

    • Re:Sorry... (Score:4, Insightful)

      by noselasd ( 594905 ) on Wednesday February 25, 2004 @08:24AM (#8384704)
      Really ? There are thousands of things to do with a computer
      besides writing programs for it.
      * Administration, you don't really need much programming experience to administrer a large site of e.g. Active Directory controllers.
      * Network planning/engineering..
      * Application useage, e.g. modelling in Maya , 3D theory.
      • Re:Sorry... (Score:3, Insightful)

        by DarkDust ( 239124 )

        Really ? There are thousands of things to do with a computer besides writing programs for it.
        * Administration, you don't really need much programming experience to administrer a large site of e.g. Active Directory controllers.

        An administrator who can't write scripts (scripting counts as programming, IMHO) to automate task isn't worth the money in my world. Especially when managing large sites you won't get very far with just the GUI's provided by MS and third-party companies. Even more so when there ar

        • Re:Sorry... (Score:2, Insightful)

          by yod@ ( 21039 )
          to mention any decent self respectin admin better be able to tool through some C to fix a dumb compile error.

          Shell perl C at least a decent understanding..

          Make -- dunno how many times ive had to fix makefiles to point to the right shit on various non linux platforms building OSS on them.

          Understanding the computer from ground up has helped me tremendously throughout my career. This means understanding how CPU work how memory works
          how software interacts with software..

          I dunno how you can get off saying
        • If you want to use Maya in an advanced way, you do have to study. For example, there's MEL scripting.

          --Ben
  • by teknikl ( 539522 ) on Wednesday February 25, 2004 @07:00AM (#8384407)
    The science of using computers with the goal of educating people. The computer side isn't nearly as hard as dealing with the people.

    I took the masters program offered by the Bloomsburg University IIT [bloomu.edu]. The program covered the use of modern multimedia tools and techniques (and some light programming) in conjuction with instructional design and task analysis.

    There are quite a few other similar programs out there - be mindful that there is a whole track at other colleges focused simply on instructional design - thats not not as technical and tends to focus on academic issues regarding computers in education and CBT.

    One of the most interesting things you can with this degree is get an Instructional Technology Specialist certificate. Then you are certified to direct technology operations for an entire school district. Now you're working with people!

  • by Captain Kirk ( 148843 ) on Wednesday February 25, 2004 @07:02AM (#8384414) Homepage Journal
    If an Introduction to Java involves too much coding, perhaps this will never be the field you feel really happy in. There's a huge difference between liking computers and choosing to spend your life with them. You will spend almost a third of your life working so avoiding things that don't make you feel good is very important.

    Why not take a little time to visit your university career guidance centre, do a few psychometric tests, chat with an adviser and see if there might be a career you are happier in?
    • Are guidance counsellors and their tests actually useful for anything? Personally I've always steered clear, but if someone has a success story I'd be interested in hearing it.
  • Computers and ? (Score:5, Insightful)

    by Zarf ( 5735 ) on Wednesday February 25, 2004 @07:03AM (#8384415) Journal
    Don't just study computers, get a minor in CS and a major in something else... anything else... Computers and Business, Computers and Physics, Computers and Biology, Computers and Art, Computers and Theater... Computers and English.

    Really. You need to diversify your investments, skill and monitary investments both. Diversification is the key. Find a niche market you can fill and fill it well. Computers and Video production... things like that. What are your other intrests? How do computers fail to help people in these areas? How can you improve the use of computers in these other fields? Do you know anyone who is in a special industry? Have you volunteered to do anything in the community? How can computers help them?
    • I have a joint degree in CompSci and Philosophy, care to tell me what my niche is? :)

      But seriously, the parent has a very good point: pure programming is all being off-shored. It's foolish to graduate with a pure CS degree in this day and age, even if that's all you want. Your niche will be much less competitive (and probably more interesting) if it's multidisciplinary.

      May I recommend Bioinformatics or Computational Finance if you like money?
  • Management Information Systems: you dont do shit but maybe VB, Fortran or some other equally worthless language. Of course, you're not exactly qualified to do anything either... Btw, my CS degree didnt require very much coding... it's mostly irrelavent theory, math, algorithms, and the occasional program. Coding is a monkey-skill, soon to be outsourced to India or made obsolete by better languages/engineering methods and higher-level scripting. Ideally, you should be able to write code w/o any redundant
  • by ajagci ( 737734 ) on Wednesday February 25, 2004 @07:04AM (#8384422)
    You could study applied math, electrical engineering, computer engineering, cognitive science, human-computer interaction, psychology, etc. All of them involve high-tech and aspects of computer science, but they won't make you do lots of programming initially. However, when you actually work in them, it will be hard for you to avoid programming anyway, and you will be less prepared.

    If you hate your intro CS course, chances are that the intro CS course is just poorly taught. And Java itself is a pretty questionable choice as an intro CS language in my opinion: it's tedious, it's sluggish, and has enormously complex libraries. It also is based on a very narrow view of what programming is and how people should build abstractions.

    I'm not sure what you can do about that. Switching majors within your university is one choice. Switching universities might be another if you think that that kind of teaching is common at your university. Or you may just sit through this and hope that it improves. It depends on how much you are dedicated to CS. Your university may also treat this as a kind of hazing ritual, to weed out people who just aren't all that interested in CS after all.

    One think you can do is have a look at the intro CS lectures at other universities and see how they compare (MIT's 6.001 is a good course to look at); maybe that would help you make up your mind whether you just dislike your course or whether you dislike the field.
  • Human factors (Score:4, Informative)

    by tengwar ( 600847 ) <slashdotNO@SPAMvetinari.org> on Wednesday February 25, 2004 @07:23AM (#8384476)
    Have you considered studying human factors (i.e. user interface design)? It's a small field, but when I've employed people for this they've really made a huge difference to the quality of my software. No coding is needed, but HTML is often required and it's sometimes useful to be able to craft a demo interface in a prototyping environment such as VB.
  • Help me! (Score:5, Funny)

    by Anonymous Coward on Wednesday February 25, 2004 @07:42AM (#8384560)
    I'm taking a degree in Baking, but I don't like kneading dough. Can anyone suggest a university where I can get by the minimum amount of getting flour on my paws?

    Hugs n Kisses

    -Junis
  • by Bob Cat - NYMPHS ( 313647 ) on Wednesday February 25, 2004 @07:47AM (#8384580) Homepage
    And spend the extra time learning to code.

    If it turns out you can't learn to code, stay away.

    You are simply not a 'nerd'.
  • Been there... (Score:5, Insightful)

    by jakoz ( 696484 ) on Wednesday February 25, 2004 @07:48AM (#8384587)
    General Methods
    Find buddies.
    I'm not kidding. People to study with equals much faster learning. When I started uni (too long ago) I was doing a Comp Sci/Electronic Engineering double, and the workload was insane. Pretty quickly, everyone worked out pretty quickly that the only way to cope with the insane workloads was to work together.

    I don't mean cheating either. It's just that it's like having a tutor, all the time. That should be your first port of call, and if you still can't do it, (not having at go at you) you should really look at a change of careers.

    Hope that helped.
  • by hankaholic ( 32239 ) on Wednesday February 25, 2004 @08:01AM (#8384623)
    Keep in mind that there's a large difference between fixing Outlook Express for Grandma and the field of CS.

    It's going to sound a little harsh, but if you want to futz with computers, go work for Best Buy or CompUSA in the repair department, or start your own PC repair shop. If you're looking for a more analytical field and enjoy both coding and higher-level math, CS is more your bag.

    Don't mistake this for elitism -- someone who enjoys construction isn't necessarily an engineer, and someone who enjoys using computers and software isn't necessarily going to enjoy trying to design computers and software.

    Also keep in mind that computer use is something that professionals depend upon more and more, so even if you choose a field which doesn't seem to relate to "computers", you'll probably end up staring at one for years to come anyways.

    Good luck!
  • poli sci (Score:2, Insightful)

    by kwoff ( 516741 )
    Have you considered Political Science?
  • How to think... (Score:4, Insightful)

    by martin ( 1336 ) <<maxsec> <at> <gmail.com>> on Wednesday February 25, 2004 @08:17AM (#8384676) Journal
    Personnally I like to misquote an Oxford (UK) professor on items like this..

    "An Universiry education is designed to make you THINK. A course is designed to make you think "

    If you want to learn about computers then a Uni education is the best. It won't necessarilty teach you specific skills (Word, Excel, IOS etc) but will teach you how to understand the issues in a computing fashion.

    I've seen lots of people who know alot about Excel, but because they haven't been taught the principles of programming, don't use 'names' when selecting areas for formula's etc. They just use the cell ranged (C1-C13). When you have to insert/delete a row, it quickly becomes a mess to update all the calculations.

    OK so this is not the best example, but I think it proves the point. If you know the principles you can work the problem, rather then just knowing specific things.
    • Re:How to think... (Score:4, Interesting)

      by KieranElby ( 315360 ) <kieran@dunelm.org.uk> on Wednesday February 25, 2004 @09:45AM (#8385131) Homepage
      I quite agree.

      Another good quote is "Computer science is as much about computers as astronomy is about telescopes" (Dijkstra, I think).

      I suspect this isn't the case in all universities, but actual programming was a very minor part of my Comp Sci. degree (at a UK university). In fact, I don't recall ever writing any code in my "Programming Language Design" or "Artificial Intelligence" modules.

  • Learn to code! (Score:2, Insightful)

    by PinkFluid ( 23536 )
    Studying Computer Science without the knowledge of programming is like studying Physics wihout the knowledge of math.

    How are you supposed to know the machine if you don't know how it works? People that know how to use few specific applications or know how to write HTML or XML don't deserve a PHD.

    It's like being a mechanic who knows how to drive a car, but doesn't know how to fix the engine ...

  • If you don't want to program try those - MIS, Business Computing etc.

    Of course there's a possibility that you might actually LIKE programming, but you just don't like to do it in Java.

    A way to find out is to try other computer languages. If you aren't even interested in doing that, then I doubt Computer Science is for you - you'd at least still need to do some pseudo code. Pick some other course.

    It really doesn't matter so much. The whole idea is to get a decent cert, then get a job or get enough contact
  • and the real 'cs' is done without writing a single line of code, you can draw diagrams for example that are very relevant to the design of something without knowing how to write a single line of code.

    the coding part is just the part where the building gets built(pardon the analogy).

    however if "introductory to java" is driving you around the edge maybe you need to seriously rethink your career options or you have a seriously sucky professor. if that is driving you nuts what would some course that introduce
  • I'm sorry, (Score:5, Insightful)

    by His name cannot be s ( 16831 ) on Wednesday February 25, 2004 @09:44AM (#8385122) Journal
    You've come to the wrong room. This is "Computer Geeks and Coders". You're looking for "Liberal Arts Pansies"

    Seriously, I'm curious what kind of Job you want after you get this degree. How technical? If you don't wish to write code, and earn a degree that's related to "Computer Science", I'm not sure that you are going to find a Technical-related career all that fun. This is what we do.

    If you are imagining a career that you just use a computer, anything will do these days.

    And further to the point, if you can't hack coding (pun welcome) , RUN AWAY FROM CS. If you end up in a career where you are going to be building interactions between users and computers, and can't code, I don't want to work with you.

    eof
  • by cdrudge ( 68377 ) on Wednesday February 25, 2004 @09:56AM (#8385246) Homepage
    My university had 3 different computer related majors. CS, IS, and MIS. CS was for people who understood math, theory, and coding. IS was for people who don't understand theory, have some math, and could code. MIS was for people who had no clue about math, theory, or coding. They usually became your boss.
  • MIS (Score:3, Interesting)

    by _aa_ ( 63092 ) <j&uaau,ws> on Wednesday February 25, 2004 @10:01AM (#8385277) Homepage Journal
    What you want is "Management Information Systems [uis.edu]". This is essentially computer science minus the coding. This course selection is geared more towards people who are to manage the people who make the software.

    Of course you may consider simply obtaining technical certififcations in place of an actual degree, they can be just as fruitful on a resume if not moreso. MCSEs and CCNAs and A+s require almost no knowledge of programming.

  • Even if you don't want to code in your career, you should do some of it in your CS degree: otherwise you won't have a rounded appreciation of what it takes to do the coding, especially when you're interfacing with coders (you seem to want to take on a less-than hard-core style of CS career).

    Sure, I'm a BEng and I write high level code, not assembler or microcode: yet I had to do a number of assember and microcode classes at university even though I knew I would never want to use the skills: the point is th
  • by duffbeer703 ( 177751 ) * on Wednesday February 25, 2004 @10:10AM (#8385338)
    "Practical", hands-on work is required to learn and understand things at any level.

    You need to toil for a bit as a lower level undergraduate to give you the base knowledge that you'll need later. If you think that intro to Java is bad... just wait until you are a Junior and they have you code a project in a language that you've never heard of -- and expect it done in two weeks or so.

    The lower level classes seperate the wheat from the chaff. I'll put it to you this way. My CSI 201 course (the first course for majors) was a lecture with 550 students in it.

    Data structures had around 450.

    Algorithims had about 200.

    Senior classes had 40-50 max.

    If you can't hack it, that's cool. But if you stick with the program, you'll find the higher level classes a heck of alot more interesting.
  • If you don't like coding you could always get a MBA and be the pointy haired boss ;)
  • wait until you get into the real world and end up writing code that has to write code in another language. I've had to do that several times over the years.

    And even more fun is writing SQL that produces control cards for utility runs. Oops, gotta do that this morning to generate the list of packages to free later this week.

    Seriously, if you don't like programming (be it Java or some more friendly language), why are you in a CS course?

    Be happy you didn't take Fortran as your intro language like I did.
  • Posted by Cliff on 4:43 25th February, 2004
    from the english-department-lite dept.
    Peterus7 asks: "I'm a student at the University of Washington, and I was planning on majoring in English or Literature and Compositions until I took English, and I'm realizing that it's simply beyond me. I grew up with the language, and naturally I want to study a field that involves a lot of interaction between people and the language (mainly fiction writing), but the Intro to Story Structure I'm taking now is driving me over
  • At my school [neu.edu] we have the School of Engineering Technology [neu.edu] which is a more well rounded CS and CE learning experience. There is some coding, but there is also hardware, and theory with a dash of EE and networking. I left CS and went to it (Not because I didn't like coding, Calc kicked my tushie Frosh year), and it was quite an enjoyable experience. Some of my friends were also CS refugees and there were a few in the same boat as you, and they also did quite well in the environment, albeit with a little diffi
  • Good for you (Score:4, Insightful)

    by hey! ( 33014 ) on Wednesday February 25, 2004 @10:36AM (#8385517) Homepage Journal
    You found out you really don't like coding. Coding is like music or art; not everyone's talent lies in that direction. It's good that you realized this because it doesn't look like there will be many new coding jobs over the next decade unless you are in a developing country.

    Career wise, I look at my company and we have plenty of coders, but what we really need is salesmen who understand technology. There is always work for people who can sell. The requirements would be a business degree with a minor in information technology (whatever they call the track that prepares you for an MIS career) and (THIS IS NOT A JOKE) you have to play golf. I am not making this up: we are seriously hampered by a lack of golfers in our company. In major consultancies, golf is almost a religious obligation.

    That said, if sales is not your cup of tea, let me give you a number of job titles you might be interested in that don't involve much or any coding:

    * Network/System Administrator

    * Data Center Administrator

    * Database Administrator (DBA)

    * Database Analyst

    * Systems Analyst

    * Graphic Designer

    * User Interface Designer

    * Project Manager

    * Geographic Information Systems Analyst

    * Technical Writer

    * Product Manager

    this list goes on and on.

    I would suggest the following. Look at the help wanted ads and make a list of the kinds of jobs being listed. Take that list, and the one I've provided above and do a little research on what those people do and what they need to know. Next, think of some company you might want to work with, call up the HR department and say that you are a student that is looking at career paths and you'd like to find out about the kinds of career preparation you need to do job X. Don't worry if you get blown off by some companies. For reasons that will become clear, the ones that rude and unhelpful are not the kinds you want to talk with anyways. With luck you may be able to get in for a meeting and talk to some people in HR or who actually do some of the kinds of jobs you are interested in.

    You have two agendas: an overt and covert one. The overt agenda is as I have said above. The covert one is to meet people and build a network. There's a good chance that if you show the kind of initiative I'm suggesting you will land an internship or summer job, and eventually a permanent job offer. Also, you will begin to build a network.

    If I had to make one suggestion to people starting their careers is that their most important resource they have is their list of friends and acquaintences. Cold calling looking for a job sucks, so I'm suggesting you want start working on getting past that part now. When you apply for a job, you have to jump through a series of hoops and you can be disqualified at any point for some lame reason without ever getting to the all important interview. But you can call a friend any time, and if he happens to be hiring or be friends with the person who is hiring, you're in. Ideally, you want to be in contact before the job is created so that it is specifically designed for you.

  • I had a full load of upper level biochem/microbiology coursework and thought the 'intro to c' course would be cake. It nearly killed me. The problem was not the coding, but rather the editors and environments. I was routed into the labs to do my assignments, logged into a sun workstation for my first time ever, and given a keyboard cheat sheet to emacs as an editor... Thanks for all the help guys...

    Rather then learn Unix shells and figure out vi/emacs - I did all my homework on using a DOS based C comp
  • There is usually a 2 year weeding out period in CS degree programs. It's not so much an education as a filter. Additionally [IMHO] Java is a really poor choice for an introduction to programming. Among those ubiquitous programmers who value style and 'correctness' above getting the job done, Java offers a certain 'elegance.' With experience in many other languages I still find Java tedious to use.

    On the flip side, if you are not nourished by long hours in the dull glow of a crt; if you don't find algo

  • by Palshife ( 60519 ) on Wednesday February 25, 2004 @11:18AM (#8386046) Homepage
    Don't think this'll get seen...anyway...

    There's a huge difference between Computer Science and Software Engineering. CS is the theory behind computers. It's based heavily on math and induction and is incredibly interesting stuff if you like discrete mathematics. It's a deep field too. If you want to know just how deep, take a look through any of the three volumes of "The Art of Computer Science" by Donald Knuth.

    Software Engineering is a byproduct of Computer Science. It's just one of the applications. Programming is very appealing to some, but others would just rather focus on the theory. Java is probably the most implementation-oriented languages anywhere, with a huge library of built-in functionality, emphasis on integration, etc.

    So hey, you have a choice. If you think CS is better for you, find a school that does more math and less programming, and the other way around for SE. And, seriously, it may seem daunting at first, but read Knuth's books if you think you're interested in CS. Not cheap, not easy, but eternally rewarding.
    • Yes, take a look at The Art of Computer Programming by Knuth. Notice that it's actually called "The Art of Computer Programming." Notice that there's a lot of code in those books, in assembly, along with a lot of math.

      Computer Science and programming are not as divorced as many seem to believe. Knuth agrees that it's important to have a full understanding of the higher-level theory aspects as well as how it actually works in machines. Computer scientists can't divorce themselves entirely from computers
  • Typically, EE requires little coding, Physics
    less, and Mathematics even less.

    What you seem to want is a system administration
    career. For that, a technical school diploma
    is more suitable than a 4-year college diploma.
    You could go see what the instructors at the
    technical school majored in.
  • All my professors have their PhDs, and none of them seem to be under any pressure to provide working code. In fact, I'm reasonably certain its beyond most of them to write a solid and complete program. You sound like a perfect fit.
  • Any suggestions for a technologically intensive field that doesn't require ungodly amounts of coding...

    Become a software developer for almost any company. I often go a whole week without writing code. Sometimes they even bring in lunch or donuts for the meetings.

  • Become a PHB. That way you can play games in your cushy office with the door closed while you boss the CS grads around.

  • hmmm... (Score:3, Insightful)

    by buttahead ( 266220 ) <tscanlanNO@SPAMsosaith.org> on Wednesday February 25, 2004 @12:23PM (#8387017) Homepage
    general methods for surviving computer science courses for new students?

    love it or leave it.
  • OK, we've got a whole bunch of posts telling this guy he shouldn't go into computer science - I think that it's obvious that he figured that out on his own. I think that was fundamental to his whole damn point.

    There are plenty of computer intense fields that don't require coding. In fact, the number of fields that meet that criteria is increasing all the time.

    Things to look into would include IT if you're interested in networking or system administration. If your interested in science you could undoubt
  • by jgardn ( 539054 ) <jgardn@alumni.washington.edu> on Wednesday February 25, 2004 @12:42PM (#8387294) Homepage Journal
    Look into the fields of program manager or business management. I work around these people all the time, and while they spend a great deal of time trying to understand what we the coders do, and trying to get us on board with the rest of the company, they also have time to dabble with computers and enjoy the highlights of the field.

    You may want to exercise the artist in you and look at computer graphics. I work with a web designer who hasn't the foggiest what is happening behind the scenes, but is expert in how users will use the system, what colors and layouts are most pleasing, and things like that. These are all things that are really quite interesting to study, and even more fun to apply.

    Finally, never discount the value of being a good lawyer, doctor, or accountant. These are tried and true professions, and they require you to think and nowadays to use computers heavily. I have worked with doctors writing software for them, and I have worked with accountants as well, and these careers are anything but dry and boring.
  • by EvilOpie ( 534946 ) * on Wednesday February 25, 2004 @12:48PM (#8387390) Homepage
    First of all, I unfortunately see some posts that are like "well if you can't program, don't use computers!" And that bothers me a little bit. Now while I will say that it is hard to use computers to any significant degree above the average joe without doing at least SOME programming, that doesn't mean that you have to dedicate your life to it to be in a computer field.

    Case in point. I went to a community college and got an associates degree in Computer Science. I could do programming, but my heart just wasn't in it. Let's face it, some people like to code, some don't, and I'm one of the ones who isn't that fond of it. So when I went on to a 4-year institution [rit.edu] I switched my degree from CS to Information Technology. Instead of focusing purely on coding like with a CS degree, the IT degree involved many more aspects of the computer. I did my concentrations in systems administration, and in networking, and now I have my bachelors degree for IT. (there were also concentrations in writing code, and web design, and database work, and things like that)

    But the point I'm trying to make is that as a systems admin, I have to write code perodically. Our account-generation program on campus is 100% hand-coded, and I'm quite proud to have done it myself. But do I code on a daily basis? Nope. Just when necessairy to make a task easier. And honestly, that suits me just fine. So I'd recommend looking at alternative computer degrees at whatever college you are attending to see if they have something that might suit your needs better than CS does. I wouldn't expect to get away with no coding, but you can definately get away with less.

    At RIT the alternative degree to CS was the Information Technology degree, like I mentioned. At the community college I went to, I believe the alternative to the CS degree, was the CIS (Computer Information Systems) degree. So just keep an eye out and see what else is availble. Just don't shut yourself off from coding 100%, there are times where even a little bit of code will help make your life a lot easier.
  • Time to burn some Karma.

    I've never worked at a technology company, I've always worked at companies in other sectors. All these companies use technology. That said, I would suggest getting your degree in Finance, or Business, or whatever floats your boat, and do a minor or second major in your school's equivalent of Applied Computing.

    Here on /. you are mostly asking programmers about how to avoid programming. But one of the biggest problems in the industry has always been the Large Gap between the IT f
  • Spectrum of Degrees (Score:3, Interesting)

    by Landaras ( 159892 ) <neil@@@wehneman...com> on Wednesday February 25, 2004 @01:02PM (#8387556) Homepage
    As many here have said, it's possible that you're in the wrong degree program. At a four year university, if the degree says "Computer" or "Information Systems / Science" in it, you're going to have to do quite a bit of programming.

    I'm currently an Information Systems major at Ohio State [osu.edu] and feel it's a good fit for me. (The major was formerly called Management Information Systems). IS at OSU is about (outside the General Ed requirements) half business and half tech. The tech is about two thirds programming and one third systems analysis.

    I don't enjoy coding, and I don't think I'm that great at it (relative to others who post here). However, I'm good enough and tenacious enough to pull off B's with some A's in the programming courses.

    As for what I'll be doing full-time after school, I will be doing tech support and project management for Campus Crusade for Christ's largest state-side region. I think my degree will have prepared me for that because I will be able to speak the language of business / operations as well as the language of the "dedicated" programmers and engineers. My goal coming in to MIS was to be like PERL: jack of all trades, master of very few.

    I started off as an engineering major (because of my standardized test scores), but the CAD classes kicked my ass hard enough that I decided not to pursue engineering. It sounds like perhaps you're having the same problem with coding as I did with CAD.

    There is a reason some courses are called "weed-out classes."

    I recommend you find a major that you enjoy AND are good at. It may or may not be tech-related. If you want some specific tech skills thrown in, consider hitting a community college or similar for certificates / experience in the areas of IT that interest you. A non-tech degree / skills with some tech certificates thrown in can actually be pretty attractive to a lot of employers.

    I was offered and accepted a non-tech position with U.S. Bank in 2001 for that same reason.

    Good luck!

    - Neil Wehneman
  • by attaboy ( 689931 ) on Wednesday February 25, 2004 @01:14PM (#8387742)

    I want to study a field that involves a lot of interaction between people and technology (mainly computers)... Any suggestions for a technologically intensive field that doesn't require ungodly amounts of coding

    The statements above are going to cover nearly EVERY professional field and field of study in the next few years. Psychology, Economics, statistics, law, medicine, and even English are all using computers way more than they ever did, and that trend is only going to continue.

    However, I recognize that there are lots of technically inclined people who aren't cut out for the particular mindset involved in programming (and programmming well.) Here are some job descriptions that I think incorporate both a love of technology and computers, but don't require programming:

    Log/traffic analysis: Almost every company has a Web site. Many don't make much use of their web logs to do much more than count hits or visitors. Logfiles, with lots of massaging, can reveal lots of data about the patterns of visitor behavior. These data can help develop new site features to increase return visitors or clickthrough ratios, improve upon text or navigation, etc. You can use commercial or open-source software packages to glean the information you need, but the real challenge isn't in finding the right data, it's in asking the right questions.

    Usability/Human-computer Interaction: HCI is one of the sections of the ACM computer science curriculum. Carnegie Mellon has a grad program devoted to this (I believe.) It's a growing field, combining software and cognitive psychology. It's everything from designing the User Interface to software programs or Operating systems, to figuring out the right button configuration on a new mouse design. Study cognitive psychology, take some electives in HCI from the Comp Sci department, and whatever likely courses appear in the Engineering department. Also look under ergonomics (a slightly related field.) My personal theory here is that desktop computers in business are more than fast enough to run the programs we typically use them for. Gains in productivity from faster processor and more RAM are going to be minimal. The real productivity gains of the future are going to come in making it faster and easier to do the things we do by creating better designed, more intuitive software.

    QA: Every technology shop needs QA. A lot of the time it's done by programmers. To me, that sucks. The programming mindset is a "problem-solving" one. The QA mindset is a different one, and one that programmers are almost diametrically opposed to... finding potential problems, breaking software, etc. A good coder learns how to anticipate and code for these things as part of their practices. They build in validation, check internal validity of data, prevent buffer overflows, and avoid making assumptions. A good QA tester will run circles around a good programmer in this area though. I think there's definitely a "knack" for QA that some people have, and others don't... and these people are often not the most computer savvy. At our company, we have a copy-editor who we have test out new apps, maybe because she's a copy-editor and has a good attention to detail, or maybe it's just her super-power, but she never fails to find problems that coders have missed.

    Tech support: I don't mean answering the phones for AOL... i mean find a software company that makes products targeted at end-users with better than average computer skills, more of a B-to-B than a B-to-C company. You become an expert in their software product or products, you learn to solve simple and advanced problems that users might have. You become a god and savior in times of need... there are Tech Support reps, and then there are GOOD tech support reps (although many slashdotters may disagree with me regarding the latter, but trust me, they are out there, albeit in small numbers.) We need more GOOD reps. It's a different mindset than programming, again, but we need them.

  • by JavaLord ( 680960 ) on Wednesday February 25, 2004 @01:33PM (#8388108) Journal
    The first thing you need to do is find an actual job/job field you want to be in, and see what the typical requirments are for that job. It doesn't sound like you really want to be a programmer or a network admin from this line in your post:

    grew up with computers, and naturally I want to study a field that involves a lot of interaction between people and technology (mainly computers)

    I would try to narrow that down to an actual job title. Now, if you do decide that you want to be a programmer, or at least continue to pursue a CS degree, The first thing is,

    DON'T GIVE UP!

    Despite what some of the keyboard warriors here on slashdot say, if you want to do it I'm sure you can. If I were you I would pick up Head First Java [amazon.com] I had to train someone to move from being a web designer to using Java at my job. I recommended this book and it went over really well. Check out some of the sample chapters and see if you like their "teaching" style.
  • Find a new major. (Score:2, Informative)

    by Dyrandia ( 253125 )
    I enjoy computers as a hobby. I won't do them for a living. I simply don't have the "coder drive". My husband is a Software Engineer. His whole job is designing specifications and requirements, as well as the programming after the spec's been done. A Software Engineer who doesn't code won't do well, becaue he doesn't know the limitations of the proposed languages, or even alternative languages to use. You may be able to take a different course, but I'm afraid that its people like you who are making it harde
  • If you feel you're a methodical-minded person, who wants to do something cool, but you don't like coding, there's always plain old non-computer science.

    Try something like chemisty (or biology), even in physical chemistry, you don't really do any programming, but you get to use some of the most cutting edge tools out there.

    If you don't mind some minor coding (think graphical, like LabView) then experimental physics would be good. While many people in physics do a LOT of programming, there are also a lot
  • by PetoskeyGuy ( 648788 ) on Wednesday February 25, 2004 @02:48PM (#8389163)
    You work with computers all day every day, you work with people constantly but don't have to understand how they work.

    You just need to learn about colors, shapes, and eventually how to express yourself by creating websites that are 100% Macromedia flash that only other graphic artits will be able to use because of the 4 pixel boxes that you choose as your user interface while the rest of the screen looks like someone tried mixing some paint with the lids off. Learn the art of useless yet exciting shapes and how to make pages flash and cool looking "please wait" screens.

    All kidding aside, I have several not-to-techie friends who went this route. As much as they don't understand computers, they still create some frikin weird shit that I could never do myself.
  • Au contraire (Score:3, Insightful)

    by Brandybuck ( 704397 ) on Thursday February 26, 2004 @02:57AM (#8395096) Homepage Journal
    I'll have to disagree with a lot of these replies. Too many are saying "go into MIS, or IT, or program management, etc." This is the wrong tack. I'm sick and tired of managers who couldn't code a DOS batch file telling me how to write software. Or specifying .NET for hard realtime embedded systems on the basis of some advertisement they saw in PeeCeeWeek. It's just silly.

    How can you possibly make a business decision to go with Java versus Python versus Ruby, if can't code in any of them? How can you create meaninful UML diagrams if you have no clue as to what they represent? And how the hell can you make any high level architectural decisions if you are clueless about the low level stuff works?

    It's like your grade school teacher told you years ago: you're going to be using arithmetic and algebra the rest of your life, so you had better learn them. The same holds true for programming in any field related to computers. One example. The user interface design guys do a lot of analysis. They get in megatons of user data, and need to process it to get meaningful stuff out. So they write quick and dirty Visual Basic programs to do it. It's hardly the pinnacle of programming, but it beats going to the software department and begging for charity work when resources are tight.
  • Well, um (Score:3, Insightful)

    by Lord Kano ( 13027 ) on Thursday February 26, 2004 @03:43AM (#8395278) Homepage Journal
    I'm not trying to be abrasive, but I will be direct. CS isn't what most people think it is.

    CS isn't about just using computers. It's about understanding the principles upon which they operate. Stacks, Queues, Linked Lists, Matrices, Vectors, Arrays, Binary Trees, Hashes, myriad other data structures, bubble sorts, inheritance, polymorphism, structs, classes, virtual functions, and many, many other concepts that would give the "average" computer user a spliting headache. When you boil it down, CS is about the low level manipulation of data.

    I can't imagine any effective BS degree program that involved computers that shouldn't include at least some programming. If you extrude the line of reasoning to other fields, the best car salesmen are the ones who know what is going on under the hood. I wouldn't buy a car from someone who couldn't explain to me why ABS brakes, or tuned port injection are beneficial to me. How can you expect to get into the computer field if you don't understand what's going on inside of the little box with all of the lights on it?

    In all seriousness, maybe computers isn't the field for you.

    LK

Genetics explains why you look like your father, and if you don't, why you should.

Working...