PDA

View Full Version : Is one C++ programming course enough?


Andy
08-04-2006, 02:07 PM
Greg and Dave are the instructors for our Fall 2006 C++ course. They will take turn teaching us the course. If you stayed late after the Orientation on Tues and talked to Mr. Greg Ciresi, you would be informed that he will be teaching an elective course in Spring 2007 in the area of Risk Statistic. This means he won't be teaching us the second C++ course. It could mean that someone else will be teaching the second C++. It could also mean that we only have one C++ course for the whole program. At this point, nothing has been decided.

Greg has been pushing hard to install a 3-semester programming schedule where we will come out competent programmer. I'm on his camp about this. I'm not sure what field I'd like to enter but I'd like to come out a very strong programmer. Without work experience, programming is the skill I like to play to my strength in front of my employers.

So what do you think, is one semester enough to become a strong programmer? My opinion is that at least, some programming course should be offered as elective. I hope to come out of Baruch and be able to program better than the Polytech guys, on par with the NYU,CU MFE guys and with some effort, comparable with the CMU guys. If I have to take 4 required course and one C++ elective course, then that what I'll do to achieve my goal.

Bridgett
08-04-2006, 02:24 PM
Keep it in mind that this is not a program of MASTER OF SCIENCE IN PROGRAMMING though. What is really the big picture here, anyone?

Andy
08-04-2006, 02:31 PM
Keep it in mind that this is not a program of MASTER OF SCIENCE IN PROGRAMMING though. What is really the big picture here, anyone?
[raising hand] Dear Teacher, it is APPLIED MATH for FINANCE.
But isn't programming the most marketable, obvious skill for the graduates of these MFE program? And no matter where you go, some programming will be part of your job? If you like no programming at all, aren't you going to MBA?
Some planning to go into Finance will take more Finance elective course. Some planning to go into hard core programming quant field will take.... :smt017 ...oh wait...there is none.
Choices, more choices...please teacher. :smt027

maxrum
08-04-2006, 02:37 PM
Keep it in mind that this is not a program of MASTER OF SCIENCE IN PROGRAMMING though. What is really the big picture here, anyone?

That's why it should be an elective course. If someone is not looking to get a position which involves programming he or she will choose some other course in Finance.

John
08-04-2006, 02:40 PM
If you stayed late after the Orientation on Tues and talked to Mr. Greg Ciresi, you would be informed that he will be teaching an elective course in Spring 2007 in the area of Risk Statistic.

This is great news, even though I am scheduled to graduate in December, I would seriously consider take this class. I have taken some classes with Greg, his classes are always fun.

Greg has been pushing hard to install a 3-semester programming schedule where we will come out competent programmer. I'm on his camp about this. I'm not sure what field I'd like to enter but I'd like to come out a very strong programmer. Without work experience, programming is the skill I like to play to my strength in front of my employers.

So what do you think, is one semester enough to become a strong programmer? My opinion is that at least, some programming course should be offered as elective. I hope to come out of Baruch and be able to program better than the Polytech guys, on par with the NYU,CU MFE guys and with some effort, comparable with the CMU guys. If I have to take 4 required course and one C++ elective course, then that what I'll do to achieve my goal.

An alternative would be to incorporate computational (C++) elements into other the (applied) courses in our program.

Bridgett
08-04-2006, 03:05 PM
An alternative would be to incorporate computational (C++) elements into other the (applied) courses in our program.

I'd prefer this alternative.

RussianMike
08-04-2006, 03:09 PM
I agree with the elective concept. I personally feel that programming is a marketable skill yet with all of the outsourcing going on, it may disappear. Yes you will need people who understand the concepts of programming etc. but I do not think this is the future. In my company the group in charge of creating the models that we use to price bonds (methodology group) is supposedly moving away from programming since we do have a fixed income developers group. Instead the methodology group will focus on designing algorithms that the developers will actually code and that evaluators (thats my group) will use. Having said all this I do hope to improve my programming(or lack thereof) skills in the AMF program. It also depends on what you plan on doing. If you work at a small company you may be required to do all and know all. If you work at a large company you are a small cog so you will have to know a small part. I plan on doing risk management where programming should be minimal so for me 1 semester should be enough.

Andy
08-04-2006, 03:12 PM
I have taken some classes with Greg, his classes are always fun. Yes, I know what you mean. You can not guess what he will throw at you the next minute. His style can be said as "throw them to the wolves" kind; this is the real world kind. I enjoy his class very much and I learn a lot.
An alternative would be to incorporate computational (C++) elements into other the (applied) courses in our program.
Or having Dave teaching the second course by himself. Dave is very organized, his notes are so well written that one knows exactly what to do to perform the tasks. Having Greg and Dave teaching the same class is perfect but now with Greg teaching the other class, I think the second best thing is having Dave next Spring.

RussianMike
08-04-2006, 03:16 PM
We do have C++ in our classes (we had 2 programs we had to write in Advanced Calc). Now the question is did you use classes, objects functions or did you do what I tend to do (i.e. code, get result and then improve the program after the result)

maxrum
08-04-2006, 03:17 PM
This is great news, even though I am scheduled to graduate in December, I would seriously consider take this class. I have taken some classes with Greg, his classes are always fun.
After talking to Greg and some current students during orientation I will consider taking as many courses tought by Greg as possible. His lectures are very practical and useful in the real world.
An alternative would be to incorporate computational (C++) elements into other the (applied) courses in our program.
The computationa elements using C++ are already there. Even in the Calculus refresher we had to code C++. On the other hand, professor teaching numerical methods is not going to teach us debugging techincs for C++ etc.

Andy
08-04-2006, 03:28 PM
An alternative would be to incorporate computational (C++) elements into other the (applied) courses in our program.
From my conversations with Jay during the C++ refresher, I have an impression that C++ will be used almost in every course. That said, the number of hours doing coding is huge but the number of hours actually learning C++ is not comparable if we only have one class.

Also, Greg plans to teach us debugging, CVS, XP (extreme programming)...I'm very excited to have him as our instructor. This is a big advantage of our program compared to others. Other programs will have some big shot PhD guys teaching us textbook stuff while Greg will teach us things he encouters at work.

Like Max, I'd like to take many of Greg's class, specially if it involves programming.
We do have C++ in our classes (we had 2 programs we had to write in Advanced Calc). Now the question is did you use classes, objects functions or did you do what I tend to do (i.e. code, get result and then improve the program after the result)
Even though I did a quick and dirty code to get my result, I don't think that's the correct way to do it. How about if we need to expand our code to price different bonds, options with various maturity duration. The last program only works with that specific data...no more, no less. I do not plan to write a code to work in a specific case the next time. As Greg said: "Think modular, modular, modular".

frankm1342
08-04-2006, 03:38 PM
On the portion of the Baruch website describing the program, there is a comment to the effect that people who come out of the program will most likely end up in a more programming oriented job or a more finance oriented one. With regard to programming, this fact should be kept in mind for those of us who already know we do not want a job in programming. I agree that extra programming courses should be offered as electives. I just want enough programming made manadatory so that the Baruch program is equal to or exceeds the other top FE programs across the country.

