CSCI E-143: Programming in C# with Visual Studio .NET

Certificate Test Preparation Section,   Fall 2004

Prospectus and Warning

from Cyrus Stewart, TA for the E-143 CertPrep Section

The Test Itself
The Value of the Certificate
The Value of Studying for the Certification Test
The Purpose of the CertPrep Section
The Structure of the CertPrep Section
If you miss a Saturday
The Textbook

General Info about E-143 CertPrep
E-143 Home Page

This section will meet at 2 p.m. on Saturday afternoons in the basement of the Harvard Extension School’s PC lab, 53 Church St.,  Harvard Square.   It is optional.  

The main purpose of these weekly meetings is to structure your reading of the long text covering the material required by the the certification exam,  so that you can get it done steadily over the course of the semester.   But taking this test,  like attendance at these meetings,  is completely optional.  

For our topics and schedule, see the Certification Prep schedule on the E-143 CertPrep general info page.  

The Test Itself

The test we are preparing for is

Exam 70-316:   Developing and Implementing Windows®-Based Applications
with Microsoft®  Visual C#™.NET  and  Microsoft®  Visual Studio®.NET

Distinguish this test from tests such as

    Exam 70-315   (ASP.NET—web programming using C#)
    Exam 70-320   (.NET Services using C#)
    Exam 70-306   (Windows using Visual Basic .NET)  

The test is created by Microsoft and administered by various companies,  two of whose URLs will be found here on the Certificate Prep web page of the E-143 class website.   You have to register with and go to one of these test centers to take the test.   (There are several such centers in the Boston area.   It is not given at Harvard.)   At some test centers,  the test can be taken on one day’s notice.   If you pass,  you get a piece of paper saying so;  later,  Microsoft will send you an e-mail message concering further registration and mailings.  

The cost of the test is $125.   It is not included with this course.   You’re on your own.   Remember, it’s optional.  

The test comprises 58 multiple-choice questions.   It is given on a PC at the test site.   When you register and pay for the test,  it is downloaded from Microsoft,  which evidently chooses questions out of a large pool,  so that they cannot usefully be memorized.   The questions are similar to our textbook’s sample exam questions:  a few obvious ones, but mostly obscure or impossible.   (But even the simple questions don’t seem very easy when you take the exam for real.)   I was told that a passing score was “700”.   I don’t know what that means,  because I wasn’t told the maximum possible score.   Nor do I know how a percentage of correct answers maps to a percentile score among those who take the test.   (The scoring method probably means that those questions that ask for more than one answer give partial credit.)  

I want to warn you right now that taking this test is a dismaying experience.   To give you an idea of the difficulty and detail of the test:  when the instructor for E-143,  Paul Holley,  took the test in August 2003,  he answered all 58 of the questions,  but was only confident of between 35 and 40 of his answers.   He passed, but he wasn’t given his score,  so he’ll never know whether he passed by a mile or by a single question.   (Mr. Holley states flatly that he could not have passed the test without specific preparation—and he had used .NET professionally for a couple of years, and has taught E-143 and been a TA in E-238.)   When I took the test in September 2003,  I needed all but seven minutes of the 2½ hours allowed,  and even then I felt confident in only about a third of my answers—in other words,  fully two-thirds of the time,  I felt that my answer could very well be wrong.   My score was 802,  but I wouldn’t have been surprised if it had been 502.   If you think of yourself as a good student,  taking this test may very well be a new experience for you:  as hard as you prepare,  and as carefully as you read the book,  the test itself will make you feel as if you barely know the subject,  or that you have wandered into the wrong test,  and finally,  that,  suddenly,  completely,  and unaccountably,  you have lost—your—mind.   It’s not like high school or college,  where the book will have everything you need to know for the test.   You will not ace this test;  Microsoft has seen to that.  

There is one thing that everyone who has taken this test agrees on:  you cannot pass this test unless you have specifically prepared for it.   Even doing very well in the rest of E-143 is not nearly enough.  

We have little experience with the sample tests available from various test-preparation companies mentioned on the CertPrep page on the class website.   (One or two of the TA's have used them.)   We will neither use them in this section nor ask you to use them on your own.  

The Value of the Certificate

It’s not magic.   We don’t think it will get you a job by itself.   Apparently, it doesn't even increase your salary by much: here's a survey.   But its presence might move your resumé up in the pile.  

A portent of possible future use: Mr. Holley is thinking of requiring his TA’s to be certified.  

The real value of the certificate may be that it is part of the MCSD certification,  which is valuable to companies,  because they raise their Microsoft ranking if they have employees possessing the MCSD.   (For an explanation of the MCSD requirements,  see the CertPrep page on the web site.)  

To get credit in E-143, you must take and pass the certification exam.   For the amount of such credit,  see the class website.   For further information about credit in E143,  including the question of how much credit you would get if you took the exam but didn't pass it,  see Mr. Holley.  

If all this sounds daunting,  you should know that in 2002 two students did it successfully in E-143,  without benefit of this CertPrep section;  and last year,  the first year for this CertPrep section,  four students passed the exam.  

The Value of Studying for the Certification Test

It gives you a superficial overview of a lot of the .NET/Windows system.   That’s not nothing—as you will find when you see how much material there is and how detailed a knowledge the sample exam questions require.  

You will have to read all of the text, including the boring stuff in the last chapters that no one ever reads.   You wouldn’t read about Deployment or Globalization if you didn’t have to.  

Once you done this, you will be much less likely to be ignorant of a high-level topic in the .NET system.   For instance, you will not waste time trying to implement Data Binding on your own,  because you will know about the .NET facilities that do it.  

Topics that are covered elsewhere may be revealed to have simpler ways of access   For example, Event Logs and Performance Counters are available from the Toolbox by drag-and-drop;  you don’t have to create them from C# code.  

One topic,  which we cover in our second meeting,  is not only useful,  but is never covered elsewhere on its own,  except as a hurried last-minute explanation when you’re desperately thinking about something else:  Debugging.   You will find that there are at least seven different windows available to display various kinds of information as you run your code in the debugger.  

Some of the topics (such as Data Binding) are useful and interesting in themselves,  and are inexplicably ignored in other texts and courses.  

The Purpose of the CertPrep Section

There are three purposes in these CertPrep sessions:

First,  to give you just enough structure to your reading so that you can finish the text.   The way the reading is split up is described by the CertPrep section's schedule.   This schedule will be updated to reflect changes during the semester.

Second,  to give additional material known to be on the test but not covered by the principal textbook.   The Awful Example of additional material will be found in my notes for Kalani's chapter 6, which covers data access.   This chapter requires more additional material than all the others put together.   (It is also the most important chapter in the book.)

Third,  to supply practice in answering the kind of questions that occur on the test.   The questions we will discuss in class are those found at the end of the chapters in Kalani, and similar questions in other texts.

The Structure of the CertPrep Section

These sessions will study the .NET material,  not how to finesse the test.   In other words, we’re going to do it the hard way.

Sessions will necessarily be run on the assumption that you have read the whole assignment for that week carefully in advance.   We won’t ask you whether you did the reading;  we will simply assume it.   The care with which you should read the text will be revealed by the nature of the questions we go through in class.  

The weekly readings assignments, though long (they average almost 100 pages a week) are as short as they can be and still cover the whole 1036 pages of Kalani in a dozen meetings.   That should give you time before the end of the semester for your own review before taking the test.   If we lose a meeting—to snow, for instance—we will double up later assignments.   We might have a review session in January.  

(For the last allowed date for taking the test for class credit,  see the E-143 class web site.   For news of cancellations,  watch the class discussion forum,  or see the Harvard Extension School web site, or call the 53 Church St. lab at 617-495-5485.   You should watch both sources of information,  because last year we cancelled one Saturday session due to snow when Harvard stayed open.)  

There may be presentations at these meetings, but they cannot possibly cover the material in anything like the detail you will have to master for the exam.   You must do the reading to master this material.   We can’t do it for you.   The presentations may be of extra detail that we believe is valuable for the exam.   I will try to limit the material covered by this CertPrep section to things I think will actually be on the exam.   There’s too much stuff as it is.  

There will be no homework (aside from the reading),  grading,  or testing in this section.   You will not get any credit simply for attending these sessions,  and your attendance is optional.   The only way you can get any credit from this certification preparation is by taking the real certification test.   For the amount of such credit in CSCI E-143,  see the class website or speak to Mr. Holley.  

How much programming is required for this section?    None.   That’s what the rest of the E-143 class is for.  

There will be different parts to each CertPrep session:  

There will hopefully be a lot of discussion about the answers and about what was wrong with the question in the first place.   Such discussion is one of the points of the class.   I think you will find that some of the questions have a way of being repeated on other sample exams—and, hopefully, on the real one.  

Some of the TA’s from the course may take part in the sessions in the role of participants—that is,  on the same level as students attending the sessions.   The students must not be abashed in the presence of such exalted beings.  

Finally,  I want to remind you that those of us giving E-143 are not responsible for the 70-316 exam.   This is important because it means that,  unlike other courses you have taken which give their own final exams,  we are not acting like both your attorney and a judge.   We are coaching you as you prepare for an ordeal you must undergo on your own.   In other words, we're all on your side.  

If you miss a Saturday

As I mentioned,  each session comprises (1)  a short demo or two;  (2)  a summary of the material for that week;  and (3)  discussion of the sample test questions.   I can't do much about getting you the demos,  as they are too simple to be worth transcribing.   The summary will generally be found in the "Notes" for that week's chapter,  pointed to from the schedule on the class's CertPrep page.  

The sample test questions are the central part of each Saturday's session.   They are from two sources: first, Amit Kalani's book on the 70-316 exam,  which is listed on the class's CertPrep web page as the pricipal text.   The questions from that text that we will discuss are the ones (usually 15 in number) found at the end of each chapter.   (We will not use the 75-question test at the end of the book, because I want to leave that for your own self-testing at the end of the semester.)   The second source of questions is Kalani Kirk Hausman's text on the 70-316 exam, which is listed on the same CertPrep web page just under Amit Kalani's.   (This shorter text is the one we refer to as "short Kalani".)   The questions from this text are from two locations:  the end of each chapter (there are usually 10 questions),  and the two 60-question tests at the end of the book.   These two tests cover the whole book, and I will extract those questions that deal with the day's chapter and present them for discussion in class.  

Both of these texts are listed here.  

For those people not attending the Saturday classes,  therefore,  I strongly recommend, in addition to studying the chapter-end questions in "long" Kalani,  that you obtain a copy of short Kalani and go through the questions there,  both the chapter-end questions and those in the tests at the end of the book.   Each week I will list,  on that week's web page,  the numbers of the questions in those tests that we discussed in that Saturday's class.   (You can find each week's web page by going to the CertPrep schedule and clicking the week's "Notes" entry.)  

Also, long Kalani (our principal text) is generally not cumulative.   Except for a few important items such as access to data files,  you should not suffer if appear on Saturday after missing a week. 

The Textbook

Amit Kalani:
MCAD / MCSD Training Guide: Developing and Implementing Windows®-Based Applications
with Microsoft® Visual C#™ .NET and Microsoft® Visual Studio® .NET, Exam 70-316.
© 2003 Que Publishing.      ISBN 0-7897-2823-0.

Mr. Holley's version of this text is marked  “Reprinted with corrections,  August 2003.”   Don’t worry if you get the earlier printing—I didn’t notice a lot of mistakes in mine.   The page numbers are the same between the two printings.   There is a publisher's errata for this text.  

This is the only book we recommend for Certificate Test Preparation.   (There may be additional readings, though, from the on-line .NET help files.)  

As a principal text we do not recommend the shorter version of this text by Kalani Kirk Hausmann et al.—we find it less useful because it lacks the coding examples.   (However, see the use of this text mentioned in If you miss a Saturday,  just above.)   Also, Matthew Stoecker’s book is not recommended as a principal CertPrep text,  though it might be useful as an introduction to .NET/Windows,  especially for those with Visual Basic backgrounds.   These certification texts are listed here.  

Another recommendation for the long Kalani text:  a couple of the TA’s (past and present) read other textbooks first and then were surprised at how good Kalani is when they finally got around to reading it.  

We will cover the entire text: 1036 pages.   Alas! this won’t be enough.   Even if you knew Kalani perfectly,  I doubt you would be able to answer more than 85 or 90% of the exam questions with any confidence.   I will try to list additional material you should know as a supplement to each week’s reading.   (Although I am far from knowing Kalani perfectly,  I do know when he hasn’t covered something at all.)   Remember, no matter how much material I add,  it won’t be enough to make you comfortable during the exam.  

You will be glad to know that Kalani is not cumulative:  later chapters rarely require knowledge of previous ones.   This means that if you miss a week,  you won’t be lost when you return.   (In other words, it’s not like math.)  

The text explains the .NET features and follows them with simple code examples.   Such examples extend the length of the book,  but they make it readable in a way that a mere set of rules is not.   The one unavoidable weakness of Kalani’s book is that,  since it is necessarily an overview with the simplest code examples adequate to illustrate the point,  there may be a large gap between the superficial knowledge you gain from him and a deeper knowledge about the features he describes.   (But Kalani’s purpose is to prepare you for the test.   It’s not going to teach you how to program.   That’s what Mr. Holley is for.)  

You cannot substitute Kalani for Troelsen’s book,  which covers the C# language and other topics in the depth necessary for doing the E-143 class assignments.   Remember:  you cannot pass the certification exam without specifically preparing for it.  

Here are some .NET topics which Kalani does not cover because they are explicitly not required for exam 70-316:  

Kalani does cover every general topic on the certification exam.   The difference between Kalani and the exam is merely detail.   A lot of detail.

At the end of each chapter in Kalani, there are “Review Questions,”  which we might go over in class,  and sample “Exam Questions,” which we definitely will go over—in fact,  such discussion will occupy most of each weekly meeting.   You may prepare your answers to the questions in advance if you wish.   (As mentioned,  I will present questions from other texts.)  

Starting on page 1062 of Kalani there is a 75-question sample exam.   I would like to reserve this for a final review session,  if we have time,  or for you to use in testing yourself at the end of the semester.   If you can forbear looking at these questions,  then the test may be useful as a measure of what you know—even if it is too simple to reflect the real exam.   (Just so you know:  Mr. Holley and I took this test together after reading all of Kalani.   We both missed about a dozen questions—for a grade just over 80%.   And we have both passed the certification exam.)  

In general,  Kalani is not particularly hard reading.   It’s not a novel,  of course, but it’s clear,  and it’s at a constant level of difficulty.   He demands only a basic knowledge of C#,  though he takes no time to explain what he does use.   The code in his examples is obvious,  or he explains it.   A couple of the subjects are tricky,  though—like Data Binding.

As I review Kalani (after reading it carefully),  I have come to the conclusion that as long as the text is,  it comprises the minimum amount of material necessary to acquaint you with those .NET features the text covers.   Try to keep that in mind when you’re on,  say,  page 700.   This also means that the 1036 pages of Kalani text contain very little fat.   I will let you know when I think something in Kalani will not occur on the test,  but don't expect me to say that very often.  

Finally,  remember that no matter how well you prepare,  the test is going to ask you questions you won’t be able to answer.   What we’re doing is offering you the chance to work very hard for a resounding C on a big exam—and to be very happy that that was enough to pass.


Last revised Oct. 3, 2004