Thursday, August 11, 2005

Teaching programming to EE students

It's that time again. Time to teach second year EE on programming. This is their first formal course on programming. Perhaps, this is also their last time? I had only one formal course on programming and that was FORTRAN. Anyway, what should I teach?

We already decided that it's object oriented and C++ is going to be used as the language. Walter Savitch's "Problem Solving in C++" is the textbook. There were a lot of discussion before we came to that decision. Unfortunately, I didn't make notes (and am to lazy to write them down). Every year I re-think about it. (Perhaps, it's time to write the arguments down?) Here's an issue that came my mind recently.

High vs low-level programming

UML or higher level "coding." This is great, but I am afraid that my students would not understand low level coding. Remember that they are EE, engineers. They are not computer scientists. They may have to work with devices with low level programming, such as (micro)controllers and stuff. That's why we picked C++. It's not the best language to teach programming, but it can go to low level or high level.

I was looking at Michael Lynn's presentation (on Cisco IOS shellcode) the other day. (It was a huge fiasco.) Many parts of the description have codes in assembly language. Do I have to teach assembly language to my students? (Perhaps in a "core ware-like" game? Suggestion?) How many of you still play (work) with assembly language? Should I even bother? They'll learn it themselves. (Then, what's the purpose of me teaching them programming if they can learn it themselves?)

The most important thing is I have to teach them the logic of programming. BTW, how do I test logic? I want to know if they have the "foundation of programming," but not language-specific (or even paradigm-specific). Should I test them with pseudo code? Flow chart? Stories?

Anyway ... I wish I am allowed to teach programming with perl :)


adnan said...

pak budi, dimana saya bisa mendapatkan presentasi nya michael lynn ttg cisco bugs itu ?

tksh -=adnan=-

budi said...

Adnan, bagaimana kalau saya emailkan saja? Kemana harus saya emailkan (via japri saja)?

Anonymous said...

pak budi, saya merekomendasikan beberapa situs yg menyediakan soal" cerita problem solving ^_^ :


PapaNadin said...

IMHO, pemrograman akan tergantung dari model komputasi device yang akan diprogram. Model komputasi bersifat independen terhadap bahasa pemrograman yang akan digunakan. Contohnya, model komputasi object oriented bisa juga ditulis dengan bahasa C, atau bahkan assembly.

Untuk EE students, saya menyarankan agar mereka dapat menguasai bagaimana meng-capture model komputasi ke dalam bahasa pemrograman tsb.
- state-machine -> c, java, perl, dsb.
- dataflow -> c, vhdl
- oo -> c, c++.

adnan basalamah said...

email saya makasih banyak ya pak budi.. wassalam -=adnan=-

lewisxs15svclinton said...

Hot News From The Automotive Lending Industry!!

+++++++++Current Profile+++++++++
InterFinancial Holdings, Corp (IFLH)
Current Price $0.036

Is this an undiscovered gem priced to go higher!!
Please read the following Announcement in its Entirety and Consider the Possibilities?
Watch this One to Trade!

IFLH announces Senator David Cain has joined its Board of Directors!!

IFLH volume trading is beginning to surge with landslide Announcement. The value of this
stock appears poised for growth! This one should not remain on the ground floor for long.

InterFinancial Holdings, Corp. (OTC Pink Sheets: IFLH - News) announced that they have added
David Cain to their board of directors. David Cain is currently the Chairman of the advisory
board to TTI (Texas Transportation Institute). Senator Cain represented Senate District 2 for
eight years in the Texas Senate and Chaired the Senate State Affairs Subcommittee on
Transportation and served nine terms in the Texas House of Representatives for District 107.

During his twelve years as Chairman of the House Committee on Transportation, Senator Cain?s
efforts on behalf of the people of Texas have been widely recognized. He was named to Texas
Monthly Magazine?s list of Ten Best Legislators, the Dallas Morning News said he was one of
the outstanding legislators of the 73rd session, and the Texas Department of Transportation
awarded him the Russell H. Perry Award in 1995 for his efforts to gain public awareness of
the need for and benefits of transportation facilities in the State of Texas.

Jeffrey C. Bruteyn, Managing Director, stated, We at InterFinancial are proud to have such a
widely recognized Senator join our board and oversee out automotive lending division. His
affiliations and connections to the automotive industry will be invaluable to our company.
Senator Cain will be instrumental in expediting our approval to use a government issued Seller
Finance License.

Seller Finance Licenses are very difficult to obtain and are usually reserved for the Big Boys
with heavy lobbyists. These licenses are highly coveted because it allows the finance company
to collect the entire down payment, instead of paying a portion of it to the taxing authority.
This dramatically helps a finance company?s bottom line if the buyer defaults on the loan.

With the new GPS tracking systems being installed on every car to dramatically improve
repossessions and with Senator Cain on the Board of Directors, InterFinancial Holdings
is ready to take their business to the next level.


The examples above show the Awesome, Earning Potential of little known Companies
That Explode onto Investor?s Radar Screens. This stock will not be a Secret for long.
Then You May Feel the Desire to Act Right Now! And Please Watch This One Trade!!

All statements made are our express opinion only and should be treated as such. We may own,
take position and sell any securities mentioned at any time. Any statements that express or
involve discussions with respect to predictions, goals, expectations, beliefs, plans,
projections, objectives, assumptions or future events or performance are not statements of
historical fact and may be "forward looking statements." Forward looking statements are based
on expectations, estimates and projections at the time the statements are made that involve a
number of risks and uncertainties which could cause actual results or events to differ materially
from those presently anticipated. This newsletter was paid four thousand dollars from a party
(IR Marketing). Forward looking statements in this action may be identified through the use of
words such as: "projects", "foresee", "expects". in compliance with Section 17(.b), we disclose
the holding of IF LH shares prior to the publication of this report. Be aware of an inherent
conflict of interest resulting from such holdings due to our intent to profit from the liquidation
of these shares. Shares may be sold at any time, even after positive statements have been made
regarding the above company. Since we own shares, there is an inherent conflict of interest in
our statements and opinions. Readers of this publication are cautioned not to place undue reliance
on forward-looking statements, which are based on certain assumptions and expectations involving
various risks and uncertainties that could cause results to differ materially from those set forth
in the forward- looking statements. This is not solicitation to buy or sell stocks, this text is
for informational purpose only and you should seek professional advice from registered financial
advisor before you do anything related with buying or selling stocks, penny stocks are very high
risk and you can lose your entire investment.

Sumodirjo said...

kayaknya komen diatas spam ya pak? blog temen saya juga kayaknya ada yang kena. BTW, kalau perl jangan lah pak, kelihatannya terlalu "aneh" apalagi kalau benar2 baru kenal programming. Tapi ya entah kalau pak Budi mengasumsikan bahwa anak2 EE(apalagi ITB) bisa menyerap dengan cepat. Kalau Python bagaimana pak? tapi mungkin terlalu mudah untuk calon engineer;-) BTW, minta presentasinya michael lynn juga dong pak. nanti saya email japri.

Old Monkey said...

Di Universitas saya , first year programming language kita belajar
Haskell i.e dulu Miranda