RussianMike
08-04-2006, 03:55 PM
I want enough programming to be able to write algorithms, that is why I like the elective route. Also C++ programming is a requirement to get in so we all have some background in programming(1 class, experience)

John
08-04-2006, 03:58 PM
A side note regarding programming in our program is that in the two Dr. Raynes structured finance courses, students will do quite of bit of coding in Excel VBA. Our group toyed with the idea of creating compiled C++ code to speed up the computationally-intensice, Monte Carlo simulation portion of the algorithm. In the end, we stayed within a pure VBA environment for convenience since there were already enough complexities to worry about in the Asset-backed securities model (several layers of loops).

This is an example of potentially incorporating C++ into a course albeit at our own initiative.

Andy
08-04-2006, 04:02 PM
I want enough programming to be able to write algorithms, that is why I like the elective route.
It depends on how you define "enough". I'd rather take more than the minumum required. Being a competitive person, I'd like to come out and say with confidence that I can program as good as any MFE graduate. I'm pushing the issue sometimes but well, what do i have to loose. :smt102

alain
08-04-2006, 04:05 PM
I think that as long we have programming tasks in all the other classes, we should be ok. We need to apply the programming in the classes that we take. It helps to understand the concepts when they are applied, at least for me. I can see things clearer.

I feel a little disappointed but I understand the reasons behind it.

frankm1342
08-04-2006, 04:08 PM
A side note regarding programming in our program is that in the two Dr. Raynes structured finance courses, students will do quite of bit of coding in Excel VBA.

Was VBA taught in the class or were you all expected to know it already.

John
08-04-2006, 04:18 PM
A side note regarding programming in our program is that in the two Dr. Raynes structured finance courses, students will do quite of bit of coding in Excel VBA.

Was VBA taught in the class or were you all expected to know it already.

My recommendation would be to learn VBA beforehand since it is not terrible difficult vis-a-vis C++. Moreover, since this is a structured finance course, Dr. Raynes will not teach VBA but rather the core SF stuff (legal, structure, cash flow, etc.) He does give you excellent notes and even some sample VBA codes.

Andy
08-04-2006, 04:19 PM
Was VBA taught in the class or were you all expected to know it already.
Frank, either John or Jimmy once told me that Excel/VBA is used heavily in this program and in the industry (I'm sure you know that too well). It does not appear to me that we will spend any time in class to do VBA 101 so students need to pick it up in their own time. We will need to hit the ground running with many of the skills (not neccessary a bad thing).

Once upon a time on Quantnet, there was some guy running a VBA workshop for the current students. See here http://www.quantnet.org/forum/viewtopic.php?t=34
We need to get the experts among us to run one soon. Who volunteers?

RussianMike
08-04-2006, 04:25 PM
Why dont we have a VBA refresher next summer or in January(so as not to interfere with regular classes)? When does one take the Structured Finance Class? I think ideally we should take it/have it before the classes where we will use it.

frankm1342
08-04-2006, 04:30 PM
Yes, I like the idea of a VBA refresher! My collegue who works at BofA and is in our program said he doesn't use C++ in his job, but uses VBA. Also, a lot of the job postings here at BofA call for VBA experience.

Yusheng
08-04-2006, 05:18 PM
It also depends on what you plan on doing. If you work at a small company you may be required to do all and know all. If you work at a large company you are a small cog so you will have to know a small part. I plan on doing risk management where programming should be minimal so for me 1 semester should be enough.

I agree with Mike's opinion. Setting it as elective course is a good idea. Everyone has his own future plan. As an international student, seeking job might be more difficult for me than for most of you who are us citizens or hold green card. So, more skills means more opportunities.

RussianMike
08-04-2006, 06:02 PM
I do not think, though I might be wrong, that anyone wants to come out of this program, a programmer/developer. Some people already do that. The one's that don't, want to do programming of models i.e. create an algorithm/code it, that type of thing. Regarding PhD's and programming (my company has a methodology group that hires mostly PhD's and they do know programming, however, the group is moving away from that)

maciek
08-04-2006, 07:00 PM
We have different backgrouds and each of us expects something different from the programm.

As finance graduate I came to the program to learn to read academic papers (with all that stochastic calculus) and then to code it in C++, VBA and Matlab. I want as much Math as it is needed to uderstand academic papers and as much programming to be able to code what I read.

That's why Math and Programming are my priorities. I want more C++ because I can't programm that well as some of you. I want however programming strictly for financial applications, I am not interested in creating any user friendly interfaces- I think we all want to become quants- not software developers! We want to stay as close to business- that's where the money is.

I don't know if one or even 2 semesters of C++ is enough for what I am expecting to learn. It's hard to say now. I will be able to say more after the first course.

Andy
08-04-2006, 07:25 PM
I do not think, though I might be wrong, that anyone wants to come out of this program, a programmer/developer. Some people already do that.
No, the goal of this program is not to train one to become a computer engineer. There are way many CS,EE programs elsewhere. The goal, rather is to produce financial engineers.
The one's that don't, want to do programming of models i.e. create an algorithm/code it, that type of thing.
That's correct. If you look at the bios of our students, some of them are already programmers, developers but in different languages, roles...most are in IT. They all want to use their programming skills and finance knowledge learned to move to the quant side.
As finance graduate I came to the program to learn to read academic papers (with all that stochastic calculus) and then to code it in C++, VBA and Matlab. I want as much Math as it is needed to uderstand academic papers and as much programming to be able to code what I read.
Maciek, I too would love to become a VBA,Matlab expert but that is not included in the program. We all have to be self-taught. One way or another, we will find ways to help each other achieve that common goal. Remember Latex?
I want however programming strictly for financial applications, I am not interested in creating any user friendly interfaces
I'm afraid you will need to wear the coat of software engineer some time. If you remember Derman's book, the most important improvement he made for the traders in his group is to improve the user interface of his trading models.

gc6130
08-04-2006, 09:41 PM
Keep it in mind that this is not a program of MASTER OF SCIENCE IN PROGRAMMING though. What is really the big picture here, anyone?
Great question. The big picture is to provide practical instruction and exercises in all areas of computing a financial engineer is likely to encounter, such that students can maximize the number of job offers they receive, or, if they are working, to strengthen the skills to be more productive.

Please note the goal is not to become experts in C++; rather the course is
Object Oriented Programming for Financial Applications. A significant portion of the instruction I give will cover non C++ topics. For example, one of the required books is on debugging. Why? Well, in theory we should all do unit testing and code accordingly, but in practice, we may inherit code from a (former disgruntled) colleague and then asked to understand it, run it, change it, i.e. own it.

A strong financial engineer will need to be fluent in a numerical programming language so that s/he can price, hedge, back-test, simulate diffusions etc. quickly and accurately, for a variety of asset classes. I hope that if we do run the elective courses that they will build this foundation.

