Advice from Fall 2011 Students
On the Fall 2011 Course Evaluations we asked:
"What advice would you give a friend who is considering taking this class?
What are the necessary prerequisites, co-requisites, or prior experience?
What should you do to succeed?"
This is a huge step-up from CS I. Get help from ALAC and office hours when you can and don't be afraid to ask if you feel something wasn't graded properly.
If you took CSCI-1100 and found it challenging, data structures is going to take you a lot of work. Go, self study!
Start homeworks about 4-5 days in advance.
Only take it if you're very interested in programming (or a CS major) and willing to spend a lot of time programming
I'd tell them that this class is a lot of work, and definitely wouldn't recommend it to someone with little/no programming experience.
You should know at least one programming language before hand, or have some very basic programming experience. An AP Computer Science course might be sufficient, but that also depends on how well taught that Computer Science course was. To succeed, you really only need to go to class and pay attention to lectures and then be prepared to implement what you learned in labs and homework. Not difficult really.
Spend a LOT of time going over the homework: reviewing the packet's instructions, any provided code, in-class examples... Also, make sure you can develop without annoyances a.s.a.p: running the wubi Ubuntu installer is great.
Computer Science 1 is a must, and you should get an A or B+ to have a chance in this class. To succeed, start homework early.
Finish the provided lab material ahead of time. To succeed, don't take any breaks.
There should be a warning that CS1 is not a sufficient prerequisite for the homeworks. The ability to think and plan out code rather than just start writing is extremely important, and prior experience programming helps a lot in this.
Keep on top of homeworks and plan enough time to complete each assignment early enough so that programs can be debugged and submitted. Prior experience programming (any language) is helpful.
Be prepared for the hours of homework.
DON'T PROCRASTINATE ON THE HOMEWORK!
I would say they mostly need some computer science background, probably in C++ or a similar language like Java. I would tell them as long as you pay attention and don't start the homeworks the day they're due and actually study throughout the semester - and not the night before - it's pretty easy.
Significant experience with Java or any other C-like language is very helpful as a prerequisite. Using Linux is probably an advantage, but by no means required. Expect to spend many hours working on homework projects.
For this class you should have at the very least an elementary foundation of understanding of C++ and its syntax and nuances. You don't necessarily need to take an entire course on it, as long as you understand another language, but you should run through a few tutorials with the language before diving into the class. Nothing is more frustrating than understanding a concept and still getting obscure syntax errors with no apparent meaning.
Stay ahead. Most homeworks and labs took a moderate but predictable time. However I occasionally encountered bugs that took a longer time to resolve. Leave lots of time to sort those out. The prior information on the course website seems adequate.
Cancel all plans, you'll need time for homework.
Lots of work, time management is important.
Be prepared, this class is hard.
Pay attention to CS1 before taking data structures. Comment your code, and ask lots of questions.
DO THE WEEKLY HOMEWORK EARLY. And at least look at the lab before you do it.
Study and program a lot.
Having a good understanding of basic C++ programming, or equivalent, it necessary for the class. To do well, always attend lecture and participate.
Get ready to sit in the dorm room for hours on end.
I would tell them they need to be very good at computer science to do well in this class. I would not recommend it to majors that aren't computer science or computer systems engineering.
Prepare to take the class twice or prepare to barely pass. Impossible to come in without EXTENSIVE knowledge of programming.
All one needs to take this class is some experience in any programming language. And just make sure you have enough time for the homework.
If you are not a strong programer then go to ALAC tutoring every single chance you can. Also meet with the professor several times throughout the semester. She is very understanding and if you let her know you're trying and doing everything you can, then she will be more understanding and more helpful.
Prepare for a lot of homework.
Be used to C++ and have the tools needed to work on it. Have a lot of time. Little, other then the oddly unfair tests, is all that bad in the class. It just takes up all of your time.
Don't expect to get work for any other classes done on Thursday nights.
"Homework takes thrice as long as you think it will, start it now."
Start the homework early! If you start it on Wednesday or, gods forbid, the day it is due, you will invariably run into tons of time-eating bugs. If you start it early, not only will you experience less stress, but often may be able to to finish it without putting in as much time.
I would tell the friend to start as early as possible on the homeworks and to go to ALAC and office hours as often as possible. I had little to no C++ experience before this class and I didn't find that that hindered me too much.
Know some C++ or self teach yourself a bit before taking the class. Compsci 1 is a prerequisite, and it's helpful if you know C++ to start with. You should do homework early and not use late days early on, as well as actually study for tests.
You should know some basic C++ and have a general understanding of programming. Make sure you start the homework early and allocate enough time for it.
Start your homework early. Debugging can take up to 20-25 hours if you get stuck.
Work on the homeworks a lot, pay attention to lecture to do well on the exams, studying lecture notes is hard to do effectively, practice tests are hit or miss.
Do homework early and completely - reflective of the exams, strive to understand material in class, go to class.
Do not take it if you do not need to. It ruined my liking for the subject and despite getting an A in comp sci 1 at RPI I felt unprepared for the class and wound up leaning most of the material on my own. Frankly I am not sure how to succeed in this class, my test scores are bringing down my grade even though I have A in the labs and homeworks.
Pay attention and study, understanding of the basics of comp sci 1 is essential. If those foundations are not there either they must quickly acquire them or they won't do well. In order to succeed you must have a good grasp of information and either work hard or have a natural aptitude for the subject. And even then you may have to work hard.
Never take this class along with IED. To do well, attend lecture and at least review the homework over the weekend to get a general understanding and ask questions if not sure.
Make sure you did well in CS1 and try to come in with some prior knowledge.
Get used to online homework submission and coding environment quickly before the first homework.
Knowing C++ first would certainly help. Migrating from Java is a little difficult.
Start your homework early in the week and get help if needed.
I would recommend having previous programming experience or completing a comp sci 1 course at another school since the pre-req course at RPI absolutely did not prepare me for Data Structures.
Go to lecture as often as you can stand... study hard for the tests, because they are difficult.
I would advise said friend to be prepared to work extremely hard for every homework and assignment, unless of course they're naturally an excellent programmer. A fair amount of prior experience with programming is definitely necessary for this course; I didn't take CSI prior to taking it, so I'm not sure how helpful that class would be as a prerequisite, but would definitely be necessary that they take CSI if they have no prior coding experience.
Make sure you have a lot of free time to do the homeworks and ALAC and UPE are major helpers.
Start the homeworks early, go to ALAC if things go wrong, attend lecture, plan before writing code, do not write everything before you compile.
I would suggest getting as much help as you can so you don't fall behind at all.
Don't take it. ONLY freshman compsci majors should take this course with this teacher. Non-compsci majors should have better things to do, and non-freshman shouldn't have time to take this class.
You should take CSCI-1100 and not waive it. You should also be very interested in programming and try programming outside of class materials.
Come prepared to program make sure to take good notes. The tests are a good measurement of whats covered in lecture, hw, and labs. Make sure to get started on the HW early as it does take a while to complete.
Also own a second computer which you sync with your primary one several times a day because you won't get an extension on your homework when your computer stops working the night before it's due and can't be fixed for several days.
I would tell a friend who has prior programming experience that it is a great course for understanding the lower-level components of c++, and would highly recommend it. For someone who has not had much programming experience, I would suggest comp sci 1 first, because this course is quite challenging and frustrating if one doesn't have the necessary foundation in programming. To succeed, stay on top of homeworks and make a good cheat sheet for the exam. If it is good enough, you probably won't need it. No formal prereqs, but Comp Sci 1 is recommended if no prior experience with programming languages.