Hey,
I am in my first year and was wondering about how the 2nd semester would be in terms of CIS courses. The 1st semester programming course was easy. I was just wondering if there is something that we should look out for in the next semester. I have heard that the Discrete Structures in Computing can get quite challenging and the Professor Pascal expects us to know more than we are required. Is that true?? Some advice would be really helpful.
Thanks.
IMO the second semester is
IMO the second semester is quite a bit more demanding then the first one. As always, get started on assignments *early*, and use the TA and professor hours and you should do fine. In my experience, it's the students who don't do anything until the last 2 weeks (and never see TAs) who end up failing.
--
Andrew
Having just come from 2910,
Having just come from 2910, the continuation of 1910, Dr.Masakis is an excellent professor who is generally demanding, but fair with his expectations. As long as you pay attention in class and take note on details, it shouldn't be that bad.
As far as 2500 goes, it is definitely a lot more difficult than 1500 since you are now dealing with pointers and eventually linked lists, which adds a whole new level of complexity than telling C to add 2 and 5 together. Oh, and get used to the message "Segmentation Fault" and not knowing why.
also: DAMN YOU sizeof(NODE) and sizeof(NODE*)
----------------
Kelvin Lau
2nd Year BAH/CIS
"Oh, and get used to the
"Oh, and get used to the message "Segmentation Fault" and not knowing why."
gdb and valgrind, people. I can't believe you guys are still writing printf("got here") when you have tools available that will tell you exactly which function the program faulted in, and which variable caused it.
We make you write C in notepad so you can concentrate on learning the language, and you write makefiles by hand so you understand the compilation process, but that doesn't mean you can't switch to an automated tool once you understand the concepts behind *why* C works the way it does.
To be fair gbd didn't do
To be fair gbd didn't do squat about my NODE and NODE* problem. It took the expertise of like 4 people to figure it out.
----------------
Kelvin Lau
2nd Year BAH/CIS
GDB and valgrind don't tell
GDB and valgrind don't tell you *why* your program is broken - they just let you dig into the internals to figure out what's up. Being able to step through the execution of your code to backtrace from where things break is invaluable.
--
Andrew
This. I can't tell you how
This.
I can't tell you how many times `r, bt, frame, print` saved me.
I've just began 2500, coming
I've just began 2500, coming from 1500. And boy what a jump, i'm having a fairly hard time with the assignments.
Adivce?
I just started 2500 as well.
I just started 2500 as well. I'm not entirely sure what your having problems with, but lab time seems great if you have a particular question to ask, or of course the office hours. If its the concepts your having trouble understanding, i definitely suggest you talk to the prof, or look over your notes / the book a bit.
Advice
Make good use of the TA's. I'd suggest in the downtime between assignments to work on a few programming exercises. You'll find lots of suggestions via Google. I had been coding for years before going into university, but practice is always nice.
And for the record, I got through all of Comp Sci and never learned valgrind. That's by no means a suggestion, I'm just pointing out that it's possible, and therefore unnecessary to be incredulous.
Randall
Assignment strategies
* Read the assignments the day you get them.. the entire assignment.
* Make a written list of all the things you need to learn before you can finish the assignment (ie. things you don't know).
****GOOGLE- educate yourself about those things as much as you can
* Take the list to the TA during office hours and ask specific questions. TA's and faculty are MUCH more likely to make an effort help a student who has obviously tried on their own first. If you show up and say something like "this is hard", and haven't read the assignment thoroughly and don't even know what you don't know.... People will be less willing to put effort for you.
*Do a SMALL PART of the assignment, make it compile and run. Add ONE THING, make it compile and run. Never let yourself be more than 15 minutes away from running code.
*Keep backups- so you can easily back out of bad decisions.
If you find that you are
If you find that you are having trouble in a lecture environment, consider getting outside tutor help. These courses costs you a fair sum of money and even more importantly, a semester of your time. I personally learn better when I have someone show me what to do one to one, and find it difficult to be taught detailed concepts without being able to be asking constant questions
If you need help finding a tutor, send me an email at kwok@uoguelph.ca and I can introduce you to current and past CIS students who have been through your courses before, and they can optimize a learning strategy that works the best for you.
----------------
Kelvin Lau
2nd Year BAH/CIS
CPES SC Board Member
CPES SC CSA Representative
Go to class
Kelvin's suggestion for finding one on one advice is a good one, but don't let a tutor or study buddy be your excuse for skipping class. I've heard WAY too many students blithely announce that they don't learn in class so it isn't worth their time to go to class- they'll just read the notes- and then those same students are at my door later complaining that 'they didn't know that was on the exam' or 'those concepts weren't in the online notes' or 'my friends didn't say we had to know that stuff' or, 'I don't understand the assignment and wasn't at class but can you give me a private lesson right now because I'm too special to go to class'.
Don't skip class. You are paying A LOT of money for these classes.. go to them. You might not feel like you come away from each class a lot smarter...but over the semester you'll be surprised what you might learn.