Andy
08-04-2006, 10:15 PM
The big picture is to provide practical instruction and exercises in all areas of computing a financial engineer is likely to encounter, such that students can maximize the number of job offers they receive
Thanks for the prompt response, Greg. You also forget to mention the internship issue. Some of us are working full-time so there is no need to find internship. For full-time and international students, securing an internship next summer is very essential to getting a job offer after graduation. Unlike CMU or other expensive program, at Baruch the students have to find internship themselves.
You mentioned that one needs to find internship in Jan-Feb and hit the ground running in summer because there is no time for training during the short internship period. So a required C++ in the Fall and another one in the Spring will hopefully give the students enough knowledge to be productive during the internship.

Eddie
08-05-2006, 12:31 PM
Andy wrote
I hope to come out of Baruch and be able to program better than the Polytech guys, on par with the NYU,CU MFE guys and with some effort, comparable with the CMU guys.

So may I presume that currently, the programing skill of our students is sub par compare to NYU, CU MFE guys? And why do you think that's the case? Is it because they've taken candidates with stronger programing backgrounds or because they have stronger programing components in their program?

I believe good programing skill is essential to a quant, nowadays most of the calculations are done in computer, can't see anyone be competent for a quant job without proficiency in programing.

And having more programing courses as electives are totally great suggestions, after all, it's all about the OPTIONS :)

maxrum
08-05-2006, 12:46 PM
So may I presume that currently, the programing skill of our students is sub par compare to NYU, CU MFE guys?

For example NYU has three courses:

First semester:
COMPUTING IN FINANCE

This course will introduce students to the software development process, including applications in financial asset trading, research, hedging, and portfolio management. Students will use popular programming languages (Java/C/C++) to develop object-oriented software, and will focus on the most broadly important elements of programming - superior design, effective problem solving, and the proper use of data structures and algorithms. Students will work with market and historical data to test trading and risk management strategies with an eye towards the practical considerations of software deployment. Several key technologies will be presented and discussed, including recent developments in e-commerce.

Second semester:
SCIENTIFIC COMPUTING

A practical introduction to computational problem solving. Application of Taylor series to differentiation and integration. Floating point arithmetic. Conditioning of problems and stability of algorithms. Solution of linear and nonlinear systems of equations and optimization. Ordinary differential equations. Introduction to Monte Carlo. Principles of reliable and robust computational software. Scientific visualization. Students will use C/C++ and Matlab.

Third semester:
COMPUTATIONAL METHODS FOR FINANCE

Computational techniques for solving mathematical problems arising in finance. Dynamic programming for decision problems involving Markov chains and stochastic games. Numerical solution of parabolic partial differential equations for option valuation and their relation to tree methods. Stochastic simulation, Monte Carlo, and path generation for stochastic differential equations, including variance reduction techniques, low discrepancy sequences, and sensitivity analysis.

Andy
08-05-2006, 12:49 PM
So may I presume that currently, the programing skill of our students is sub par compare to NYU, CU MFE guys? And why do you think that's the case? Is it because they've taken candidates with stronger programing backgrounds or because they have stronger programing components in their program?
I do not know about admission criterias at programs in NYC areas. I do not know about their programming components so I can't comment. I know that CMU is very intensive with their programming training so the students come out of CMU are very good programmers. That's the one I'm shooting for. I do not care about NYU, Columbia or any other MFE program in US for that matter. No matter how they train their students, I want to be a better programmer than any of their graduates...but that's just me.

Andy
08-05-2006, 12:55 PM
For example NYU has three courses:
First semester: COMPUTING IN FINANCE
Second semester: SCIENTIFIC COMPUTING
Third semester: COMPUTATIONAL METHODS FOR FINANCE
Also, it's worthwhile to note that Greg is a graduate of the NYU program so he knows what going on there. He once told us that his goal is to make Baruch's graduates very very good programmers.

Peik Looi
08-05-2006, 02:35 PM
Great question. The big picture is to provide practical instruction and exercises in all areas of computing a financial engineer is likely to encounter, such that students can maximize the number of job offers they receive, or, if they are working, to strengthen the skills to be more productive.

A strong financial engineer will need to be fluent in a numerical programming language so that s/he can price, hedge, back-test, simulate diffusions etc. quickly and accurately, for a variety of asset classes. I hope that if we do run the elective courses that they will build this foundation.

Definitely C++ since it is the mother of programming tools for quant finance in industry and it's what you'll be taught to use in most programs except CU, and some others.

If you have time, get familiar with VBA if you haven't had a working proficiency with it. The preponderance of Excel at workplace, regardless finance or engineering, renders VBA the defacto tool for a quick programming assignment.

Java, well, learn it if you have time, but definitely not before you have mastered C++ (pointers, class etc) and VBA.

My 2cents worth.

Eddie
08-06-2006, 08:49 AM
Andy wrote:
his(Greg) goal is to make Baruch's graduates very very good programmers.

And what specific plan does Greg have in mind(or in place) to achieve that objective?

Andy
08-06-2006, 10:13 AM
And what specific plan does Greg have in mind(or in place) to achieve that objective?Shouldn't this question be best answered by Greg? If you read what I posted earlier, first step would be to install a 3-semester long programming component.

There are so many things involved in scheduling courses, picking the instructors, material,etc...Prof. Stefanica has the final say in everything in this program. We as students can give him inputs, opinions but his job is to make the decisions that best benefit us.

RussianMike
08-06-2006, 02:28 PM
What if Baruch offers classes for alumni where the alumni take what they feel they need more training in? I think this would work best. The program is 1 1/2 yrs for full-time students (kind off hard to cram everything in). Some seminars in the summer and winter + free/low cost classes offered to alumni should work?

Andy
08-06-2006, 02:42 PM
What if Baruch offers classes for alumni where the alumni take what they feel they need more training in? I think this would work best. The program is 1 1/2 yrs for full-time students (kind-off hard to cram everything in). Some seminars in the summer and winter + free/low cost classes offered to alumni should work?I believe that what some of our graduates are doing. I know some of them are taking more advanced classes at NYU, CU to further their knowledge. Some even went on to PhD programs. But that's for later. Now, the focus is to cramp everything into 12 courses so we can get a job.

Andy
08-06-2006, 07:27 PM
FYI,
Here is an FEnews review of the S+ class taught by our beloved Greg. I believe he also teaches at NYU this Fall.
S-Plus Training is Top-Notch
By Susan Mangiero, Ph.D., CFA
http://www.fenews.com/fen10/splus.html

MathSoft Inc.'s product, S-Plus, is fast becoming a standard for financial institutions seeking a powerful statistical analytical tool. A newer version for the personal computer, S-Plus 4.5 Professional, offers a comprehensive Windows interface for those who want to point and click. For those who prefer more control and flexibility, it's possible to modify the program using the command prompt. Its features are many and new users may seek out training.

