7 Pages

hn

Course: CS 552, Spring 2008
School: Emporia
Rating:
 
 
 
 
 

Word Count: 4326

Document Preview

Notation Page Hungarian 1 of 7 MSDN Home > MSDN Library > Hungarian Notation Charles Simonyi Microsoft Corporation Reprinted November 1999 Summary: Charles Simonyi's explication of the Hungarian notation identifier naming convention. (10 printed pages) A note from Dr. GUI: Long, long ago in the early days of DOS, Microsoft's Chief Architect Dr. Charles Simonyi introduced an identifier naming...

Register Now

Unformatted Document Excerpt

Coursehero >> Kansas >> Emporia >> CS 552

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Notation Page Hungarian 1 of 7 MSDN Home > MSDN Library > Hungarian Notation Charles Simonyi Microsoft Corporation Reprinted November 1999 Summary: Charles Simonyi's explication of the Hungarian notation identifier naming convention. (10 printed pages) A note from Dr. GUI: Long, long ago in the early days of DOS, Microsoft's Chief Architect Dr. Charles Simonyi introduced an identifier naming convention that adds a prefix to the identifier name to indicate the functional type of the identifier. Page Options Average rating: 6 out of 9 Rate this page Print this page E-mail this page Add to Favorites This system became widely used inside Microsoft. It came to be known as "Hungarian notation" because the prefixes make the variable names look a bit as though they're written in some non-English language and because Simonyi is originally from Hungary. As it turns out, the Hungarian naming convention is quite useful--it's one technique among many that helps programmers produce better code faster. Since most of the headers and documentation Microsoft has published over the last 15 years have used Hungarian notation names for identifiers, many programmers outside of Microsoft have adopted one variation or another of this scheme for naming their identifiers. Perhaps the most important publication that encouraged the use of Hungarian notation was the first book read by almost every Windows programmer: Charles Petzold's Programming Windows. It used a dialect of Hungarian notation throughout and briefly described the notation in its first chapter. MSDN is pleased to publish here the original edition of Simonyi's historic work. Program Identifier Naming Conventions This monograph is intended to give you the flavor of the major ideas behind the conventions. When confronted with the need for a new name in a program, a good programmer will generally consider the following factors to reach a decision: 1. 2. 3. 4. Mnemonic value--so that the programmer can remember the name. Suggestive value--so that others can read the code. "Consistency"--this is often viewed as an aesthetic idea, yet it also has to do with the information efficiency of the program text. Roughly speaking, we want similar names for similar quantities. Speed of the decision--we cannot spend too much time pondering the name of a single quantity, nor is there time for typing and editing extremely long variable names. All in all, name selection can be a frustrating and time-consuming subtask. Often, a name that satisfies some of the above criteria will contradict the others. Maintaining consistency can be especially difficult. Advantages of the Conventions The following naming conventions provide a very convenient framework for generating names that satisfy the above criteria. The basic idea is to name all quantities by their types. This simple statement requires considerable elaboration. (What is meant by "types"? What happens if "types" are not unique?) However, once we can agree on the framework, the benefits readily follow. The following are examples: 1. 2. 3. The names will be mnemonic in a very specific sense: If someone remembers the type of a quantity or how it is constructed from other types, the name will be readily apparent. The names will be suggestive as well: We will be able to map any name into the type of the quantity, hence obtaining information about the shape and the use of the quantity. The names will be consistent because they will have been produced by the same rules. http://msdn.microsoft.com/library/en-us/dnvsgen/html/hunganotat.asp?frame=true 4/8/2003 Hungarian Notation Page 2 of 7 4. 5. The decision on the name will be mechanical, thus speedy. Expressions in the program can be subjected to consistency checks that are very similar to the "dimension" checks in physics. Type Calculus As suggested above, the concept of "type" in this context is determined by the set of operations that can be applied to a quantity. The test for type equivalence is simple: could the same set of operations be meaningfully applied to the quantities in questions? If so, the types are thought to be the same. If there are operations that apply to a quantity in exclusion of others, the type of the quantity is different. The concept of "operation" is considered quite generally here; "being the subscript of array A" or "being the second parameter of procedure Position" are operations on quantity x (and A or Position as well). The point is that "integers" x and y are not of the same type if Position (x,y) is legal but Position (y,x) is nonsensical. Here we can also sense how the concepts of type and name merge: x is so named because it is an x-coordinate, and it seems that its type is also an x-coordinate. Most programmers probably would have named such a quantity x. In this instance, the conventions merely codify and clarify what has been widespread programming practice. Note that the above definition of type (which, incidentally, is suggested by languages such as SIMULA and Smalltalk) is a superset of the more common definition, which takes only the quantity's representation into account. Naturally, if the representations of x and y are different, there will exist some operations that could be applied to x but not y, or the reverse. Let us not forget that we are talking about conventions that are to be used by humans for the benefit of humans. Capabilities or restrictions of the programming environment are not at issue here. The exact determination of what constitutes a "type" is not critical, either. If a quantity is incorrectly classified, we have a style problem, not a bug. Naming Rules My thesis discusses in detail the following specific naming rules: 1. Quantities are named by their type possibly followed by a qualifier. A convenient (and legal) punctuation is recommended to separate the type and qualifier part of a name. (In C, we use a capital initial for the qualifier as in rowFirst: row is the type; First is the qualifier.) Qualifiers distinguish quantities that are of the same type and that exist within the same naming context. Note that contexts may include the whole system, a block, a procedure, or a data structure (for fields), depending on the programming environment. If one of the "standard qualifiers" is applicable, it should be used. Otherwise, the programmer can choose the qualifier. The choice should be simple to make, because the qualifier needs to be unique only within the type and within the scope--a set that is expected to be small in most cases. In rare instances more than one qualifier may appear in a name. Standard qualifiers and their associated semantics are listed below. An example is worthwhile: rowLast is a type row value; that is, the last element in an interval. The definition of Last states that the interval is "closed"; that is, a loop through the interval should include rowLast as its last value. Simple types are named by short tags that are chosen by the programmer. The recommendation that the tags be small is startling to many programmers. The essential reason for short tags is to make the implementation of rule 4 realistic. Other reasons are listed below. Names of constructed types should be constructed from the names of the constituent types. A number of standard schemes for constructing pointer, array, and different types exist. Other constructions may be defined as required. For example, the prefix p is used to construct pointers. prowLast is then the name of a particular pointer to a row type value that defines the end of a closed interval. The standard type constructions are also listed below. 2. 3. 4. In principle, the conventions can be enriched by new type construction schemes. However, the standard constructions have proved to be sufficient in years of use. It is worth noting that the types for data structures are generally not constructed from the tags of their fields. First of all, constructions with over two components would be unwieldy. More important, the invariant property of data structure, the set of operations in which the constructions participate, seems to be largely independent of the fields of the structure that determine only the representation. We all have had numerous experiences with changes in data structures that left the operations (but not the implementation of the operations) unchanged. Consequently, I recommend the use of a new tag for every new data structure. The tag with some punctuation (upper case initial or all upper case) should also be used as the structure http://msdn.microsoft.com/library/en-us/dnvsgen/html/hunganotat.asp?frame=true 4/8/2003 Hungarian Notation Page 3 of 7 name in the program. New tags should also be used if the constructions accumulate to the point where readability suffers. In my experience, tags are more difficult to choose than qualifiers. When a new tag is needed, the first impulse is to use a short, descriptive, common, and generic English term as the type name. This is almost always a mistake. One should not preempt the most useful English phrases for the provincial purposes of any given version of a given program. Chances are that the same generic term could be equally applicable to many more types in the same program. How will we know which is the one with the pretty "logical" name, and which have the more arbitrary variants typically obtained by omitting various vowels or by other disfigurement? Also, in communicating with the programmer, how do we distinguish the generic use of the common term from the reserved technical usage? By inflection? In the long run, an acronym that is not an English word may work out the best for tags. Related types may then share some of the letters of the acronym. In speech, the acronym may be spelled out, or a pronounceable nickname may be used. When hearing the special names, the informed listener will know that the special technical meaning should be understood. Generic terms should remain free for generic use. For example, a color graphics program may have a set of internal values that denote colors. What should one call the manifest value for the color red? The obvious choice (which is "wrong" here) is RED. The problem with RED is that it does not identify its type. Is it a label or a procedure that turns objects RED? Even if we know that it is a constant (because it is spelled all caps, for example), there might be several color-related types. Of which one is RED an instance? If I see a procedure defined as paint (color), may I call it with RED as an argument? Has the word RED been used for any other purpose within the program? So we decide to find a tag for the color type and use the word Red as a qualifier. Note that the obvious choice for the qualifier is in fact that the "correct" one! This is because the use of qualifiers are not hampered by any of the above difficulties. Qualifiers are not "exclusive" (or rather they are exclusive only within a smaller set), so we essentially need not take into account the possibility of other uses of the term Red. The technical use of the term will be clear to everyone when the qualifier is paired with an obviously technical type tag. Since qualifiers (usually) do not participate in type construction, there is no inherent reason why they would need to be especially short. Conversely, the tag for the type of the color value should not be "color." Just consider all the other color-related types that may appear in the graphics program (or in a future variant): hardware encoding of color, color map entry number, absolute pointer to color map entry, color values in alternate color mapping mode, hue-brightnesssaturation triples, other color values in external interfaces; printers, plotters, interacting external software, and so on. Furthermore, the tag will have to appear in names with constructed types and qualifiers. A typical arbitrary choice could be co (pronounced see-oh). Or, if co was already taken, cv, cl, kl, and so on. Note that the mnemonic value of the tags is just about average: not too bad, but not too good either. The conventions cannot help with creating names that are inherently mnemonic. Instead, they identify, compress, and contain those parts of the program that are truly individual, thus arbitrary. The lack of inherent meaning should be compensated by ample comments whenever a new tag is introduced. This is a reasonable suggestion because the number of basic tags remains very small, even in a large system. In conclusion, the name of our quantity would be coRed, provided that the color type co is properly documented. The value of the name will show later in program segments such as the following: if co == coRed then *mpcopx[coRed]+=dx ... a At glance we can see that the variable co is compared with a quantity of its own kind; coRed is also used as a subscript to an array whose domain is of the correct type. Furthermore, as we will see, the color is mapped into a pointer to x, which is de-referenced (by the *operator in this example) to yield an x type value, which is then incremented by a "delta x" type value. Such "dimensional analysis" does not guarantee that the program is completely free from bugs, but it does help to eliminate the most common kinds. It also lends a certain rhythm to the writing of the code: "Let's see, I have a co in hand and I need an x; do I have a mpcox? No, but there is a mpcopx that will give me a px; *px will get me the x..." Naming for "Writability" http://msdn.microsoft.com/library/en-us/dnvsgen/html/hunganotat.asp?frame=true 4/8/2003 Hungarian Notation Page 4 of 7 A good yardstick for choosing a name is to try to imagine that there is an extraordinary reward for two programmers if they can independently come up with the same program text for the same problem. Both programmers know the reward, but cannot otherwise communicate. Such an experiment would be futile, of course, for any sizable problem, but it is a neat goal. The reward of real life is that a program written by someone else, which is identical to what one's own program would have been, is extremely readable and modifiable. By the proper use of the conventions, the idea can be approached very closely, give or take a relatively few tags and possibly some qualifiers. The leverage of the tags is enormous. If they are communicated, are agreed on beforehand, or come from a common source, the goal becomes reachable and the reward may be reaped. This makes the documentation of the tags all the more important. An example of such a consideration is the discretionary use of qualifiers in small scopes where a quantity's type is likely to be unique, for example in small procedures with a few parameters and locals or in data structures which typically have only a few fields. One might prefer to attach a qualifier even to a quantity with a unique type of "writability," the ability for someone else to come up with the name without hesitation. As many textbooks point out, the "someone else" can be the same programmer sometime in the future revisiting the long-forgotten code. Conclusion Do not use qualifiers when not needed, even if they seem valuable. Naming Rules for Procedures Unfortunately, the simple notion of qualified typed tags does not work well for procedure names. Some procedures do not take parameters or do not return values. The scopes of procedure names tend to be large. The following set of special rules for procedures has worked quite satisfactorily: 1. 2. 3. Distinguish procedure names from other names by punctuation, for example by always starting with a capital letter (typed tags of other quantities are in lower case). This alleviates the problem caused by the large scope. Start the name with the tag of the value that is returned, if any. Express the action of the procedure in one or two words, typically transitive verbs. The words should be punctuated for easy parsing by the reader (a common legal method of punctuation is the use of capital initials for every word). Append the list of tags of some or all of the formal parameters if it seems appropriate to do so. 4. The last point is contrary to the earlier remarks on data structure naming. When the parameters to a procedure are changed, typically all uses of the procedure will need to be updated. There is an opportunity during the update to change the name as well. In fact, the name change can serve as a useful check that all occurrences have been found. With data structures, the addition or change of a field will not have an effect on all uses of the changed structure type. Typically, if a procedure has only one or two parameters, the inclusion of the parameter tags will really simplify the choice of procedure name. Table 1. Some examples for procedure names Name InitSy OpenFn FcFromBnRn Description Takes an sy as its argument and initializes it. fn is the argument. The procedure will "open" the fn. No value is returned. Returns the fc corresponding to the bn,rn pair given. (The names cannot tell us what the types sy, fn, fc, and so on, are.) The following is a list of standard type constructions. (X and Y stand for arbitrary tags. According to standard punctuation, the actual tags are lowercase.) Table 2. Standard type constructions pX dX cX mpXY rgX Pointer to X. Difference between two instances of type X. X + dX is of type X. Count of instances of type X. An array of Ys indexed by X. Read as "map from X to Y." An array of Xs. Read as "range X." The indices of the array are called: iX http://msdn.microsoft.com/library/en-us/dnvsgen/html/hunganotat.asp?frame=true 4/8/2003 Hungarian Notation Page 5 of 7 index of the array rgX. dnX (rare) An array indexed by type X. The elements of the array are called: eX (rare) Element of the array dnX. A group of Xs stored one after another in storage. Used when the X elements are of variable size and standard array indexing would not apply. Elements of the group must be referenced by means other then direct indexing. A storage allocation zone, for example, is a grp of blocks. Relative offset to a type X. This is used for field displacements in a data structure with variable size fields. The offset may be given in terms of bytes or words, depending on the base pointer from which the offset is measured. Size of instances of X in bytes. Size of instances of X in words. grpX bX cbX cwX Where it matters, quantities named mp, rg, dn, or grp are actually pointers to the structures described above. One obvious problem with the constructions is that they make the parsing of the types ambiguous. Is pfc a tag of its own or is it a pointer to an fc? Such questions can be answered only if one is familiar with the specific tags that are used in a program. The following are standard qualifiers. (The letter X stands for any type tag. Actual type tags are in lowercase.) Table 3. Standard qualifiers XFirst XLast XLim XMax The first element in an ordered set (interval) of X values. The last element in an ordered set of X values. XLast is the upper limit of a closed interval, hence the loop continuation condition should be: X <= XLast. The strict upper limit of an ordered set of X values. Loop continuation should be: X < XLim. Strict upper limit for all X values (excepting Max, Mac, and Nil) for all other X: X < XMax. If X values start with X=0, XMax is equal to the number of different X values. The allocated length of a dnx vector, for example, will be typically XMax. The current (as opposed to constant or allocated) upper limit for all X values. If X values start with 0, XMac is the current number of X values. To iterate through a dnx array, for example: for x=0 step 1 to xMac-1 do ... dnx[x] ... or for ix=0 step 1 to ixMac-1 do ... rgx[ix] ... A distinguished Nil value of type X. The value may or may not be 0 or -1. Temporary X. An easy way to qualify the second quantity of a given type in a scope. XMac XNil XT Table 4. Some common primitive types f w ch b sz st h Flag (Boolean, logical). If qualifier is used, it should describe the true state of the flag. Exception: the constants fTrue and fFalse. Word with arbitrary contents. Character, usually in ASCII text. Byte, not necessarily holding a coded character, more akin to w. Distinguished from the b constructor by the capital letter of the qualifier in immediately following. Pointer to first character of a zer...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

