|
Hey so I recently decided to change my major to computer science. Fortunately, I'm just a sophomore, but I want to catch up as quickly as possible so that I don't overload my junior and/or senior year. It's true that my adviser will provide me with the best opinion, but there is room for just one more student for this particular course, which I'm not quite certain whether I should be taking it or not.
So far I signed up for cs101 and 201. Apparently, cs101 is a joke - it has some introduction to html, security, spreadsheets, etc. cs 201 is the real thing. I believe we learn java, which I'm somewhat familiar with.
My question is: I'd like to add another course, discrete structures, because it is the last cs related course that does not require a prereq other than cal, which I already have, but what exactly is this class? Will it be too much for me to handle?
I would add this course and make up my mind later, but it will be over the maximum number of hours I can take. And the course I was thinking of replacing is a fairly popular class that I don't want to risk giving up on.
- Logic and Proofs (Chap 1) - Basic Structures (Chap 2) - Induction and Recursion (Chap 5) - Relations - Miscellaneous topics, if time permits * Counting (Chap 6) * Trees (Chap 11) * Number Theory (Chap 4)
this is a schedule for one of the discrete structures class (cs250) if anyone's wondering
|
United States1719 Posts
data structures? like arrays, linked lists, trees, hash tables etc? If so I'd recommend learning 201 before; you should have a firm grasp of a language before moving into data structures.
|
On December 04 2011 11:38 rotinegg wrote: data structures? like arrays, linked lists, trees, hash tables etc? If so I'd recommend learning 201 before; you should have a firm grasp of a language before moving into data structures.
Discrete structures =/= data structures. It's more of a math-based course, really, from my understanding.
|
United States1719 Posts
|
http://en.wikipedia.org/wiki/Discrete_mathematics
It is this, is it not? It's just called discrete mathematics at my school, but check your course description to be sure. You'll probably be covering mostly logic stuff at first, then sets. It's also pretty decently easy, in my opinion. Definitely add.
|
- Logic and Proofs (Chap 1) - Basic Structures (Chap 2) - Induction and Recursion (Chap 5) - Relations - Miscellaneous topics, if time permits * Counting (Chap 6) * Trees (Chap 11) * Number Theory (Chap 4)
this is a schedule for one of the discrete structures class (cs250) if anyone's wondering
|
Yup. That's discrete mathematics, same thing I posted the wiki link for. The subject material isn't too heavy, and I've already covered both my school's classes on it. Professors always differ though; I know mine failed about 40% of the class, despite the fact I found it easy :/ I say take it. For CS you'll need it to graduate anyway, right?
|
so i'm assuming it's almost irrelevant to a programming language?
|
at my school, discrete math is a relatively easy cs course. i recommend you take it.
|
On December 04 2011 11:49 billy5000 wrote: so i'm assuming it's almost irrelevant to a programming language? It's very relevant to programming languages, actually. That doesn't mean that you don't understand some if it already, which is why it's pretty easy. For example, if you wanted something to loop under the conditions that x=0 and y=1, do you want it to loop under the conditions x=0 and y=2? Obviously no (if you wanted that to happen you would loop with x=0 OR y=1), but that's what this stuff will apply to, and it does get more complex.
|
All of those topics can be learned without any prior knowledge about programming whatsoever.
It may need some prior math depending on how the individual course is, but when I took it, it was one of the easier courses. I say just go for it.
Edit :
Sorry I misunderstood the question.
As fotong said, yes they are relevant, but not die hard necessary. If you don't take that course you'll probably learn some of it just taking other classes or just while programming and researching.
|
ah i meant that if having no knowledge of a particular language would be a challenge to learn discrete math**
thanks everyone^^
|
At my uni discrete math is all theoretical.. We did proofs and stuff on paper like you mentioned for your first section...
Our professor was fucking insane so our class was hard, but he curved decently at the end. The other quarter professor was extremely easy, so I'd say the course material isn't that bad itself. You don't need a programming background to understand it, but it will defiantly help you out. I really wold recommend doing a data structure class before jumping into discreet math though cause Recursion and Trees might be a little tricky to learn on the fly. Its a lot easier to wrap your head around once you've gotten to write a program or two..
Although if your smart enough you can pick up all information you need as you go along.. Like if your hard working and good at working with friends and stuff it shouldnt be that bad. Group study in CS helps sooooooo much
Also if you go and talk to your TAs and prof and just ask questions the tests should be pretty straight forward. Its very very logical stuff... Not much guessing to do. Like the proofs all follow the same format, and if you get a cheat sheet or simply just memorize it you can apply it to pretty much every problem they throw at you. (like proof by induction for example)
|
Hyrule18937 Posts
Discrete Structures sounds fun. How long are your terms? It doesn't seem like there's really enough time to cover any of those topics beyond the very basics.
IMO it'd be wise to take it either way, but knowing Java or C would probably help with some parts (like Kal said, particularly Trees and Recursion).
|
Discrete math is all proofs and theorems, mathematical induction is one of the key concepts you should learn for CS.
|
Just make sure you know object oriented pretty well and have a good understanding of the basic concepts in your first level class and you'll do fine
|
Discrete structures sounds like an entry-level discrete math course. You don't need it for your first year of CS, since low-level CS courses teach you all the math you need for them. You will definitely need Discrete Structures by your second year of CS though, preferably before you take algorithms analysis. Algo will kick your ass if you don't have discrete out of the way.
|
If you want to get ahead/catch up, you should definitely take the course. Taking your 201 course first shouldn't be necessary at all and the mathematical foundations are good to start with along with the more practical programming.
|
Only you would know if something were too hard to handle. You can look at past exams and the course description to get a feel for what the course will teach.
|
This is not a discrete math course, unless you're at a fluff uni. A lot of your CS201 will overlap with this course so you should be fine. Induction/recursion, relations and counting should also be taught in conjunction with java.
|
|
|
|