MathSoft's 4.5 Data Analysis in S-Plus training lasts four days and provides a solid introduction to both approaches. The first two days were dedicated to a GUI (Graphics User Interface) approach, using Windows. Basics such as using the object browser, creating and editing data files and defining new variables led to exercises in graphing and running statistical analyses. The last two days covered basic syntax and creating different types of data objects, followed by work on graphs and statistical models. Because most examples were taken from the two-volume manual distributed to training class attendees, it was possible to return to a topic during breaks if needed. Dated February 1999, the manual was obviously up to date in terms of program refinements. A data disk was ours to keep and included a variety of multivariate samples.

Instruction provided by Greg Ciresi was top notch. He covered the material at exactly the right pace, offering additional insights about the use of S-Plus. He even provided extra mini tutorials during breaks for interested students about topics such as LOESS regression. Moreover, Greg offered helpful recommendations about books on various statistical topics. All S-Plus instructors have strong backgrounds in quantitative methods and encourage participant questions.

Beyond the classroom, S-Plus users have access to a comprehensive web site, available at no cost. Besides S-Press, an online newsletter about new features and applications, internet support includes technical tips and specific how-to instructions. More recently, MathSoft has been offering or participating in forums specifically designed for financial users. See http://www.mathsoft.com/splus for dates and times.

Greg Ciresi is vice president of fixed income research at Cantor Fitzgerald.
Susan Mangiero is an Assistant Professor of Finance at Sacred Heart University.

gc6130
08-12-2006, 11:01 AM
Marc, a world-class C++ programmer, had emailed this reply to the thread on quantnet.

It seems to me like this question will be popping up pretty much every year. I think the students tend to underestimate the prevalence of programming in quant finance. They also do not realize that the only jobs which do not require as much programming will in general require a PhD, or maybe a structuring job which usually will entail quite a bit of experience. Regardless, I do not believe that is the profile of the typical Baruch student. Programming is the crowbar that will open the door to bigger and better opportunities.
On a side note, it is interesting that CMU has the reputation of being the program that goes the deepest into programming. From what I gather, all the programs are pretty much on par for this one.
To give my opinion, I think everyone should be required to take 2 semesters of C++, with a third being elective. Another approach would be to have the students program in all the courses (all applicable homeworks to be handed in as code), in which case you might be able to get away with just one semester of dedicated programming.

RussianMike
08-14-2006, 10:29 AM
I agree with Marc. I happen to be in structured finance and plan on doing risk management after the program. I feel for me 1 semester should be enough as a requirement, and then if I wish I can take more classes as electives. My case may not be typical, though.

Andy
08-14-2006, 04:55 PM
Greg, Marc,
Thanks for the insightful response.
To give my opinion, I think everyone should be required to take 2 semesters of C++, with a third being elective. This would be ideal. I hope Prof. Stefanica can make something toward this approach.
Another approach would be to have the students program in all the courses (all applicable homeworks to be handed in as code), in which case you might be able to get away with just one semester of dedicated programming.
This would be difficult for students without programming background. Practice makes perfect but without proper training and prior experience, this may be counter-productive. Many instructors of those courses are non-programmers and will assign projects without instructions on how to approach the problem. Students will face complicated financial problems with little C++ knowledge.

