Engineering classes or Computer Science?

<p>I'm a sophomore in high school going through the tedious (and surprisingly amusing) process of selecting classes for next year.</p>

<p>My only problem is that since my school doesn't offer courses in architecture (my main career interest), I have to choose between the PLTW Engineering program or AP Computer Science for my tech credit. I have really no idea what is going on in these classes. My questions to counselors (who's completely clueless) and teachers result in confusing responses like "computer science deals with the manipulation of algorithms and the use of Java" or "the engineering class involves the integration of physics and innovation in designing a functional product". What does any of that even mean? I'm looking for a good description of the class, not some vague mission statement out of the course description book! My friends who take those classes are no help either. </p>

<p>Since I'm also competitive for being valedictorian, my GPA comes into play. The PLTW program requires SIX semesters of engineering for ONE tech credit. And the senior class (EDD) is not weighted as a honors class so it could be detrimental to my rank. However, the courses seem to fit my interests better. I took the Intro to Engineering Design class this year and enjoyed the 3D design aspects of it, but I hear that Principles of Engineering and Engineering Design and Development are more technical and tilt more towards mechanical engineering rather than civil or structural. (I'm still extremely disappointed that our school doesn't have the Civil Engineering and Architecture course!!)</p>

<p>And honestly, I have no idea what Computer Science is even about. </p>

<p>Please enlighten me What class do you suggest I take?</p>

<p>Is there any other description of what these engineering courses in high school contain? The general descriptions that you quote are fairly close to a high level description of each field (though computer science in industry is not limited to using Java by any means).</p>

<p>To expand on that, engineering is the application of science to design things like buildings and infrastructure (civil and environmental), machines (mechanical), electrical things from power plants to computer chips (electrical), plastics / fluids / chemicals (chemical), and materials (materials science). A car may have an engine designed by mechanical engineers, using fluids, materials, and plastics designed by chemical and materials science engineers and computers designed and programmed by electrical engineers and computer scientists, while being driven on roads, bridges, and parking structures designed by civil engineers. If the car is a plug in hybrid, it may be plugged into a power grid designed by electrical engineers delivering power from a nuclear power plant designed by nuclear engineers.</p>

<p>Realistically, most engineering students enter university having taken math, physics, chemistry, and biology in high school, not any engineering specific courses. Some may have taken AP versions, or transferable community college courses in these subjects (most commonly in math).</p>

<p>Studying computer science commonly leads to industry jobs and careers in software development, though some people do hardware design (e.g. CPUs, graphics processors, etc.), which is at a somewhat higher level than the semiconductor electronics and circuits that are more the domain of electrical engineering (though electrical engineering and computer science tend to blend together at many schools).</p>

<p>Not sure about the engineering stuff, but I can give you some information on what I learned in my first Computer Science class (I am now a 3rd year CS major). </p>

<p>You will learn how to store things in variables, how to create loops to iterate through lists, how to make conditional statements (if this, then execute thing 1. otherwise, execute thing 2.), basic things like that. </p>

<p>You will be doing all these things in a language, looks like Java from your description. This means you will learn how to get your machine to compile your code and run it to produce some output. </p>

<p>You will learn object orientation, which basically means everything is separated into classes. For example, you may have a class ‘Person’ and a class ‘Dog’, and when you create a new Person, you could call the method person.speak() and it might output “hello” to your console, whereas creating a new Dog and calling dog.speak() might output “woof”.</p>

<p>You will probably also learn some random stuff that your teacher is interested in; for example, in my first class I learned about manipulating sounds and images, while some of my friends learned how to make graphical user interfaces (GUIs) so the person running your program can click buttons and type things to interact with your code.</p>

<p>In my opinion (biased as a CS major of course!), CS is a great way to go. It will teach you logic and require you to think in a new way, and if you’re good at it, it’s a great skill to have in pretty much any field of work.</p>