Jump to content

CLD Exam Feedback


Recommended Posts

[cross-posted to ni.com]

Howdy

If anyone has any spare time to review these attached CLD submissions I would be very grateful.

I am looking for specific feedback on coding to NI exam requirements.

I sat all exams under strict conditions.

The disk hierarchy layout, architectures and coding style is based on the examples/content in the Intermediate I course (now named Core 3).

In terms of the implementation, I choose to use Multi-Functional VIs over LVOOP, due to time constraints.

IMHO I find myself taking a bit longer to code using LVOOP.

Also, as these examples are small apps (<4hrs) and the lifecycle of the code is essentially zero, I don't think I would have gotten any huge benefits.

I decided time was the most important factor.

However, the globalness of the MFVI is not used (except for the Error Module) as all the other module calls happen in a single loop, so a simple LVOOP implementation for the purposes of encapsulation and scope would be easy - there would be no statefullness issues in these examples. I would have made the Error module a Singleton using a DVR in a private FGV method.

This raises a question: How best to document a Class (or other Library) to NI exam requirements?

As there is normally a lot more subVIs (e.g 8 methods = 8xFP, 8xBD, 8xVI Properties) for a Class versus a MFVI (1xFP, 8xBD (Cases), 1x VI Properties) and there is also Class Documentation (under Class >> Properties) as well.

This means a lot more time on documentation.

What does NI expect?

Cheers

-JG

Security_System-JG_LV2009.zip

Car_Wash-JG_LV2009.zip

Traffic_Lights-JG_LV2009.zip

Link to comment

As long as the application works, you pretty much pass the CLD. Do NOT leave the exam with a broken arrow. Everything else is the difference between a 70 and a 100.

Well that doesn't make any sense given that Functionality is 15/40 marks (37.5%) - are you saying that the Grading information on the CLD Examination Instructions is wrong e.g. here?

Do you have any extra insight into the CLA marking too? cool.gif

Some notes of caution. The CLD pratice examples are significantly more simple (i.e. shorter) than the test question I got on my CLD. I code quickly, and struggled to finish in the 4 hours.

Some things to look out for. You lose points for using locals. Even in the initialise case. Best you put a nice big comment next to it saying locals are only used here!!!

In your car-wash example you will definitely lose points for overuse of locals.

Also, watch your wire bends. I swear blind my code was 99% optimum wiring but still lost a point for bendy wires. This is a real pain as there is only 1 point to lose for this, so you may as well not bother coding super neatly and just take the 1 point hit (but feel dirty inside...)

Regarding LVOOP, you will probably lose points in the CLD if you do not document evey subVI, including data access VIs. I would stick with Action Engines for now.

Otherwise, you should sail through, assuming you dont run out of time. Remember the VI does not have to run perfectly, or even run. I would prefer to submit an application lacking a bit of features that runs though, and in the BD explain what you would have done if you had more time.

Thanks for the feedback Neil - I was looking for very specific information on the marking, so cheers for your time. beer_mug.gif

I am using these exams to study for the (coding section of the) CLA, as there is not much out there (Darren explains why on his blog).

So I was trying to concentrate on design, architecture, documentation etc...

Thanks again for your review.

I too found like you that these examples are a bit easier than the actual CLD exam (my spec was 8-pages!) so I struggled with the time back then as well.

For fun (and some extra prep) I just re-sat my CLD exam (I wrote the spec from memory and from what I had available).

I was still tight on time, but I was able to complete it to a higher standard.

Link to comment

No offense, great work. But sometime i wonder do we have to write in an overly complicated way to solve the problem? If someone joined your team in your company, would it be easier for him to understand your code or say mine that uses producer consumer with no dynamic events and many functional globals?

Dont get me wrong but i often see some programmers use LabVIEW OOP (classes), dynamic events, semaphores and rendezvous when

- They are not really necessary

- Their is simpler alternative available.

- There is no benefit of using classes like abstraction, plugable architecture (dynamic dispatching) etc

I hardly see anyone comment by saying "write simple code". For example i really dont feel user event/dynamic event to detect error between two loop was simple solution.

Just thought i should share my feelings. Good luck passing CLD.

BTW I took CLD exam yesterday and i am optimistic, i will clear it :)

Thanks!

Edited by Abdullah R
Link to comment

Thanks for your feedback Abdullah and good luck with your exam!

For example i really dont feel user event/dynamic event to detect error between two loop was simple solution.

In case you didn't know, National Instruments taught that method in their Intermediate I Course.

I thought it was a nice way to handle the requirement of stopping the application on an error.

And decided to implement it given the time constraints.

I hardly see anyone comment by saying "write simple code".

I think this is a great point, and something I strive to do.

However, it would be really great if you could post your code, or rather images of your code, to demonstrate how you would solve these issues (or similar ones) writing simple code.

I always love to see how others are thinking and their style.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.