maxrum
08-15-2006, 11:57 AM
These are courses at CMU (they don't say which are required)

Financial Computing
The goal of this course is to refresh and expand your knowledge of several important topics of the Master Program, such as Object Oriented Programming with C++, theory of pricing and hedging of derivative securities, numerical analysis and stochastic calculus. The course is organized around a project of design and implementation of a powerful C++ library for pricing of derivative securities. You will learn important principles of implementation of financial models and master algorithms of evaluation of different types of derivative securities: European, American, standard, barrier and path dependent options on stocks and interest rates. Prerequisite: Numerical Methods.

Object Oriented Programming I
This course covers the fundamentals of programming in C++. We start with a discussion of the differences between procedural and object-oriented programming, and then cover syntax and programming techniques from the core "C" subset of C++. We then discuss C++ classes, along with inheritance and polymorphism. Considerable attention is paid to heap memory management. Finally, we introduce parametric programming with templates along with a brief look at the C++ standard libraries (STL). Reference texts (not required): "C++ Primer" by Lippman, et al, "Numerical Recipies in C++" by Press, et al. Additional material will be available from the course Web site.

Object Oriented Programming II
Throughout this course, we will be building a non-toy C++ application that uses genetic programming. Most of the concepts from the lectures will be used in this application. First, we look more deeply at the C++ standard library. Then some background on relational databases is given, so that the use of a database as a "back-end" to a C++ program will make sense. We look at the relational algebra, the relational calculus, and the query language SQL. Then we cover the construction of static and dynamically linked libraries. A few topics from Windows programming are briefly covered, and finally the idea of design patterns as object-oriented "building blocks" is discussed. Reference texts (not required): "C++ Primer" by Lippman, et al, "Database Modeling and Design" by Teorey, "The C++ Standard Library" by Josuttis and "Design Patterns" by Gamma, et al. (the "Gang of Four"), plus additional material available from the course Web site. Prerequisite: Object Oriented Programming I.

Object Oriented Programming III
This is a course in advanced O-O and C++ topics. We look at memory management, including overriding the new and delete operators, program design for other kinds of resource allocation, exception-safe code, profiling and optimizations, and other O-O topics as time permits. Also, we will consider additional ways of coupling Excel, VB and C++, and the construction of Excel "add-ins". Reference texts (not required): "Effective C++" by Meyers, "C++ Common Knowledge" by Dewhurst, and "The C++ Standard Library" by Josuttis. Prerequisite: Object Oriented Programming II

bresnick
08-16-2006, 10:12 AM
I think there should be one required core course that covers basic concepts in programming and uses C++. My criticism of the current class is that it focuses on financial concepts and syntax, but pays little attentions to core programming concepts.

The advanced students can take a test to place out of this course.

There should also be a mini-elective for VBA; it would help with structured finance.

In addition the program could provide a couple of advanced classes that could count towards a special computational track. Those students who would like to pursue this track can take these advanced classes.

Eddie
09-16-2006, 12:37 AM
Can't wait to make another post on this very topic even before having my late night dinner... ...

Well, I somewhat endorsed Andy's position on the matter based sheerly on his arguments sake, we have elective choices in math and finance courses, why not offer something for c++ willed people :smt102 , i was on the fence... ...because i was not as informed... ... and i can say i know a little bit better now.

So the thing is, we've heard it from Greg before, if that did not make an impression on you, what about today, can you recall how MANY times Mr Push Patel from the OptionsGroup stressed the importance of having good programming skills - cpp specifically, under out belt... ...and that's to talk about on getting some decent financial engineering job not IT job.

So the question is, is one c++ class enough. I think the answer is plain simple, NO.
I understand people would argue that different people would have different expectations out of the program, of course, so is it at least fair to have more c++ courses as electives so those who expect to gain advanced skills in c++ for finance would have a choice.

Another common arguement is that we use c++ in almost every other courses, so it makes up the gap, or does it really? Well, it's natural that you practice more at something, the better you become at it, no debate in that. But in which way are we getting better by doing this? Well, the thing is we merely use c++ as a tool while doing applications in all the exercises from other classes, but we don't address advanced c++ concepts there. A good example i got today on that was, someone can claim they have 5 years programming expierence, but all they did was programming with Classes for 5 years, so that someone really did not deepen his skill and knowledge in a c++ context, because there's so many advance topics like virtual functions and templates was not addressed. And what does, our c++ course.
But with only one, we gonna miss out on so much... ...I'm sure my view would resonate with some many of you. Hey, i'm doing this course without c++ expierence at all, and I'm loving it and wanting for you, because i know it's gonna be immensely useful down the road, so fear should really not be a factor for you to take on something seemingly hard but beneficial.

So guys, we're in this together and i believe everyone strives to make it better, have your say... ...

Andy
09-16-2006, 01:27 AM
So guys, we're in this together and i believe everyone strives to make it better, have your say...
Agreed. Before I joined the program, I was led to believe that Baruch has been revamping its programming component to a level that every graduate of a program is a very good C++ programmer. It never crossed my mind that they will cut back on the number of C++ elective courses, let alone running only one C++ for the whole program.

I talked to a fair number of current students and incoming students and to the best of my knowledge, there is not a professional C++ programmer among the full time students admitted this year.

As if there are not enough push for it already, the talk today just again reaffirmed the single most valuable skill recruiters value. Anyone can learn finance on the job, but without C++ skill (very strong that is), there are not much hope for the full time students (specially the F-1 students) to obtain a job. Some of the part time students in our program are already professional programmers so it would be easy for them to switch career with the C++ experience. It's not the case with almost all of us, full timers.

So no matter what Dan tells you, you'd better learn more than what is required of you to obtain the MS degree. There are various elective courses in finance but there are none in C++. It's a mystery why there is not. The demand is there, the resource is there.

When there is a will, there is a way. Greg is a big advocate for this so I'm sure between Dave and Greg, we can arrange to have someone to teach the class next semester. Because there is no C++ next semester, Greg pushes everything he wants to teach into one semester. I do not believe that is the best way to learn.

As fulltime international student, I think you guys should be more concerned about your job prospect. Like Mr. Young said, it would take 6 or more months to get H1-B and it takes longer if you have no skills in demand. I do not believe any of our graduates will be hired solely on their finance, math ability and no programming skill. Consider the competitive nature of the market when you guys graduate, I think we should do something about it.

VOICE YOUR OPINION. IT COUNTS. DO NOT LET OTHERS DICTATE YOUR FUTURE. BE PROACTIVE

Andy
09-16-2006, 02:10 AM
Marc, a world-class C++ programmer, had emailed this reply to the thread on quantnet.

It seems to me like this question will be popping up pretty much every year. I think the students tend to underestimate the prevalence of programming in quant finance. They also do not realize that the only jobs which do not require as much programming will in general require a PhD, or maybe a structuring job which usually will entail quite a bit of experience. Regardless, I do not believe that is the profile of the typical Baruch student. Programming is the crowbar that will open the door to bigger and better opportunities.
On a side note, it is interesting that CMU has the reputation of being the program that goes the deepest into programming. From what I gather, all the programs are pretty much on par for this one.
To give my opinion, I think everyone should be required to take 2 semesters of C++, with a third being elective. Another approach would be to have the students program in all the courses (all applicable homeworks to be handed in as code), in which case you might be able to get away with just one semester of dedicated programming.

This is worth quoting a second time. This forum is open for everyone to voice their opinion on what they think will best prepare them for the market demand. If you believe in what the school says is enough for you to get a job, then fine. If you strike for excellence and want to compete with other 1000 or so FE graduates each year, and get the job, then do something.

Eddie
09-16-2006, 02:32 AM
Greg pushes everything he wants to teach into one semester.

Unfortunately Greg has only limited resources to work with - namely one semester, during which he wants us to get the most out of c++.

And I was lucky to have a conversation with Mr Greg on the way home today since we both take the Bronx bound 1/2/3 train, and it's not actually 'everything' been wrapped into one, that's just basically undoable. It's like ask someone to run 10mile in 10 mins, practically unachievable. So things are left out, like 'Implementing derivative pricing using C++', which could easily spend a whole semester on it. Hey, the name itself sounds exotic enough, don't you think.

... ...
recall that Mr Push from the OptionsGroup today mentioned guys from Chicago's program who makes however much... ... well, that kinda prompt me to visit their program website again both at global-derivatives.com and at U Chicago... ...

http://www.global-derivatives.com/schools/programs/chicago-mf.php
http://www-finmath.uchicago.edu/new/msfm/prospective/ourprogram_program.php


global's information is kinda outdated back 3 years. And I've noticed a big revamp in their program... ...they have introduced 3 semester long C++ courses, I believe that's not long ago. See a picture here??!!

But never self doubt :smt049

dstefan
09-16-2006, 06:02 AM
As if there are not enough push for it already, the talk today just again reaffirmed the single most valuable skill recruiters value. Anyone can learn finance on the job, but without C++ skill (very strong that is), there are not much hope for the full time students (specially the F-1 students) to obtain a job. Some of the part time students in our program are already professional programmers so it would be easy for them to switch career with the C++ experience. It's not the case with almost all of us, full timers.


This is way too pessimistic a view on the job prospects of international students. Not nearly all of our international students got jobs with a strong programming component last year, and I do not expect that to happen this year either. And they all got jobs, as did the US residents.


So no matter what Dan tells you, you'd better learn more than what is required of you to obtain the MS degree. There are various elective courses in finance but there are none in C++. It's a mystery why there is not. The demand is there, the resource is there.


Going back to what Marc said, doing C++ assignments in the other classes could, for teh time being, substitute a second C++ class.


As fulltime international student, I think you guys should be more concerned about your job prospect. Like Mr. Young said, it would take 6 or more months to get H1-B and it takes longer if you have no skills in demand. I do not believe any of our graduates will be hired solely on their finance, math ability and no programming skill. Consider the competitive nature of the market when you guys graduate, I think we should do something about it.


Everyone graduating form the program will have knowledge of C++. Once again, international students will get placed, the one difference being that they need to accept offers quickly, and that leads to a 15-20% starting salary discount. What you do to keep the job, and grow in the job is what matters.

It is true that there are jobs - those that have to be filled quickly, for example, that require US residency. But Andy's overall view is a little pessimistic.

DominiConnor
09-21-2006, 01:12 PM
As a pimp in financial markets I have to say that precisely one student has turned up to us straight from
any university finance able to program in C++ in any way that wasn't frankly embarrassing.

I am of course excluding those that did C++ before they went in, and the situation is so bad that even
then I sometimes wonder if something happens whilst doing PDes that over writes the prat of the brain that once held C++, since they seem often to have forgotten it.

Approximately 5% of people we see masters in finance go so far as to express a desire not ever to do anything involving programming.
We are polite to them, and offer the email address of Huxley.

Given that most people don't get most of the entry level jobs they apply for, it's worth looking more at failure modes than perceived success, and I have to say that you need more C++.

C++ is hard, really hard. And this is my problem how ?

kean
03-12-2007, 09:48 PM
Andy,

Although I am not a Baruch student at this moment but I like your idea to get the C++ programming course runs in 3 semester. I believe using C++ skills to enter the quant world is much easier.
We all walk on a narrow path. MFE is a global sport of competition. I hope once I clear my GRE, I will see you guys soon if Dan opens his door.

Cheers,
CK




Greg and Dave are the instructors for our Fall 2006 C++ course. They will take turn teaching us the course. If you stayed late after the Orientation on Tues and talked to Mr. Greg Ciresi, you would be informed that he will be teaching an elective course in Spring 2007 in the area of Risk Statistic. This means he won't be teaching us the second C++ course. It could mean that someone else will be teaching the second C++. It could also mean that we only have one C++ course for the whole program. At this point, nothing has been decided.

Greg has been pushing hard to install a 3-semester programming schedule where we will come out competent programmer. I'm on his camp about this. I'm not sure what field I'd like to enter but I'd like to come out a very strong programmer. Without work experience, programming is the skill I like to play to my strength in front of my employers.

So what do you think, is one semester enough to become a strong programmer? My opinion is that at least, some programming course should be offered as elective. I hope to come out of Baruch and be able to program better than the Polytech guys, on par with the NYU,CU MFE guys and with some effort, comparable with the CMU guys. If I have to take 4 required course and one C++ elective course, then that what I'll do to achieve my goal.

joe_bradley
03-13-2007, 08:14 AM
Someone earlier in the thread said the best way to program is to practice. I couldn't agree more. Someone can teach you the basics, but you aren't going to learn it from lectures.

So I have to point out that the courses in the program do have a lot of programming - provided you do the homework! Of the six courses I have taken in the program so far, five have had significant programming content - and I skipped the C++ course! But of course, in most of these classes you will be working with a group, and if you aren't a good programmer it is tempting to let the group member(s) who already do programming do the the bulk of the work. This is your decision. A better attitude is to attempt the programs on your own and ask for help from your partners. If you don't take advantage of opportunities to learn by doing, you simply aren't going to learn.

BTW, if I can make a plug for a book that helped me a long time ago that was just recently updated: "Code Complete" by Steve McConnell. It shows you how to write code that isn't a hash. And I'm pretty sure it is on the Books 24x7 database.

Joe

pardasani
03-13-2007, 10:58 AM
Okay this may sound rebellious, but in my opinion we don’t really need any course in C++ … I think that time could be better utilized learning other skills maybe some statistics, maybe some more numerical techniques, maybe some databases, maybe even a course in algorithms….

The way I think is that we do * A LOT * of programming in other courses: pde’s and numerical algebra for eg… As Joe pointed out very well if everyone does his or her own share of we would have learnt a lot of C++…. And that’s the best way to learn any language: by actually implementing and practicing with it… for eg, I never understood the need for copy constructors, but I learnt it the hard way when I got serious errors in my matrix library J

What we can do is probably have a requirement that all incoming students be aware of the basics of oop and state that all codes (for eg the matrix library) must be implemented in an object oriented manner… I understand that not everybody comes in with a programming background but then we have the refresher courses to help out such students….

SteveTownsend
03-13-2007, 11:28 AM
This does not sound rebellious, it sounds a bit naive. Check out the headhunter post regarding C++ earlier in this thread (9/06). C++ is really really hard, and crucially this is most true in the sense that a little knowledge is a dangerous thing.

It's also continually evolving, and has a lot of super-useful additional built-in function (the STL) that most self-proclaimed C++ programmers barely scratch the surface of, preferring instead to reinvent complex wheels of all shapes and sizes over and over. I speak here as someone who interviews a lot of programmers. Very few really know C++ the way I and my team would like. When we do find someone that knows C++ and is a good team fit, we hire them because we know that any other language they might need to learn is relatively simple (esp. the transition from Windows 32/Visual C++ -> .Net/C#).

maxrum
03-13-2007, 11:30 AM
What we can do is probably have a requirement that all incoming students be aware of the basics of oop and state that all codes (for eg the matrix library) must be implemented in an object oriented manner… I understand that not everybody comes in with a programming background but then we have the refresher courses to help out such students….

I agree. How I see it, the refresher course should concentrate more on OOP. As a result of this course students should have fully implemented matrix class with basic methods: adding matrices, multiplying them, etc. If someone doesn't take this refresher course - there should be a requirement to come with this implementations ready to use. As a result, from that point students can start working on numerical methods. In addition to that it will be nice to work on creating basic objects for most general financial instruments: bonds, options, swaps etc., and may be some auxiliary classes: for example day class with day-count conventions.

Only a framework of all this objects will be created - no pricing or building yield curve. It will be a very good exercise in C++, and extremely helpful preparation for other courses.

pardasani
03-13-2007, 02:41 PM
some great suggestions by max :-- and agree with them completely...... specially the suggestion about having it a requirement to having built some basic classes before coming into the program....

we could actually have a structure to the classes ( i mean something like :-- you should have a class bond, with member functions duration, convexity... you should have a class sway inherting from bond with a polymo).... a standardization like this serves 2 purposes : a) for those not attending the refresher would know what kind of codes to build ... b) as max pointed out, for those new to C++ it would give them a very good starting point to actually learn C++ hands on....