East Los Angeles College - MATHS - 3830
# preliminary calculations for Shape analysis practicalx=bk.coords(gorm.dat); y=bk.coords(gorf.dat)k=dim(x)[1] # number of landmarksm=dim(x)[2] # number of coordinates, =2nx=dim(x)[3] # number of malesny=dim(y)[3] # number of females# so x and
Emporia - CS - 552
Five Types of Review / 21Five Types of ReviewPros and cons of formal, over-the-shoulder, email pass-around, pair-programming, and tool-assisted reviews.There are many ways to skin a cat. I can think of four right off the bat. There are also many
Emporia - CS - 552
** ** TASK-CENTERED USER INTERFACE DESIGN ** A Practical Introduction ** *
Emporia - CS - 552
** ** TASK-CENTERED USER INTERFACE DESIGN ** A Practical Introduction ** *
Emporia - CS - 552
** ** TASK-CENTERED USER INTERFACE DESIGN ** A Practical Introduction ** *
Emporia - CS - 552
** ** TASK-CENTERED USER INTERFACE DESIGN ** A Practical Introduction ** *
Emporia - CS - 552
** ** TASK-CENTERED USER INTERFACE DESIGN ** A Practical Introduction ** *
Emporia - CS - 552
** ** TASK-CENTERED USER INTERFACE DESIGN ** A Practical Introduction ** *
Virginia Tech - CS - 1044
Programmer: Dwight BarnetteCS 1044 Project 4 Spring 2002Adufia Customer Billing Report:Customer Account Billing Outlets Service Utility Regulatory TotalName Number Date Charge Pla
Virginia Tech - CS - 1044
Tic-Tac-Toe Game DataO: D Allison X: D BarnetteX6O6O9X9X7O4X1O3X5O2X8
Virginia Tech - CS - 1044
# Principal Rate Period Years 1000.00 0.05 12 10 1000.00 0.05 12 20 1000.00 0.05 12 30 1000.00 0.05 365 10 1000.00 0.05 365 20 1000.00 0.05 365 30
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 3 Prescriptive Process Modelscopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 4 Agile Developmentcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjun
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 8 Analysis Modelingcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjun
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 11 ComponentLevel Designcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in c
Emporia - CS - 552
Software Engineering: A Practitioners Approach, 6/eWhat is a Component?OMG Unified Modeling Language Specification [OMG01] defines a component as a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 12 User Interface Designcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in c
Emporia - CS - 552
Software Engineering: A Practitioners Approach, 6/eSoftware TestingTesting is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.Chapter 13 Software Testing Strategiescopyright 1996
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 15 Product Metrics for Softwarecopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when us
Emporia - CS - 552
McCalls Triangle of QualitySoftware Engineering: A Practitioners Approach, 6/eChapter 15 Product Metrics for Softwarecopyright 1996, 2001, 2005Maintainability Flexibility Testability PRODUCT REVISIONPortability Reusability Interoperability P
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/ePart 3R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's A
Emporia - CS - 552
SoftwareEngineering:APractitionersApproach,6/eChapter23 EstimationforSoftwareProjectscopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 24 Project Scheduling and Trackingcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 25 Risk Managementcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunc
Emporia - CS - 552
SoftwareEngineering:APractitionersApproach,6/eChapter26 QualityManagementcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction
Emporia - CS - 552
Software Engineering: A Practitioners Approach, 6/eProblems with Conventional Specificationcontradictions ambiguities vagueness incompleteness mixed levels of abstractionChapter 28 Formal Methodscopyright 1996, 2001, 2005R.S. Pressman &amp; Asso
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 30 ComponentBased Software Engineeringcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level
Emporia - CS - 552
Software Engineering: A Practitioner's Approach, 6/eChapter 31 Reengineeringcopyright 1996, 2001, 2005R.S. Pressman &amp; Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjuncti
Emporia - CS - 552
Managing peopleObjectivesManaging people working as individuals and in groupsTo describe simple models of human cognition and their relevance for software managers To explain the key issues that determine the success or otherwise of tea
Emporia - CS - 552
Reliability and Testing** from http:/www.cs.otago.ac.nz/cosc345/lectures.htmlEthical Considerations As computer professionals, we have a responsibility to society. As engineers, we claim to practice some skill and deliver reliable results. Ethi
Emporia - CS - 552
Adaptive Software DevelopmentASD A software development process that grew out of rapid application development work by Jim Highsmith and Sam Bayer. ASD embodies the principle that continuous adaptation of the process to the work at hand is the no
Emporia - CS - 552
Software Product Metrics- Software quality - A framework for product metrics - A product metrics taxonomy - Metrics for the analysis model - Metrics for the design model - Metrics for maintenanceExamples of Metrics from Everyday Life Working and
Emporia - CS - 555
Gates and Boolean Algebra (1)The Digital Logic LevelChapter 3(a) A transistor inverter. (b) A NAND gate. (c) A NOR gate.Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521
Emporia - CS - 555
ISA LevelThe Instruction Set Architecture LevelChapter 5The ISA level is the interface between the compilers and the hardware.Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13
Emporia - CS - 555
Why Use Assembly Language?The Assembly Language LevelChapter 7Comparison of assembly language and high-level language programming, with and without tuning.Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, I
Emporia - CS - 555
Parallel Computer ArchitecturesParallel Computer ArchitecturesChapter 8(a) On-chip parallelism. (b) A coprocessor. (c) A multiprocessor. (d) A multicomputer. (e) A grid.Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearso
W. Alabama - GE - 121
University of Waterloo Final ExaminationTerm: Winter Year: 2008 Student Name _UW Student ID Number _ BLOCK _ SUPP EXAM _ DEFERRED EXAM _Course Abbreviation and Number Course Title Section(s) InstructorGEN E 121 (Mech C+) Digital Computation 00
W. Alabama - ME - 362
294Solutions Manual Fluid Mechanics, Fifth EditionSolution: The combined stream function is = K ln(r) m, with the angle given bytan = |v /v r| = K/r K = = 1.6 independent of r, m/r mThe desired angle is = tan1(1.6) 58 Ans.Local pres
W. Alabama - ME - 362
288Solutions Manual Fluid Mechanics, Fifth Edition4.65 A two-dimensional incompressible flow is defined by u= Ky x + y22=Kx x + y22where K = constant. Is this flow irrotational? If so, find its velocity potential, sketch a few potential
N. Colorado - MUS - 307
MUS 307/507History of Instruments and Instrumental PracticeSpring 2008 MWF 1:25-2:15 PM Frasier 168; Music Library Media Center as noted Prof. Bellman Office: Frasier 155 Office Hours: MW 9:0011:00 AM. Phone: 351-2151 E-Mail: jonathan.bellman@unco.e
Allan Hancock College - CS - 9315
11.Transaction Management OverviewXuemin Lin (Chapter 18 in the texbook)COMP9315: Database System Implementation1TransactionsConcurrent execution of user programs is essential for good DBMS performance.Because disk accesses are frequent, a
Allan Hancock College - CS - 9315
MiniBase Introduction A Simple Relational DBMS Single User Without concurrence Control For Educational Use Developed in conjunction with the text &lt;Database Management Systems &gt; Goal is to let individual components can be studied and implemente
Allan Hancock College - CS - 9315
Tree-Structured IndexesCh9 (2nd Edition) Ch10 (3rd Edition)1IntroductionvAs for any index, 3 alternatives for data entries k*: Data record with key value k &lt;k, rid of data record with search key value k&gt; &lt;k, list of rids of data records wi
Allan Hancock College - CS - 9315
8. Relational Query OptimizationXuemin Lin (Chapters 14 &amp; 13 in the textbook)COMP9315: Database Systems Implementation1Relational Algebra EquivalencesyyAllow us to choose different join orders and to `push selections and projections ahead
Allan Hancock College - CS - 9315
6. Evaluation of Relational OperationsPart A Xuemin Lin (Chapter 12 in the textbook)COMP9315: Database Systems Implementation1Relational OperationsWe will consider how to implement: Selection ( ) Selects a subset of rows from rela
Sveriges lantbruksuniversitet - POL - 19993
Sheet1 PROFILE OF STUDENTS IN SFU COURSES COURSE: POL 351-4 D01 TITLE: PUBLIC POLICY SEMESTER: 1999-3 LOCATION: SFU SECTION TYPE: SEM ENROL: 11= PROGRAM OF STUDENT (Top 5 programs reported in each category Programs with &lt; 3 students not shown separ
Sveriges lantbruksuniversitet - LING - 19993
Sheet1 PROFILE OF STUDENTS IN SFU COURSES COURSE: LING 403-3 D01 LOCATION: SFU TITLE: ADVANCED PHONOLOGY SECTION TYPE: SEM SEMESTER: 1999-3 ENROL: 6 = PROGRAM OF STUDENT (Top 5 programs reported in each category) -Approved Intended Approved Certs, Ma
Toledo - CS - 2528
Allan Hancock College - MATH - 5315
&gt; whos Name Size Bytes Class A 1200x1200 11520000 double array Acond 1x1 8 double array Aev 1200x1 9600 double array CGit 88x3 2112 double array CG
Allan Hancock College - MATH - 5315
&gt; whos Name Size Bytes Class A 1200x1200 75820 sparse array Acond 1x1 8 double array Aev 1200x1 9600 double array CGit 88x3 2112 double array CG
East Los Angeles College - FILES - 164
PSYC 1037 Research Skills II Covariance and CorrelationBoth the covariance and correlation are measures of the relationship between two variables. Covariance is less useful, as it depends upon the units of measurement used, and the magnitude of the
Allan Hancock College - CS - 3153
Automata Theory 101Ralf HuuckSession 1 2008Ralf Huuck1Today last time: Kripke structures / CTLSession 1 2008Ralf Huuck2O ut l i ne Introduction Finite Automata -AutomataSession 1 2008Ralf Huuck3IntroductionSession 1 2008
Allan Hancock College - UG - 200601
SOMS - Undergraduate Timetable 2006Course Course name CodeANAT1510 ANAT2111Course Coordinator Lecture: Day Time Location Lab class: DaySESSION 1Tutorial: Time Location Day Time Location Lecture: Day Wed Tue Thu 10-11am 1-2pm Biomed A Biomed A
East Los Angeles College - GEOG - 5060
GEOG5060 GIS and Environment 15M creditsDr Steve Carver &amp; Andy Turner Lectures: Tuesdays 10-12 CivEng LTB Practicals: Fridays 12-14 &amp; 14-16 GIS Lab Pre-requisities: GEOG5020 and GEOG5040School of Geography University of LeedsCore module for MSc G
Ohio State - AED ECON - 840
Topic 1 IntroductionRegions, spatial association, and communities as ways thinking about economic growth and distribution Regional (emphasis on location within well-defined, though possibly changing, boundaries): a problem or issue is regional if e
Ohio State - AED ECON - 840
first place. Second, the model provides no help in determining which exports will generate the most growth. Third, the model emphasizes exports as the source of growth and ignores cost reductions within the region as a source of growth. In fact, cost
Ohio State - AED ECON - 840
!!higher cost. Infrastructure and public services - there may be economies of scale in the provision of physical infrastructure and public services. This lowers the average cost of providing infrastructure or public services, including schools an
Ohio State - AED ECON - 840
Topic 5 - Central Place Theory, Location Theory, and Systems of CitiesMarket Areas (Notes based on Bogart, The Economics of Cities and Suburbs) Transportation cost is the most obvious cost that must be accounted for when we attempt to deal with spac
Ohio State - AED ECON - 840
Location Theory (from assigned reading by Bogart) I. Location with one input for a single firm Assumptions: a single output a single input transformed in fixed proportions into the output. Factor substitution is ruled out. the input is obtained fr
Ohio State - AED ECON - 840
Topic XB - Institutional Change and Economic GrowthI. Douglas North's institutional change framework A. Definitions 1. Institutions - the rules of the game, including the laws and norms by which society lives and the mechanisms created to enforce th
Ohio State - AED ECON - 840
Niles Hansen, Factories in Danish Fields: How High-Wage, Flexible Production Has Succeeded in Peripheral Jutland, &quot;International Regional Science Review, Vol. 14, No. 2, 1991, pp. 109-32. I. Can rural areas industrialize? They often do not have enoug