Home Forums Gamescan Chat42 About
* Login   * Register * FAQ    * Search
It is currently Sat 11-22-2025 3:39AM

All times are UTC - 6 hours




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: CS 328: Object Oriented Numerical Modeling - opinions plz
PostPosted: Fri 03-18-2005 7:28PM 
Offline
Captain
User avatar

Joined: Tue 02-24-2004 10:30PM
Posts: 150

Source: TJ South
I'm thinking about taking the class next fall and I was wondering if some people could tell me what they thought of/think of the class. Does it have alot of assignments each week, or is it more project oriented?

Also what do you guys think of the prereqs for it. Officially the prereqs are CS 228 and CS 153 but the professor says I should take CS 253 as well. He said it can be done without 253 but it's alot harder. Can anyone give me an opinion on that? Do you think CS 253 should be a prereq as well? Just curious.


Top
 Profile E-mail  
    
 Post subject:
PostPosted: Fri 03-18-2005 9:09PM 
Offline
Brigadier General

Joined: Tue 01-22-2002 12:35PM
Posts: 1057
Location: Shawnee Mission, KS

Source: Off Campus
I had Hilgers. The class was awesome. It was probably my favorite CS course that I took. Last I heard Price was teaching it, which is still cool. It's a lot of programming though. You probably should have had Linear or Matrix algebra before you take the class. I don't know that 253 is really necessary but you do need to be proficient in programming.

I'd say we had a program due every 10-15 days or so. For several of them we didn't just have to write the code, but provide UML diagrams of our design and stuff like that. The programs were iterative through the semester; we started by designing a class to represent a vector, and then we made "typical" or dense matrices, then we did sparse, triangular and symmetric matrices. Each time we used different tecniques to try to implement object oriented programming without actually using normal inheritance. Inheritance and virtual functions are nice, but they suffer performance hits as the compiler has to (this is greatly simplified)dereference the virtual function pointer, look up that function in a table, and then call that function. That overhead isn't that critical, say, when you're overriding buttons in a dialog, but if you have to do a virtual dispatch every time you access an element in a matrix, that adds up fast. If you multiply 2 NxN matrices that have no simple qualities (i.e. they aren't symmetric, triangular, or sparse) you will call your access function 2N^2 times.

Anyway, we spent most of the semester developing this matrix math library, and then for the final project we got to pick an application of matrix math. I remember that I did splines, but I don't remember all that I did for it, and I don't have my code anymore.

If you want a taste of what the class is like skim this site:
http://osl.iu.edu/~tveldhui/papers/techniques/

We covered template engines ("simple engines" in the TOC), the Bartman-Nackman trick (aka "curiously recursive templates"; read it, it will warp your mind) and expression templates.


Top
 Profile E-mail  
    
 Post subject:
PostPosted: Fri 03-18-2005 10:22PM 
Offline
Captain
User avatar

Joined: Tue 02-24-2004 10:30PM
Posts: 150

Source: TJ South
Wow, thanks. That helped alot. After skimming through that site I think I'll wait until after 253. It does sound like it'll be alot of fun once I get there. :D Thanks again.


Top
 Profile E-mail  
    
 Post subject:
PostPosted: Sun 03-20-2005 9:55AM 
Offline
The Cap'n

Joined: Mon 10-07-2002 2:13PM
Posts: 327

Source: Off Campus
Watch the pre-reqs... if you don't know the material in them, then you will probably have trouble with the class. CS228, CS253 and I think Matrix Algebra is getting added (not sure on that one).

--sea


Top
 Profile E-mail  
    
 Post subject:
PostPosted: Sun 03-20-2005 12:06PM 
Offline
Captain
User avatar

Joined: Tue 02-24-2004 10:30PM
Posts: 150

Source: TJ South
I'm not worried about the math, I'm one of those crazy people who are comp sci and math majors. I've already finished all the calc classes and diff eq. I'm in linear algebra right now and it's fairly easy. The only thing that is worrying me is if I can take a scenario, translate it to an algorithm(s), and then translate those algorithms into code. When I talked with Mr. Price (the professor for CS 328) he said my math background should be fine but others who have taken the course without cs253 sometimes have problems with what he called "programming maturity." After skimming through that site I think I know what he meant.

You shouldn't just know topics like inheritance, data trees, stacks and queues, and class representations, but you should be so familiar with them that they come naturally when you code. You shouldn't have to think to much about them, and you should also understand how the implementation of your code affects the runtime. So far in all my comp sci classes the amount of runtime has always been mentioned, but we've never really had to do hardly anything with comparing algorithm memory efficiency and computation times. In CS 228 I've definately started to notice the difference between algorithms of O(n^3) and O(n). Usually the n^3 ones are less accurate too since there's so many individual computations, very prone to round off and truncation error. I could be wrong, but that's what I think Price's "programming maturity" warning was about. I think CS228 is alot of fun, and CS 328 should be as well. However, I should probably wait one more semester until after I've had CS 253 so I can just learn algorithms for data representation/manipulation/computation in 328 instead of trying to learn the coding, runtime efficiency, etc all at the same time with the algorithms.


Top
 Profile E-mail  
    
 Post subject:
PostPosted: Sun 03-20-2005 2:04PM 
Offline
Major
User avatar

Joined: Tue 08-27-2002 8:47PM
Posts: 280
Location: Cheap Off-Campus Housing

Source: Off Campus
Price's programming maturity comment probably relates to basic programming ability - there's a lot of programming to be done, and you'll want to spend your time thinking about the logic (math) portion, not how to get your code to compile.

And linear algebra is a big plus - you'd have to learn a lot of it, mostly on your own time, if you didn't already know it.


Top
 Profile E-mail  
    
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group