Andy
03-13-2007, 03:23 PM
Interesting that this thread is still going strong half a year later. At least now, each of us has been through the course to make some sensible suggestions :thumbsup:

I know where Max and SP come from with their suggestions, but you guys forget about its feasibility. There is absolutely no way to install that requirement from an administrator's point of view.

Let's face it, some students never know C++ before and some still don't. The current C++ requirement for incoming students is a bare minimum at best. Some of us met the minimum by having taken the courses years ago. That's like meeting the requirement by letters but not its spirit. The spirit of the requirement is you having a current and up-to-date C++ skill. There is no way to verify that. This is where refresher course comes in very helpful.

How would you verify that the incoming students have a working matrix/bond/duration/what-have-you classes ?

In addition, to enforce your suggestions, we in effect eliminate all candidates not from programming background. Even those with programming background may struggle to code bond, BS without taking the Numerical/Financial Instrument class.

So that's where we are at.

Being said that, we like to point out that the responsibility lays solely on the hands of the incoming students to arm themselves to teeth with the C++ skills. With the C++ refresher and the first semester programming course, do not expect that Baruch will transform you into a top notch programmer, specially if you are non-programmer to begin with.

This discussion is really helpful for incoming students because they know what they should expect/prepare.

I started this discussion in August/06 and now, looking back, maybe having one C++ course is a blessing in disguise ;)

Knowing what I know now, I'd rather spend 10 hours of my working day at my jobs doing something involved money than to debug some memory leak in some pricing models.

I'm also very grateful for my mentor, who is instrumental in helping me recognize the common mistakes. He shows me where the business is, where the dead end job is. The biggest lession I learn from him is that we need to know what we want to do, narrow down to the market/product/role. It's hard to do for someone with my background but that's the only way to not waste some many years doing boring jobs.

