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.NETweb 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 preparationand 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
answersin 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 nothingas 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 meetingto snow, for instancewe 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:
- We might give short presentation on one or more of the topics covered that
week.
- I will discuss the summary of the material in the current chapter in
Kalani.
- We will go through the sample exam questions at the end of the chapters in
Kalani, plus any other relevant questions I can find.
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 examsand, hopefully, on the real one.
Some of the TA’s from the course may take part in the sessions in the role
of participantsthat 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 printingI 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:
- The C# language itself
- Threading, and the various methods for locking and synchronizing threads
- Serialization
- Reflection
- Windows Services
- ResetEvents (Manual and Auto)
- The CommandBuilder() method in ADO
- The Connected model vs. the Disconnected model in ADO
- Public/Private key encryption (though it is used in a couple of places
in Kalani)
- Authenticode signing (though mentioned in Kalani)
- Using and writing Visual Studio.NET features
such as macros and wizards.
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 questionsfor 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, thoughlike 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 examand to be very happy that that was enough to pass.
Last revised Oct. 3, 2004