pardasani
03-13-2007, 04:46 PM
Interesting that this thread is still going strong half a year later. At least now, each of us has been through the course to make some sensible suggestions :thumbsup:

yups i think its an interesting thread specially because ours being an evolving program :-)



but you guys forget about its feasibility. There is absolutely no way to install that requirement from an administrator's point of view.

I would tend to disagree on that..... we already have "knowledge of c++" as a admission criteria right... all we need to say is either attend the refresher courses (where the basic concepts would be taught to you, and the codes developed will be used later) or if you confidant enough just build up these codes for yourself before coming to first day of classes....

i dont see any reason why is that not feasible.....


Let's face it, some students never know C++ before

I completely agree -- but then I think the aim of a course of a graudate level financial engineering C++ SHOULD NOT be to teach the basics of programing... it is NOT a CS101 or a CS201 course... if you don't know C++ spend some time in the refresher course learning it....



The spirit of the requirement is you having a current and up-to-date C++ skill.


well again i would disagree -- i think all you need is basic C++ which can be taught in a week long refresher course (with the right kind of assignments)... my take a C++ course in our program (if there is any) is NOT intended to teach what a class or inheritence is but is intended to teach more advanced features how are polymorphic tables are implemented for eg realtime or how to test out a 5000 line project...



How would you verify that the incoming students have a working matrix/bond/duration/what-have-you classes ?

once again, we are NOT a bunch of primary school kids that you need to VERIFY that you know the basic stuff.... if you are not mature enough to work on the requirements before joining you lose out..... we are talking about a graduate level class, and I guess everyone is responsible enough to think what's required and hence there is no need for verification......



In addition, to enforce your suggestions, we in effect eliminate all candidates not from programming background.

well i disagree.... Its like saying because we are teaching 2 courses in stochastic calculus (which i think is preety involved even though i am from a engineering background) you are discouraging candidates you did not do probability before....

lets remember its a graduate level course, and in my opinion any good graduate level course must have certain expectations, which certainly cannot be met if you start teaching basic oop concepts


Even those with programming background may struggle to code bond, BS without taking the Numerical/Financial Instrument class.

refresher refresher !!!!!!!




Knowing what I know now, I'd rather spend 10 hours of my working day at my jobs doing something involved money than to debug some memory leak in some pricing models.

more the reason for no/optional C++ course i would say....

maxrum
03-13-2007, 04:48 PM
How would you verify that the incoming students have a working matrix/bond/duration/what-have-you classes ?


It doesn't have to be verified. Just post very detailed syllabus with all requirements. If someone feels it won't be hard to accomplish - no need to take refresher. If someone doesn't want to do C++, refresher course will not help either.

Andy
03-13-2007, 05:23 PM
Great jobs, guys. I do appreciate you spend some time giving opinions. It shows that you care about our program.

I really like Max and SP's attitudes. You are helping the Baruch MFE program by giving opinions on what you think would benefit the quality of our students. This is why I always say Baruch is one of the best programs because students' opinions matter. Everyone wants to do something better for our program, starting from the administrators, faculty, alumni, students.

Imagine when you graduate, your opinions are even more sought after because you would have worked in the industry and your inputs have more weights.

It's funny I have to point out that neither SP or Max took the C++ refresher :D

For what it's worth, I need to point out that almost all international students would not be able to take C++ refresher in early June. Except the few that already in the US.

For those who unable or unwilling to take refresher, I believe we would have some kind of test for them to place out of the course.

I saw that both Max and SP have a problem with me using "verify". I have to admit it's not a best choice of word ;).

We do put trust on our applicants and take them at the face values. It's the applicants' responsibility to live up to their claim that their C++ skills meet the requirements. There is nobody in the admission committee who will "verify" that requirements.

Take a second and think about this:
If Baruch had that requirement last semester, would you be able to meet it and get accepted knowing what you know then, not now ?

pardasani
03-13-2007, 05:53 PM
For what it's worth, I need to point out that almost all international students would not be able to take C++ refresher in early June. Except the few that already in the US.

Ah now we are talking details..... I think we can always figure out something there.... maybe start the refresher late in July/ early August so that it merges with the program dates.... maybe we can put syllabus online and ask only those international students who have a difficulty with the content to attend the refresher.....

I am sure there is a way around this .....

maxrum
03-13-2007, 06:29 PM
It's funny I have to point out that neither SP or Max took the C++ refresher :D


The reason I didn't take it because syllabus looks very basic for me. For example, in the last class of C++ refresher, which is assumed to be the most advanced, I was supposed to study:

Session 8: Classes
- Class Definition 1 - 2 Lectures
- Benefits of Object Orientation
- Encapsulation


These are pretty basic things, and should be taught at the very first class for may be 15-20 minutes (to refresh).

kean
03-15-2007, 09:27 AM
Andy,

Can you start a forum for current students to share their course/ study experience at Baruch in more details format?

Thanks,
Ck:thumbsup:

Agreed. Before I joined the program, I was led to believe that Baruch has been revamping its programming component to a level that every graduate of a program is a very good C++ programmer. It never crossed my mind that they will cut back on the number of C++ elective courses, let alone running only one C++ for the whole program.

I talked to a fair number of current students and incoming students and to the best of my knowledge, there is not a professional C++ programmer among the full time students admitted this year.

As if there are not enough push for it already, the talk today just again reaffirmed the single most valuable skill recruiters value. Anyone can learn finance on the job, but without C++ skill (very strong that is), there are not much hope for the full time students (specially the F-1 students) to obtain a job. Some of the part time students in our program are already professional programmers so it would be easy for them to switch career with the C++ experience. It's not the case with almost all of us, full timers.

So no matter what Dan tells you, you'd better learn more than what is required of you to obtain the MS degree. There are various elective courses in finance but there are none in C++. It's a mystery why there is not. The demand is there, the resource is there.

When there is a will, there is a way. Greg is a big advocate for this so I'm sure between Dave and Greg, we can arrange to have someone to teach the class next semester. Because there is no C++ next semester, Greg pushes everything he wants to teach into one semester. I do not believe that is the best way to learn.

As fulltime international student, I think you guys should be more concerned about your job prospect. Like Mr. Young said, it would take 6 or more months to get H1-B and it takes longer if you have no skills in demand. I do not believe any of our graduates will be hired solely on their finance, math ability and no programming skill. Consider the competitive nature of the market when you guys graduate, I think we should do something about it.

VOICE YOUR OPINION. IT COUNTS. DO NOT LET OTHERS DICTATE YOUR FUTURE. BE PROACTIVE

DominiConnor
04-02-2007, 06:52 AM
As head hunter, I must say that the expectation is that MFE level people are weak at programming, except if their first degree was CompSci, in which case often the expectation is that they shouldn't be allowed on a computer without a grownup to hold their hand.

Expectations are a big thing. If you put C++ on your CV, you will be asked questions about it, indeed many banks ask C++ questions even if you don't say you know it.
That applies to pretty much any skill you cite. To an extent you get to choose some of the questions you will be asked. That's an amplification term, rather than being good or bad.
If you say you're good at something and prove it, things look up, if they read your CV, and assume you know something but you don't then it looks bad.

Thus CompSci people have a tough time. I was doing an first checkout of a candidate recently who claimed to have done CompSci. He'd done Java instead. Java is OK for learning patterns and algorithms, but he'd also been "taught" operating systems and other stuff in Java.
He also thought Apple, was an innovative computer company, a sentiment I might accept from an arts graduate, not a CS one.

He didn't know C++, and I could pick up the notion that he was actually quite scared of it.

A CS grad is expect to be *better* at programming than a physics or maths grad. Yes, really.
In QF that means C++, not any quiche eaters language.

Thus a major failure mode of CS grads is the failing to meet this expectation.
That should be fixable. Even if you've done a CS degree in an English speaking country, you presumably have learned *something* about languages or at least seen the book in the library, so picking up C++ should be easier for you.

I often characterise getting your ideal job as a race. The idea is to be better than others. Thus almost by definition the C++ course at Baruch is insufficient, as indeed is the C++ I do as part of the Wilmott CQF. You need to know more than your peers, and that means doing more than the course.

Francois
04-02-2007, 10:09 AM
I will add a bit more. I am currently a faculty in Computer Science with a dual PhD in math and CS planning to shift to quant
I have taught several programming languages, however, I haven't taught C++. Now, to expect to be proficient in C++ after one class is extremely optimistic.
C++ is a very tricky language, with a lot of fancy stuff to do. You can expect to grasp the syntax of C++ and some of its intricacies in one semester. However, do not expect to be able to program in a truly object-oriented style, to be able to use patterns efficiently, to be able to understand the 'fanciness' of reuse, to be able to debug efficiently, etc.
Unless of course you've already taken at least one class on general data structures and can really focus on the language itself rather than the general programming methods.
Scott Meyers has a few books on programming in C++. They are not geared for quants, but if you spend time working with these books, on efficient C++ programming, this will definitely be extremely useful.

Francois
04-02-2007, 10:41 AM
I guess this being my area, and having discussed, thought about it a lot, I have a lot to say. In general, you do not get proficient in a language while taking a class. You get proficient at a language by programming. There is no way around it.
You can go check Peter Norvig's website. He is the director of Search Quality at Google and is one of the two authors of 'Artificial Intelligence', THE AI reference. He has written something about learning programming languages and why the books along the lines of 'learn XXX in 30 days' are essentially, crap.
What matters is understanding the main concepts of programming languages. It is very well possible that in 15 years, C++ is not used anymore (although 35yrs later, C is still widely used, heck, so is Fortran!). That way, you will be ablet o adapt to a new language without any problem. Just keep in mind that this does not mean, you can spare yourself of learning C++ ;-)

Yiping_Wan
04-02-2007, 11:31 AM
I'm a little curious. Baruch MFE is provided in math department, but c++ is overwhelmingly emphasized. Which is more important? math/c++??
for international students, I will have to miss the refresher. besides books like c++ primer..., what else do you recommend? numerical recipes in c++? my goal is to warm up the skills, I have never programmed any pricing stuffs before. also, because I'm still working full-time, I would not ask for too many books, which may be beyond myself.

thanks for any kind reply :P

pardasani
04-02-2007, 01:19 PM
I'm a little curious. Baruch MFE is provided in math department, but c++ is overwhelmingly emphasized. Which is more important? math/c++??

well I guess that's only an impression.... we do indeed do * A LOT * of math.... 2 courses in stochastic calculus, a course in numerical methods/linear algebra and now a course in PDE's....



for international students, I will have to miss the refresher. besides books like c++ primer..., what else do you recommend? numerical recipes in c++?

If you did not do C++ before I think the book by Bruce Eckel "Thinking in C++" is a very good first book... its available for free on the internet on Eckel's website... If you already know some C++ I would recommend the famous books by Scott Meyer "Effective C++" and "More effective C++"... clears out a lot of concepts..

If you want to do something like numerical recipes I like the red book by Paul Wilmott " The Mathematics of Financial Derivatives " --- although we do cover that book in the program and hence you would learn and do that book anyways after coming here....

Francois
04-02-2007, 03:35 PM
just avoid at all costs the books that present C++ as an imperative language and don't teach you how to implement in an OO way. You might as well learn C then

Andy
04-02-2007, 03:54 PM
Very interesting reponses thus far.

I have an impression that VBA plays an equally important role in the programming picture, specially when it comes to structuring, modeling positions. Some people reported that they were asked C++ during job interviews but doing VBA majority of the time. Shouldn't they be asked more about VBA ?

Is it because the learning curve for VBA is not as steep or long as it is for C++ that people don't stress that much. I remember Dominic touched on VBA a while ago when discussing C++. Would be nice if someone can give a broader view of where VBA and C++ play, broken down to the buy-side/sell-side, pure quant, structuring, front office, support, etc.

Thanks

Francois
04-02-2007, 05:01 PM
VBA being an extremely flexible language (very much like python), it's hardly testing anyone to ask 'write an app for a specific host, in VBA that does xxx'.
Anyone proficient in C++ could learn VBA in a matter of days.

C++ on the other hand is a huge multi-paradigm language. It takes a lot of time and effort to be proficient in C++. It requires the programmer to have a relatively good understanding of the underlying architecture, and, let's face it, it tests your mental abilities quite a bit.

Therefore, it's not really a surprise to see that C++ is mostly used for the interviewing process.

Last but not least, use VBA for what it's really designed for: the development of programs interfacing with excel. For the rest, use a 'true' programming language

Andy
04-02-2007, 05:25 PM
Very nice response, Francois
It's very much inline with what I've been hearing. It's surprising to learn how much development is still being done on Excel/VBA in the big banks. I guess the old saying "Don't fix if it ain't broken" holds true.

We are having a Structured Finance course this semester and all our assignments on building assets/liability models are done on VBA/Excel. This being our Springbreak, we expect to learn them pretty quickly. We'll see what come out of the break. ;)

Francois
04-02-2007, 09:20 PM
If it ain't broken, it doesn't have enough features (engineering maxim).

More seriously, it does make sense to use VBA for this kind of stuff. It was designed for that.
No need for programming pedantry. If a simple language does the job well, use it. \\:D/

joe_bradley
04-03-2007, 10:58 PM
There is a fact that someone should point out, if it hasn't been pointed out already, lest anyone think that knowing your way around VBA will be your be-all and end-all for programming.

VBA is used by Excel 2007 and previous versions. However, I do know that Microsoft is shifting towards an architecture based on VB.NET, not VBA, and that will be a "preferred" way of doing spreadsheet programming.

VB.NET should be a snap to learn if you know C++. On the other hand, Visual Basic programmers have had a rough time making the switch (I know some Visual Basic programmers refer to VB.NET as "Visual Fred" because it turned so much of their Basic knowledge obsolete). Programming language shifts are a part of life, and you're much better off if you have a good grasp of a "foundation" language like C++.