text:
Civ/Civilization IV/Modding/Tutorials/Python Tutorial/The Basics

Contents

 * Page 1: Introduction
 * Page 2: The basics
 * Page 3: Using the API
 * Page 4: Event scripting & Interface mods
 * Page 5: Debugging
 * Page 6: Misc

The basics
As you should know by now, there are several different types of "thing" you can get in python: ints, floats, strings, and bools. You also might be aware of "pointers". I wasn't when I first came to python, so I'll give you a little heads-up about them.

Basically a pointer is a game entity. It can take the form of a unit, a plot (square), or a player. In the default python code, and in many modder's code, a variable is shown to be a pointer by prefacing it with "p". So pUnit will define a single unit in the game, pPlayer a single player.

Likewise, if a variable is prefaced with an "i" it is likely to be an integer (int) variable, and "b" a Boolean (bool) variable. iPlayer, for example, will probably be a player's individual ID number, rather then the pointer for the player.

It does sometimes get confusing, as most pointers have integers which are closely related to them. This method of naming things helps to avoid confusion in a language like python where variables need not be declared, however it is only a guideline, and just because a variable is named as if it were a certain type of variable, it won't necessarily be one.

I also would like to put a note here about "Types". In most xml entries you will need to enter something into a type field. This field is a very important link to python, though must be converted to an int for it to work properly. There is one function that you'll be finding yourself using over and over again, so I thought I'd put it here. This function will find the int corresponding to the type – and as most functions in the API (soon to come) will want the int value of the type it's very useful. For example: gc.getInfoTypeForString("TECH_MYSTICISM") will return the int corresponding to the tech Mysticism, which, as it is the first entry in the relevant xml file will be zero by default. gc.getInfoTypeForString("RELIGION_TAOISM") will return the int 6 by default, as it is the 7th religion listed.

If you don't get that last bit right now, don't worry – hopefully it'll come clear when you read the next section.

<--Previous Page Next page -->


text:
Civ/Civilization IV/Modding/Tutorials/Python Tutorial/Event scripting & Interface mods

Contents:

 * Page 1: Introduction
 * Page 2: The basics
 * Page 3: Using the API
 * Page 4: Event scripting & Interface mods
 * Page 5: Debugging
 * Page 6: Misc

Events
Events are things which occur due to certain triggers. There is only certain amount of fixed triggers, and this ties down modders slightly, however the triggers will accommodate most scripts. If you open up CvEventManager.py, the event triggers run from line 193 down to line 747 (patch 1.52). There are nearly 60 different triggers that can be used, ranging from onUpdate which runs every frame (probably about 30 times a second), to onGameStart which runs only once, at the start of the game.

Most triggers have arguments associated with them. These arguments are stored in the argsList. Under most event headers these arguments are defined. It's usually pretty obvious what they do.

Perhaps the simplest method of adding events on triggers is to just to add the event into the events manager. This will work for small mods, although it raises certain compatibility issues. A better way of doing it is to create your own CvCustomEventManager file. I recommend Dr Elmer Jiggle's event manager (found here). It's a bit tricky to understand at first, but well worth it if you can get it working. For examples of it in action I'd check out any of TheLopez's ModComps (look in this forum).

Things to note:

 * The onEndPlayerTurn tigger does not occur at the end of a player's turn, instead it occurs at the end of the start of a player's turn, after all the cities have built, etc. If you want to do an event on the end of a player's turn you'll probably have to bodge up some code to do it at the start of the next player's turn. It would appear something similar goes on with onBeginGameTurn, and onEndGameTurn, although both occur at the END of the game turn rather than at the beginning like the player ones. Thanks to Kael for spotting this.

Example
If, for instance, you wanted a message to come up on every player's screen at the start of every game turn (in other words, at the start of the first player's turn), you could replace this code in the event manager:

def onBeginGameTurn(self, argsList): 'Called at the beginning of the end of each turn' iGameTurn = argsList[0] CvTopCivs.CvTopCivs.turnChecker(iGameTurn)

with the following code:

def onBeginGameTurn(self, argsList): 'Called at the beginning of the end of each turn' iGameTurn = argsList[0] CyInterface.addImmediateMessage("You have just started a new turn", "") # Adds the message "You have just started a new turn" with no sound attached. CvTopCivs.CvTopCivs.turnChecker(iGameTurn)

''NOTE: When making a formal mod you shouldn't simply add stuff to the event manager like this as it can cause compatibility issues. Check out the custom event manager linked to above.''

Interface
As I mentioned in the introduction almost all of the GUI is created dynamically either when you enter the relevant screen, or at the start of the game. Just about all of it is moddable. The files for modding the interface are in .../Assets/Python/Screens.

Things to note

 * When placing items in the interface that the x and y co-ords that you enter will correspond to the top left hand corner of the item.

CyGInterfaceScreen.getXResolution or CyGInterfaceScreen.getYResolution
 * Remember that the resolution can change. It may often be a good idea to change how your interface displays depending on the resolution. To find the X and Y resolutions you can use the code:

 * If an item needs a name, that name must be unique to that item, or strange things start to happen.

 * The way the techchooser script is written can make it quite hard to mod. Instead of being generated everytime you load up the screen, the techchooser is instead generated at the start of the game, and then only the colour changes are done in-game. To stop this happening in game, and to ensure that the techchooser shows the mods you make to it while you're game is running I suggest you comment out line 72 (screen.setPersistent(True)). This will make the techchooser be constantly regenerated while open, and although this may cause your computer to slow slightly, it should work better. Sometimes though, due to the way it is generated for techchooser mods you will have to restart the game to see any changes.

<--Previous Page Next page -->

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Civ/Civilization IV/Modding/Tutorials/Python Tutorial/Debugging

Contents

 * Page 1: Introduction
 * Page 2: The basics
 * Page 3: Using the API
 * Page 4: Event scripting & Interface mods
 * Page 5: Debugging
 * Page 6: Misc

Debugging
I would appreciate it if somebody could check over this section as I'm not certain as to all of it's accuracy, and cannot test it as I am away from my computer for the next few months

Everybody has to do debugging when their scripts don't work, as it is so easy to make one little mistake, causing the whole code to make no sense. The first step in debugging is to switch the in-game debugging options on. To do this, open up Civilization4.ini (make sure to back it up), and change the following entries to the following values: HidePythonExceptions = 0 ShowPythonDebugMsgs = 1 LoggingEnabled = 1 MessageLog = 1 This should enable in-game python popups, and cause all errors and messages to be printed in your My Documents/My Games/Civilization 4/Logs directory. The three important logs to look for when debugging are PythonDbg, PythonErr and PythonErr2.

Common error messages and their causes:
In the logs usually the errors will have a traceback on them. This traceback lists all the files that are effected by the error, and the lines the error occur on. The lase line is usually the one you are interested in, as this is the one where the error occurs. Sometimes you'll have to go back a few steps as the error won't be on the last line, but usually it is!

Syntax errors:
These are mainly typing errors - missed ":"s, incorrect whitespace, or bad bracketing. The game usually picks up on these when you load it up. The error logs should show you exactly where the error is in the syntax with a little ^ symbol underneath it.

Argument errors:
If you try to use a function designed for a pointer on an integer value, you will get a type error. Go to the line specified and check that the function you're are using is valid. Usually it will say what type of function it is expecting, and what you've given it. NOTE: Some classes need after them in functions, some don't. If you are getting a Type Error this may be the cause.

Type Errors:
These either occur when you are passing a function too many, or too few arguments. You have to make sure the amount of arguments you are passing a function matches the amount of arguments it takes, or the function will throw up an error when you try to run it.

Name Errors:
This means that you've tried to use something that the game doesn't know what is. For example, if you were to type a = b without first saying what b was, there is no way the computer could set a vale to a. Remember a=b does not do the same as b=a. Also, make sure you haven't any "==" where you want "=", or vice versa.

Sometimes you'll get "Argument referenced before assignment". I don't know if this goes alongside the Name Error, if it needs it's own category, but basically it's like a name error, but you define "a" later on in your code.

"List index out of range"
This happens when you try and reference a index in a list, turple, or dictionary which doesn't exist. This one can be tough, and you might have to use methods described in the next part of this section to see exactly what is going wrong.

That's all the error messages I can think of right now. I'm pretty sure there are one or two I've forgotten - if you find any please feel free to ask and I'll include them here. As I said at the start I'm not 100% certain on the accuracy of these, but they should be ok.

Code not behaving
So you've written your code. It all functions with no errors... but it doesn't actually produce the results you expect it to in the game. There can be several causes of this:

Firstly, if you think a piece of code should be having an effect in the game, make sure that it is by checking the API to see if it is a VOID function. It's quite a common mistake when first starting out to use other functions thinking that they will do something, when in fact they just retrieve information.

Secondly, if everything seems right you need to start putting debug messages in. This section brings you back right to the very start of python coding, when you were telling your computer to print "hello world". What you will need to do is to get the computer to print a message telling you what a certain value is at a certain point in the code, and compare it to what you think it should be. For example, the following code will print "a=b" in the debugging log if a=b, and print the values of a and b otherwise: if a == b: 	print "a=b" else: print a 	print b This can be quite hard to decypher in the debug log (often you will have many many numbers), so you can do more advanced messages if a == b: 	print "a = b, a and b are %d, and %d"%(a,b)) else: 	print("a = %d"%(a)) 	print("b = %d"%(b)) Where %d will reference the number outside the "" after the %. If you want to place a string there you have to use %s. This can give you detailed information as to exactly what is going on inside your code, and hopefully from that you should be able to see what is going wrong with it.

<--Previous Page Next page -->


text:
Civ/Civilization IV/Modding/Tutorials/Python Tutorial/Misc

Contents:

 * Page 1: Introduction
 * Page 2: The basics
 * Page 3: Using the API
 * Page 4: Event scripting & Interface mods
 * Page 5: Debugging
 * Page 6: Misc

Misc
This page contains other stuff about Civ 4 python that isn't really covered in the other posts, and is not obvious at first glance. Some of it is fan-made - creating shortcuts to do some quite complicated things.

PyHelpers.py:
Most python files import this file. Basically it adds a few shortcuts to some more complicated functions. If you can't find exactly what you want in the API there is a chance that this file might be able to help you - though it only really creates shortcuts, and still follows the API.

CvGameUtils.py:
This file is used when deciding certain things, like what can/cannot be built. It can be used to interrupt some basic game functions. Normally each function returns "False", but if you were to make it return "True" under some certain conditions on those conditions the unit, for example, could be removed from the list of units available. You could use this to make having the slavery civic make a slave unit be buildable, for example. I'd check it out yourself to see exactly how much power you have in there.

Scriptdata:
If you want to add additional information about certain parts of the game world you need scriptdata. For example, if you want a unit to use up "ammo" everytime it fought, and then have to return to a city with an armoury to resupply, or maybe you want plots to become muddy if too many units travel on them without roads, you need scriptdata.

If you want to play around with scriptdata, I recommend getting Stone-D's excellent SD-Toolkit. This toolkit allows you to attach pieces of data to parts of the game. Each part must be identified with a unique mod-name (for compatibility).

NOTE: There is an improved version of the toolkit posted on this post on CFC by Teg_Navanis. This version is faster than the default version, and fixes several minor issues the default had.

Action Buttons:
talchas has released an | Action Button's Utility Mod which is a template for adding buttons to the GUI to do custom functions when pressed. The AI will have no clue about it.

Square Selection:
Once again by talchas | this mod is a template. With suitable modification this could be used to make artillery act exactly as Civ 3 artillery, with no bodges. Once again, AI shortcomings come in.

.ini file modifications:
While I have not actually tried it myself, there is a mod by Dr Elmer Jiggle which allows you to add variables to a mod's .ini file. Get it here

<--Previous Page


text:
Civ/Civilization IV/Modding/Tutorials/Adding a Civilization

So, you want to add a Civilization to the hugely popular game Civilization IV?

For beginners, this can be a fairly large undertaking. Fortunately I’m here to both guide and provide some aids.

Part 1: The tools
Before you start anything, you need to make sure you have the right tools. We’re going to be editing XML files.

This can be done in window’s notepad, but I find that notepad++ is better, as it provides find and replace tools, as well as a few tools for working with XML files.

There is also going to be some Image editing and converting. For image editing you can use Paint Shop Pro, Adobe Photoshop, or a free alternative known as The GIMP. All images/textures in the game are .dds files. This stands for Direct Draw Surface, and is a texture format for DirectX.. There are plugins for Photoshop, Paint Shop Pro and The GIMP that will output .dds files, but they are very iffy. Luckily there is DXTbmp, a stand alone program that will take in most image files and save them as any flavour of .dds.

Part 2: Planning
First off you’re going to need to know what Civilisation you’re going to make. For this tutorial I’m going to make Australia. After that is decided, you have to think about a few other things:

City Names: Fairly obvious here. You could only have one city name, but after that it’ll start pulling random names for your new towns. A good idea would be to have 15+

 Starting Techs: In the game all the original Civs have 2 starting techs from the first 6 available (Mining, Mysticism, Fishing, The Wheel, Agriculture and Hunting). The Starting Techs can be any techs that are available, and you can have more then two. But unless you want to unbalance the game, stick with just having two from the starting six

Unique Units: All the original Civs have one unique unit. These units are slightly better versions of other units in the game, and actually replace them for that Civ. Each Civ can have more then one unique unit, but this can unbalance the game if you’re not careful.

Unique Building: In the Warlords and Beyond the Sword expansion pack for Civ IV, each civilization has a unique building, that are improved versions of the buildings they replace. These buildings are named and in a reminiscent of something to do with the leader.

Leaders: Each leader has their own Traits and favoured civic. As with the Starting Techs and The Unique units, you can have more then what the Civs in the original game had, but again, beware of unbalancing the game (unless that’s what you’re planning on doing)

Part 3: Setup
Civ4 has a very strict directory and file structure for mods. You are going to need to set up a structure like this, in the \\Firaxis Games\Sid Meier's Civilization 4\Mods folder

YourCiv\Assets\Art\Interface\Buttons\Civilizations \

YourCiv\Assets\Art\Interface\Buttons\Units\

YourCiv\Assets\Art\Interface\TeamColor\

YourCiv\Assets\Art\Interface\Leaderheads\

YourCiv\Assets \XML\Art

YourCiv\Assets \XML\Civilizations

YourCiv\Assets \XML\GameInfo

YourCiv\Assets \XML\Text

YourCiv\Assets \XML\Units

Or just download this .zip and unzip it to the Mods folder.

Now you’re going to need to copy some of the XML files from the original game into your mod directory, as we’ll need to edit them later. The files come from  \\Firaxis Games Civilization 4 and go into \\Firaxis Games Civilization 4\Mods and the same structure. The files you need are:

Assets\XML\Art\CIV4ArtDefines_Civilization.xml

Assets\XML\Art\CIV4ArtDefines_Leaderhead.xml

Assets\XML\Civilizations\CIV4LeaderHeadInfos.xml

Assets\XML\Civilizations\CIV4CivilizationInfos.xml

Assets\XML\GameInfo\CIV4DiplomacyInfos.xml

Assets\XML\Interface\CIV4ColorVals.xml

Assets\XML\Interface\CIV4PlayerColorInfos.xml

Assets\XML\Units\CIV4UnitInfos.xml

Part 4: Making the Pictures - Graphics (Civ Flag and Leader Head)

Flag
First off we’ll create your civilization’s flag. The flag is displayed at the bottom right, near the minimap and near each of your units. The texture we have to create is 128x128 in size, but in game the flag is scaled down about 25% horizontally to fit on the flag model. The easiest way I can think of making the flag is creating a 96x128 image and then stretching the horizontal 25% to 128.

I got my source image from here, rotated it right 90 degrees, and resized it so the height was 128. Then I added some boarders to the side to make it 96 pixels in width. Finally I resized it to 128x128. Here is the result. Now, save your image as a .bmp somewhere, I usually put it where the end .dds file will be put. This would be  YourCiv\Assets\Art\Interface\TeamColor\

Open up DXTbmp and load the .bmp. You now should be looking at something like this. Over to the right hand side of the window it that ’Alpha Channel’ box.

The Alpha Channel is a map that tells the game what pixels of the texture are transparent, and which aren’t. In our case, all white pixels are transparent, and will show the default colour of the civilization. We want to change the Alpha channel to all black. Double click on the white part and it will load the Alpha channel in your default image editor. Bucket fill it all black, save it and click on the 3rd icon (white arrow up) to reload the edited Alpha channel.

Now go to File->Save As->DDS Texture. You be shown a save box. Navigate to  YourCiv\Assets\Art\Interface\TeamColor\ and save the file, making sure you change save type to DDS DXT 3. That is very important.

With that flag, the in game the flag turned out like this. I added a border to the top, giving these (better) final results that can be seen here and here.

Leaderhead
The original Leaderheads are actual 3D Meshes which can be an involved process. in the midterm we will use static images much in the same way we did with the flag.

The Leaderheads also have the same problem of being a square texture, but showing in a rectangle that is 25% smaller horizontally. The only difference is that the texture is a 512x512. So, doing the same thing we did with the flag, make/get a base image that is 384x512 and then resize it to 512x512.

I’ve decided to have John Howard as the leader for the Australians, mainly because he was the easiest to get a picture for. Source image, here I just cropped out Howard at about 0.75 ratio, then resized it to 512x512.

This time when you run it through DXTbmp, just leave the Alpha Channel white. Then save it to YourCiv\Assets\Art\Interface\Leaderheads\

Part 4:Making the Buttons - Graphics(Buttons)
Now we have to make three buttons, one for your Civ, one for your leader and one for your Unique Unit.

For all three buttons, here is a border and Alpha channel: Border Alpha Channel Save both of these somewhere.

First is the Civ button. This is going to be the image for the flag, put into the above border. I imagine that you know how to do that. It isn’t needed, but it’ll make it look nicer. Load the finished image into DXTbmp, then click on the first button under Alpha Channel. This is how you load the Alpha Channel bitmap you saved before. Navigate to the Alpha Channel bitmap and load it. Then save the .dds as to '' YourCiv\Assets\Art\Interface\Buttons\Civilizations\ '', using the same options as before.

Next up is the Leader button, again, I’m going to get this from the image I made before, and merge it with the border image. Run it through DXTbmp, with the same Alpha Channel bitmap, and save the file in YourCiv\Assets\Art\Interface\Leaderheads\, obviously with a different name then the actual Leaderhead picture.

Lastly we need to do our Unique Unit button. This is exactly the same as the last two, except we need to find/make a new source image. Here is mine. Run it through DXTbmp, exactly the same as the last two times and save it in  YourCiv\Assets\Art\Interface\Buttons\Units\

My 3 buttons, here.

Part 5: Making the Words - XML(Text XML)
First off I’ll try to provide a crash course in XML. XML is a way of storing and organising information.. Most, if not all information is enclosed by tags, these tags look like this: information The tag part can be anything, usually it’s something that describe what the information is. There are also these tags:

The first one is used when (in this instance), there is no information for this tag and the second is used for comments. I think that’s about all you need to know. Just be wary of typos in tags, if your not copying them from somewhere.

Now, to the XML text file. This file is a little different from all the other XML files, mainly because it’s name can be anything and it’s loaded in addition to the same (types) of XML files that come with the game. Anyway, this file contains the text that will be shown in the game. All the other XML files reference these text XML files when anything is needed to be written to the screen. This is so multi-language is made easier, and when one section of text it’s needed to be used multiple times. With this it’s only needed to be written out once, rather then every time it’s needed to be used.

Everything in this file is in this structure:  TXT_KEY_CIV_YOURCIV_DESC Your Empire in French in German in Italian in Spanish  I imagine it’s fairly straight forward. First it opens a TEXT tag, this is just a way of telling the game “Hey, everything up to the close of this tag, is all together” Next it opens a TAG tag. The text that is contained within this tax is what will be used in the other XML files to print this line (depending on what language you are using). After this is the tags for the individual languages that are needed. And that’s it about the file.

Here is a text XML file that contains the basics of what you’ll need to make a civilization. Download it and unzip it to in your  YourCiv\Assets \XML\Text directory, then open it up for editing. It’s a slightly edited version from this tutorial. While the file is good, the tutorial isn’t complete.

All the data in this file is very easy to understand, just change all the YOURCIV, YOURLEADER and YOURUNIQUEUNIT parts of each tag and then the information contained in each of the tags below it.

Part 6: Adding the Civ - XML(Civilization Infos and more text XML) (long)
Navigate your way to Assets\XML\Civilizations and open CIV4CivilizationInfos.xml. This file contains all the information about the civilizations. What we’re going to need to do is add another entry for Australia.

The easiest way to do this is copy and then edit one of the civilizations that are already there. I copied the American Entry and have edited that.

If you look at the entries for the tags Description, ShortDescription and Adjective, you should see that they match up with entries in the GameTextInfos_yourciv.xml file.

For now, don’t worry about the  DefaultPlayerColor tag. I’ll cover that one later.

Have a look at the city tags now. They should look something like  TXT_KEY_CITY_NAME_WASHINGTON. Look familiar? They are the same type of tags that Description and the rest use. If you put 2 and 2 together, you’ll figure out that the city names are put into the GameTextInfos_yourciv.XML file… These are a little different then the other texts, mainly because they are names, and how different languages handle names. Here is an extract from CIV4’s City name file:  TXT_KEY_CITY_NAME_WASHINGTON</Tag> <English>Washington</English> <French> <Text>Washington</Text> <Gender>Male</Gender> <Plural>0</Plural> </French> <German> <Text>Washington</Text> <Gender>Male</Gender> <Plural>0</Plural> </German> <Italian> <Text>Washington</Text> <Gender>Female</Gender> <Plural>0</Plural> </Italian> <Spanish> <Text>Washington</Text> <Gender>Female</Gender> <Plural>0</Plural> </Spanish> </TEXT> Fairly self explanatory, and if you want you can just include the English entry, but I don’t know what will happen when people from other languages play the mod.

Anyway, copy that code, and put it at the end of the GameTextInfos_yourciv.XML  file. Then edit the Tag name and the entries beneath it. After you’ve done that, go back to the  CIV4CivilizationInfos.xml and add in the new city name tags.

I’m going to put in 20 cities and be lazy, by just putting in the English ones. I got the list of cities from here.

After this we have the Units/Unit tags. This is where the Unique Unit is assigned to the Civ. There needs to be a bit of explaining here.

There are tags for UnitClassType and UnitType. Each basic unit is in it’s own UnitClass, wether their Workers, Macemen or Stealth bombers. The Unique Units share the UnitClassType with the unit they replace. So, for example: Unit Name:		Worker			Fast Worker UnitClassType:		UNITCLASS_WORKER	UNITCLASS_WORKER UnitType:		UNIT_WORKER		UNIT_FAST_WORKER

With that explained, you might want to go hunting around \New Civ\Assets\XML\Units\CIV4UnitInfos.xml to find the unit class of the unit that you want your Civ’s Unique Unit to replace.

In adding Australia’s SAS, it isn’t going to be much different from America’s Navy Seal. It’s actually going to be of the same UnitClassType. So all I have to do here is change the UnitType.

Next up is the FreeUnitClasses/ FreeUnitClass tags. This is a way for you to give extra units at the start of the game to your civilization. There are two tags here: UnitClassType and iFreeUnits. The first one, is as with the last one, the unit class, not the actual unit it’s self.

The second tag needs a little explanation. At the start of the tag is an “i” this means that the information contained between the tags is an integer, or any whole number. Whatever number you put here is the amount of that type of units you’ll get extra at the start.

So, with this, you could give a Civ 2 extra Warriors or 1000 ICBMS at the start. Also, you can give the Civ more then just one type of unit, just copy everything between the <FreeUnitClass> and </FreeUnitClass> tags, then modify them

All the original civs give 1 of the UNITCLASS_SETTLER, so I suggest you do the same. And leave it for balancing issues.

Now we move onto the FreeBuildingClasses/ FreeBuildingClass tags. This is a way to give your Civ a building at the start of the game. Again, there are two tags here: BuildingClassType and bFreeBuildingClass BuildingClassType is the same as the UnitClassType we worked with just before. Except, it’s obviously for buildings.

The other tag, bFreeBuildingClass, is yet another that needs a little explanation. The “b” at the start means that it’s a Boolean tag. For those that don’t know, that means that it can be either “True” or “False”, these are represented by 1 or 0 respectively. You’ll notice that all the ones in the file are given a 1. This indicates that it is a Free Building. You could add a BuildingClassType and make the bFreeBuildingClass eual 0, but then it would behave as a normal building.

With this you could give your Civ a Hospital from the start, but I think that it only gives one building of that type.

All the original civs again have one here. They give a BUILDINGCLASS_PALACE, which obviously is the Palace. I suggest you do the same and leave it for balancing issues, again.

Next we have the FreeTechs/FreeTech tags. This is where the techs that each Civ starts with are listed. As with the others, there’s 2 tags: TechType and bFreeTech TechType is the tag of the tech, and bFreeTech works like the one for the free buildings.

As explained before, all original Civs have 2 techs from the first 6 that are available.

Next up there is a closed tag for DisableTechs. So, if you wanted you could disable some techs for your Civ, but I’m not going to go on about it here.

Moving on we have the InitialCivics and AnarchyCivics. Self explanatory, it’s the civics that your Civ is on at the start of the game and during the anarchy after changing Religion or Civics.

All the original Civs have the “basic” Civics for both of these, but you could easily change them.

Now we have the Leaders/Leader tags. Much the same as most of the others, two tags: LeaderName and bLeaderAvailability. LeaderName is something that we will be adding later, but you can add in what it will be, should be along the lines of LEADER_LEADERNAME. Then bLeaderAvailability, is weather the leader is available.

I think you could add leaders from other civs into this, so with a little editing, you could have Ghandi leading the French, or Washington leading the Germans.

Finally we have the CivilizationSelectionSound and CivilizationActionSound tags. I personally am not too sure about sounds (yet), so just leave them. You could possibly make them closed tags, if you wanted

Part 7:Adding the Leader - XML(Leader Head Infos)
Firstly I’m going to admit: There is way too much stuff in here, and I don’t know half of it, and possibly couldn’t figure out more then a quarter of it. I’ll guide you through what you need to do, and if you want you can play around with the many other options in it. There is some excelent info in the CIV4LeaderHeadInfos on what's in this file. Definatly have a look at it, even if you don't want to modify this file too much.

Firstly, pick an existing leader that is the most like your leader, then copy everything between their <LeaderHeadInfo> and </LeaderHeadInfo> tags. Then copy it after the last </LeaderHeadInfo> down the bottom.

Now you’ll want to change the tags of the leader you copied to represent the one you’re making. First off that means changing their name to your leader’s name in the top four tags. Then there’s a bunch of different “attitudes” for your leader, play around with them if you want, but I’m not going to. At the bottom of this group, there’s a FavirouteCivic tag. Change this to suit your leader.

After that is the Traits/Trait tags. Like the FreeTechs/Freetech tags for the civilization, but this refers to the eight different traits each leader can have. Two tags inside it: TraitType and bTrait TraitType is the tag for the trait you want your leader to have, bTrait is a Boolean for if they have the trait or not.

With this, like the others, you can add as many as you want, but it will be unbalanced.

Everything onwards is just stuff to define your leader, and how they act when used by the CPU. I’m leaving it, because as I said before, there is just way too much stuff in there.

Part 8:Adding The Unique Unit - XML(Unit Infos and even more text XML)
Another one that has heaps of options, which we really don’t need to use, as we’re copying a unit that should very closely resemble what we want to use anyway.

So, go find the unit that your Unique Unit is replacing and copy everything between it’s <UnitInfo> and </UnitInfo> tags, then paste it after the last </UnitInfo> tag down the bottom.

Keep the class the same (remember?) And change the Type tag to what you put in the CivilizationInfos.xml file. You should be able to skip all the tags down to the Description tag.

The Description, Civilopedia and Strategy tags are all references to texts (that you’re going to have to write, in the case of the Civilopedia and Strategy). Original UnitCivilopedia texts can be found in \\Firaxis Game\Civilization 4\Assets\XML\Text\CIV4GameText_Civilopedia_Units.xml, while the Strategy texts are in \\Firaxis Game\Civilization 4\Assets\XML\Text\ CIV4GameText_Strategy.xml . Have a look at them to see what the originals had, and then type up your own in your text XML file.

After doing that, look through the next ~60 lines, check out the options and change some, if you want. They all should be fairly obvious to you now. Seeing as we’re doing a Unique Unit, you really shouldn’t be changing too much…

The next tag I want to look at is the iCost tag. This is obviously the production “cost” to make the unit, you have to balance this with the other additions your unit has over the basic unit. But I really think this is something you’ll have to learn through trial and error.

Down a few more, we have iMoves tag. This is the number of spaces the unit can move each turn. Simple stuff.

Down some more we have the iCombat tag. I’m guessing that your Unique unit is a combat unit. Well this is where its combat strength is defined. Again, simple stuff.

Down a bit more and we have the UnitClassAttackMods and UnitClassAttackMod tags. This defines UnitClasses that this unit is either better or (possibly) worse against. 2 tags in this one: UnitClassType and iUnitClassMod. UnitClassType is the tag that defines which Unit Class you’re talking about. iUnitClassMod is an integer modifier. I think it adds the number as a % of the normal damage. Example: If you have a unit with 20 in its iCombat, and 50 in the iUnitClassMod, and it’s facing a unit from the unit class, it will act as though it actually has 30 for its iCombat. I’ll remind you, this is how I think it works.

Next up, I want to tell you about the iPower tag. This is actually for the AI, and is the “points” contribute Power Rating. This is an internally used rating that helps the AI make decision on whether or not it would be a good idea to attack other Civs, among other things. (Thanks Isak)

Next up (after the UnitMeshGroup), we have the Button tag. It does exactly as it says, points to the .dds file that has the button for that unit. Might as well change it now, considering we’re here.

Delete everything between the tags and put: ,Art\Interface\Buttons\Units\yourbutton.dds And that’s all you need to do for that.

Finally we have the FreePromotions and FreePromotion tags. Like a lot of the others, it’s self explanatory and hs 2 tags in it: PromotionType and bFreePromotion. PromotionType is the actual tag that points to the promotion the unit gets and bFreePromotion is a Boolean that says whether it is free or not.

After you’ve done all that, you’ve got your Unique Unit in the game, only a few more things to do before the mod is playable.

Part 9:Adding the Pictures - XML(Art Defines Civilization and Art Defines Leaderhead)
Now we add in the (rest) of the pictures, completing the necessary parts to play the mod.

Open up CIV4ArtDefines_Civilization.xml and scroll to the bottom. Paste this under neath the last </CivilizationArtInfos>: <CivilizationArtInfo> <Type>ART_DEF_CIVILIZATION_YOURCIV</Type> <Button>,Art/Interface/Buttons/Civilizations/civbutton.dds</Button> <Path>Art/Interface/TeamColor/civflag.dds</Path> <bWhiteFlag>1</bWhiteFlag> </CivilizationArtInfo> Change the type tag so that your civ’s name is there. Then Change the button and path tags to their respective path and files. Now, bWhiteFlag tells the game to actually use the texture for the flag it’s pointed to. So in my case I’ll actually see the Australian flag.

Now open up CIV4ArtDefines_Leaderhead.xml, again scroll to the bottom. And where is something else to copy and paste into it: <LeaderheadArtInfo> <Type>ART_DEF_LEADER_YOURLEADER</Type> <Button>,Art/interface/LeaderHeads/leaderbutton.dds</Button> <NIF>art/interface/LeaderHeads/Leaderhead.dds</NIF> <KFM/> <NoShaderNIF/> <BackgroundKFM/> </LeaderheadArtInfo> Remember to paste it after the last </LeaderheadArtInfo>

Again change the Type tag so it has your civ’s name. And change the button and NIF tags to point to your leader button and Leaderhead, respectively.

In the original ones, the NIF points to some kind of 3D file, or some such. Because we can’t import our own (yet), we can make the NIF point to a .dds, but then we have to close up the other 3 tags that are there, because they’re not needed.

Now, if either I or you haven’t done anything wrong, your civilization should be playable. There’s a few more things to do, but for now you can play.

Part 10:Adding some Colour - XML(Color Vals, Player Color Infos and Civilization Infos)
Now, remember back in Part 6, I told you to skip the DefaultPlayerColor tag? Well we’re going to fix that up now.

Open up the 3 XML files: CIV4ColorVals.xml, CIV4PlayerColorInfos.xml and CIV4CivilizationInfos.xml Now, in CIV4CivilizationInfos.xml go to your civ and find the DefaultPlayerColor tag. Change the tag to something. For mine, I’m going to use PLAYERCOLOR_GREEGOLD, obviously it’s going to contain a green and gold colour scheme for Australia.

Now open up CIV4PlayerColorInfos.xml. By now what you see here should be very straight forward. Copy all of the info between a pair of <PlayerColorInfo> and </PlayerColorInfo> tags and paste it beneath the last </PlayerColorInfo> tag. Change the type tag to what you did just before in the CIV4CivilizationInfos.xml file.

Just for now, take a quick look in the Civ4ColorVals.xml file. Here you will find a heap of pre-defined colours. Down the bottom are the COLOR_PLAYER_* colours. It would be best to see if the colours you would like to use are there. For me I’m going to use COLOR_PLAYER_GREEN for my primary colour and COLOR_PLAYER_GRAY_TEXT for my text colour. I’m going to also me up a gold colour for the secondary colour.

Now, back into CIV4PlayerColorInfos.xml and put in the tags of the colours that you want to use, if you have any. Also change the other tags for colours that you want to make. After you’ve done that it’s time to head back into Civ4ColorVals.xml.

Looking between the <ColorVal> and </ColorVal> tags you see Type, fRed, fGreen, fBlue and fAlpha. Like the ‘i’ and ‘b’ prefixes before, the ‘f’ indicates the type of information to be contained in this tag. The ‘f’ stands for “Float”, or a number that can include decimal places.

If you’ve done a bit of graphics design, or some modding like this before, then you possibly already can guess what’s happening here, but I’ll explain. The four ‘f’ tags are designed to hold a number from 0 to 1. For fRed, fGreen and fBlue it denotes the “intencity” of the colour that’s going to be shown. So, if you give fRed 1, and the other two 0, you will get a pure Red. If you give fRed 0.33, fGreen 0 and fBlue 0.66, you’ll get a (I think) nice purple colour.

The fAlpha, is for the transparency that will be used when this colour is called. 0 indicates that it will be totally transparent, 1 means that it will be totally opaque (solid). For these colours we’re making now, you’ll want the fAlpha to always be 1.

For my gold I’m going to use these settings: <fRed>1.00</fRed> <fGreen>0.77</fGreen> <fBlue>0.11</fBlue> <fAlpha>1.00</fAlpha>

Save the 3 files, and your colours should be done.

-End-


text:
Civ/Civilization IV/Modding/Tutorials/Minimum City Range

The default minimum city range, or minimum city distance, is 2 squares between cities. Some mods change this to 3 squares to lessen overlap between cities. This distance can be changed by editing the file GlobalDefines.xml in the directory Sid Meier's Civilization 4\Assets\XML. (Search for " MIN_CITY_RANGE ".) To make this change in a mod rather than your main files (which should always be backed up), edit GlobalDefinesAlt.xml in the directory Mods/[Mod name]/Assets/XML/.


text: Algorithm Implementation/String searching/Match Rating Approach


text:
User talk:217.65.149.50

Welcome to Wikibooks. We invite everyone to contribute constructively to our collection. Take a look at the welcome page if you would like to learn more about contributing. However, unconstructive edits are considered vandalism, and if you continue in this manner you may be blocked from editing without further warning. Please stop, and consider improving rather than damaging the hard work of others. Thanks. -- Herby talk thyme 14:31, 20 February 2007 (UTC)

title: User talk:217.65.149.50


text:
Template:Haskell/Solution

← Back to

title: Template:Haskell/Solution


text:
Haskell/Solutions/Next steps

Introducing pattern matching
The difference is what happens when the argument is smaller than. In both the second and the third versions, they will be matched only on the final cases (by the catch-all patterns  and , respectively). In the second version, the final case evaluates to  at once. In the third version, however, there is also the  guard, which is evidently true when the argument is less than  ; and thus the result will be. Thus,  for instance evaluates to   with the second version but to   with the third version.

N.B.: In a footnote to the text we claimed that for this example we wouldn't be too worried about what should happen if  was given nonsensical inputs; still, corner cases like this are the sort of issue that tends to trip us up when writing "real" code. In other words: it might make a difference in your program, so stay alert.

Here is a variation of the third version which is exactly equivalent to the second one:

title: Haskell/Solutions/Next steps


text:
Haskell/Solutions/Type basics

 * 1) "H" is a   with just one element.
 * 2) 'Hello World' is invalid because  s consist of only one character.

And in the second round:

title: Haskell/Solutions/Type basics


text:
Haskell/Solutions/Recursion

The factorial function

 * 1)  can be defined as follows:
 * 2) Typing   should yield the message  .  This is because, according to the definition,   is , which is  . This will never stop, so the function will keep going until it runs out of memory.
 * 3)   can be defined as follows:

Other recursive functions
1. 5 × 4:
 * 4 isn't 1, so we recurse: work out 5 × 3
 * 3 isn't 1, so we recurse
 * 2 isn't 1, so we recurse
 * 1 is 1, so we return 5
 * We add the current number, 5, to the result of the recursion, 5. We get 10
 * We add the current number, 5, to the result of the recursion, 10. We get 15
 * We add the current number, 5, to the result of the recursion, 15. We get 20.

2.

3.

4.

List-based recursion
The answers for 1-3, in one block of code:

does not match on an empty list so you can also have:

And here is the accumulating :

title: Haskell/Solutions/Recursion


text:
Talk:Octave Programming Tutorial

Hi, I wrote a page about struct arrays (http://en.wikibooks.org/wiki/Octave_Programming/Struct_Arrays). Why is this page removed? Alex

There is something grammatically wrong with this sentence: "This why, only one advanced programming Wikibook is being written; but therein the differences between MATLAB and Octave languages are presented." I'm not an author or part of this community so I really don't want to change it but perhaps someone would. -PS

"Getting started" should really start with system requirements, how to download, how to install, etc. Another good topic is saving and running scripts.

title: Talk:Octave Programming Tutorial


text:
Cookbook talk:Simple Nachos

No cheese? --Roger McCoy 18:54, 20 February 2007 (UTC)

title: Cookbook talk:Simple Nachos


text:
User talk:Sharper~enwikibooks

Welcome to Wikibooks!!! Someone else will probably give you a better welcome, I just wanted to say hi. 64.150.0.1 19:42, 20 February 2007 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Sharper. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Sharper~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:44, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:29, 19 April 2015 (UTC)

title: User talk:Sharper~enwikibooks


text:
User:64.150.0.1

HELLO WORLD

title: User:64.150.0.1


text:
User talk:64.90.250.10

Welcome to Wikibooks. We invite everyone to contribute constructively to our collection. Take a look at the welcome page if you would like to learn more about contributing. However, unconstructive edits are considered vandalism, and if you continue in this manner you may be blocked from editing without further warning. Please stop, and consider improving rather than damaging the hard work of others. Thanks. -- Herby talk thyme 19:49, 20 February 2007 (UTC)

title: User talk:64.90.250.10


text:
Cookbook:Choco-Nutty Pie

 * American cuisine | Vegetarian Cuisine | Holiday Recipes | Dessert

Ingredients

 * ½ cup butter, melted and cooled
 * 1 cup white granulated sugar
 * 3 eggs, beaten slightly
 * ½ cup flour
 * 1 package (6 ounces) chocolate chips
 * 1 teaspoon vanilla
 * 1 cup chopped nuts (your choice)
 * 1 unbaked pastry pie shell

Procedure

 * 1) Combine the first four ingredients and mix until well blended.
 * 2) Stir in chocolate chips, vanilla, and nuts.
 * 3) Pour into unbaked pie shell and bake at 350°F for 45–50 minutes.
 * 4) Let cool before cutting.

title: Cookbook:Choco-Nutty Pie


text:
Cookbook:Choco-Crunch Bites

| American cuisine | Vegetarian Cuisine | Holiday Recipes | Dessert

Choco-crunch bites are a type of no-bake confection bound with peanut butter.

Base

 * 1 cup (100 g / 3.5 oz) sunflower seeds
 * 1 cup (80 g / 2.8 oz) raisins, chopped
 * 1 cup (80 g / 2.8 oz) mini-chocolate chips
 * ¼ cup (15 g / 0.5 oz) puffed rice cereal
 * ¾ cup (225 g / 7.9 oz) peanut butter

Topping

 * ½ cup (60 g / 2.1 oz) powdered sugar or 1 cup (80 g / 2.8 oz) coconut

Procedure

 * 1) Mix all ingredients except the topping together.
 * 2) Form into 1-inch balls by pressing the mixture firmly together with clean hands.
 * 3) Gently roll in either the powdered sugar or coconut.
 * 4) Cover and refrigerate any leftovers.

title: Cookbook:Choco-Crunch Bites


text:
Cookbook:Kipspek (Bacon-wrapped Chicken)

| Cuisine of Suriname

Kipspek, which literally translates from Dutch into "chickenbacon", is a very easy snack consisting of cubed chicken wrapped in bacon, which is then breaded and fried.

Ingredients

 * 1–2 chicken breasts, cubed
 * Salt
 * Black pepper
 * Bacon strips
 * 1–2 eggs
 * Fine powdery breadcrumbs
 * Toothpicks
 * Oil

Procedure

 * 1) Season the chicken with salt and pepper.
 * 2) Wrap each cube of chicken in a strip of bacon.
 * 3) To make sure the bacon doesn't roll off the chicken, stick a toothpick from one end to the other.
 * 4) Roll the kipspek in the breadcrumbs.
 * 5) Whisk the eggs, and dip each kipspek in the eggs.
 * 6) Roll the kipspek through the breadcrumbs once again. Leave them for about half an hour to dry out the surface.
 * 7) Heat the oil in a deep pot.
 * 8) Fry the kipspeks until they're golden brown all over.
 * 9) Serve with ketchup or mustard—don't forget to remove the toothpick before taking a bite.


text:
Cookbook:Mediterranean Green Chicken

| Mediterranean cuisine

Ingredients

 * 1 bunch curly parsley, washed
 * 2 shallots, peeled and coarsely chopped
 * 3 cloves garlic
 * 6 tablespoons olive oil
 * 3 tablespoons Dijon mustard
 * 1 tablespoons Italian herb blend
 * Juice of 1 lemon
 * 2 tablespoons black pepper
 * ¼ teaspoon salt
 * 1 whole chicken, cut up (or any 8 chicken pieces—any combination of leg, breast, thigh, and wing)

Procedure

 * 1) In a blender or food processor, combine parsley, shallots, garlic, olive oil, mustard, Italian herb blend, lemon juice, pepper, and salt. Purée.
 * 2) Transfer mixture to a gallon zip-lock bag.
 * 3) Add chicken, making sure it's covered on all sides by the marinade.
 * 4) Seal bag and refrigerate for an hour.
 * 5) Preheat oven to 300°F (150C).
 * 6) Transfer chicken pieces to a rimmed baking sheet.
 * 7) Bake about 40 minutes, turning pieces after 20 minutes, until juices run clear.

title: Cookbook:Mediterranean Green Chicken


text:
Cookbook:Nutty Brownie Bars

| American cuisine

Ingredients

 * 1 regular package brownie mix
 * 3 tablespoon vegetable oil
 * 1 cup sweetened condensed milk
 * ½ cup chopped almonds
 * ¼ cup chopped walnuts
 * 10 miniature chocolate coconut candy bars, chopped

Procedure

 * 1) Prepare brownie mix according to package directions, reducing oil to 3 tablespoons.
 * 2) Pour into lightly greased 9-by-3-inch pan.
 * 3) Spread condensed milk over the brownie batter.
 * 4) Sprinkle with chopped nuts and candy bars.
 * 5) Bake at 350°F for 35–38 minutes or until done.
 * 6) Cool completely and cut into bars.

title: Cookbook:Nutty Brownie Bars


text:
Cookbook:Orange Brulée

| American cuisine | Vegetarian Cuisine | Dessert

Ingredients

 * 1 large navel orange
 * 1 large Cara Cara orange
 * 1 tablespoon unsalted butter, melted
 * 2 tablespoons brown sugar
 * 1 pinch cinnamon
 * Vanilla yogurt
 * Mint sprigs, for optional garnish

Procedure

 * 1) Preheat oven to broil and position rack on the second from top position.
 * 2) Cut off ends of each orange, then cut off the rind using a paring knife, making certain that no bitter white pith remains.
 * 3) Cut each orange crosswise into thirds and place in an oven-proof baking dish.
 * 4) Combine melted butter with brown sugar, then spread over orange rounds.
 * 5) Sprinkle with cinnamon.
 * 6) Place oranges in the oven and broil several minutes until the oranges are hot and begin to form brown spots on the tops.
 * 7) To serve, arrange oranges in pretty stemmed glassware and drizzle with any cooking juices. Top with a dollop of yogurt and a mint sprig.

Notes, tips, and variations

 * The deep ruby color of the Cara Cara orange contrasts beautifully with the navel orange, but you can use two navel oranges if you prefer.

title: Cookbook:Orange Brulée


text:
User talk:66.42.192.5

Xania talk 22:16, 20 February 2007 (UTC)

title: User talk:66.42.192.5


text:
User talk:64.231.116.133

Please stop creating pages to add vandalism to Wikibooks. If you wish to test then use the sandbox instead. I have now deleted 2 of your additions and if you continue to do this then you will be blocked from editing on Wikibooks. Please contribute to the project rather than vandalise it. Xania talk 22:25, 20 February 2007 (UTC)

title: User talk:64.231.116.133


text:
Microprocessor Design/Performance Metrics

= Performance Metrics =

Performance metrics are measurements of a microprocessor that help to determine how well a microprocessor performs.

For many years, computers were excruciatingly slow. Much time and effort were dedicated to finding ways of getting typical batch programs to run faster -- to reduce runtime or, in other words, to improve throughput. In the process, many other things were sacrificed.

Runtime
Runtime is the time it takes to run a program.

We will discuss some of the subtleties of accurately measuring runtime in a later Benchmarking section.

For now, let us note that, for any program running on any computer,

time per program = clock period * cycles per instruction * instructions executed per program

You see there are 3 different factors involved in the total time. If you can reduce any one of those factors, then the time will be shorter, making your users happier.

Alas, all too often attempts at making one factor shorter result in making some other factor larger. Sometimes a CPU designer will focusing on only one factor, trying to make it as small as possible, and hoping that the resulting increases in the other factors will be small enough that there is still a net improvement.

Clock rate
Clock rate (often called "clock speed") is one of the easiest to measure performance metrics, and the most over-emphasized.

As of 2008, clock rate of most CPUs is measured in MHz. A typical FPGA soft processor runs at about 10 MHz (a clock period of 100 ns), but later in this book we will explain techniques for increasing the clock rate of a FPGA soft processor to over 100 MHz (a clock period of less than 10 ns).

Cycles per Instruction
Historically, all early computers used many clock cycles during the execution of even the simplest instruction. During the RISC revolution, many designers focused on reducing this factor closer to the apparent minimum of 1 cycle per instruction. We will discuss some of the techniques used later in this book. Since then, CPUs that use techniques such as superscalar execution and multicore computing have reduced this even further. Such CPUs can (on average) use less than 1 cycle per instruction.

"CPI" is a throughput measure of how many instructions are completed (on average) for a given number of clocks. A CPU that can complete, on average, 2 instructions per cycle (a CPI of 0.5) may have a 20 stage pipeline, which inevitably causes a 20 cycle latency between an instruction fetch to the completion of that instruction. We ignore those 20 cycles when we calculate CPI.

instructions executed per program
If the program you need to run is a binary executable, this number can't be changed.

However, some CPU designers have the freedom of designing a new instruction set (or at least adding a few instructions to an old instruction set).

Early CPU designers attempted to reduce this number by adding new, more complicated instructions, that did more work. (Later this idea was retroactively called "CISC"). When a given program (perhaps a benchmark program) is re-compiled for this new instruction set and executed, it requires fewer total executed instructions to finish. Alas, these more complicated instructions often require more cycles to execute -- or worse, a longer clock period, which slows down every instruction -- so the net benefit was not as great as was hoped. In a surprising number of cases, such "RICH" instructions actually made the runtime worse (longer). Benchmarking is required to see if such changes to the instruction set are worthwhile.

Some examples where it did turn out to be worthwhile:

More complicated instructions that do more work include the "load multiple" and "store multiple" instructions of the ARM processors, the "multimedia extensions" of other processors, the MAC instructions used by most DSPs, etc.

Sometimes a CPU can be tweaked in ways that fewer instructions need to be executed in a program, without adding complexity -- the "every instruction is conditional" technique used by ARM processors (the "conditional logic" was needed anyway for conditional branches); the "add more registers" and "register windowing" ideas, each of which attempts to reduce the number of register spill/reload instructions; widening the width of the data bus, so more data can be transferred per "load" or "store" instruction (also enabling wider instructions); etc.

There are a few chips that do things in a few cycles of a single "instruction" that any von Neumann CPU would require hundreds of cycles to implement -- such as content-addressible RAM.

MIPS/$
When building a computer cluster, the raw MIPS of any one chip is irrelevant. When someone needs a teraflop of performance, no one chip can do it. The person is forced to keep adding CPUs until he gets the performance he wants. There are many tricks (that we will discuss later) that slightly reduce the runtime of one program on one CPU, but make that CPU much more expensive. Rather than build a teraflop system out of a few of the lowest-runtime chips, usually people build such a system out of CPUs that take slightly longer to perform any particular task, but then these people simply use a lot more of them.

In such systems is useful if the CPUs are specifically designed to coordinate their work and synchronize rapidly.

Latency
In hard real-time systems, low latency is critical.

MIPS/mW
Most CPUs in mobile electronics -- PDAs, cell phones, laptops, wireless keyboards, MP3 players, etc. -- are underclocked.

Why do people deliberately clock them at a rate far below their potential runtime performance? Because clocking them any faster squanders battery life.

Every clock tick to a particular CPU uses up (approximately) some fixed amount of energy. If it takes (hypothetically) 900,000 clock ticks on that CPU to decode one second worth of MP3, then we maximize battery life by clocking the CPU at 0.9 MHz while playing MP3s.

Say we have some other CPU that requires 4,000,000 clock ticks to decode one second worth of MP3. Which CPU should we use? The absolute fastest MIPS rating at the maximum speed is irrelevant. The "clock ticks required to decode one second worth of MP3" is irrelevant. The better CPU for a MP3 player is the one that gives the maximum battery life, assuming we are smart enough to underclock each CPU to give its maximum battery life. Or in other words (since the amount of "work" done decoding an MP3 is fixed, and the amount of energy stored in a battery is fixed), the better CPU is the one with more MIPS/mW.


text:
Cookbook:Homemade Applesauce

| Midwestern cuisine | Vegetarian Cuisine | Dessert

This is a nice applesauce to enjoy any time, but especially with latkes during Hanukkah. You don't need to get your blender dirty; you just need a potato masher and a little elbow grease. The use of a sugar substitute makes the applesauce sweeter with less sugar added.

Ingredients

 * 3 pounds (1300 g / about 8 cups) peeled, cored, and chopped apples
 * ½ cup water
 * 6 tablespoons white granulated sugar
 * 6 tablespoons sugar substitute
 * Juice from 1 lemon (about 1 tablespoon)
 * ½ teaspoon ground cinnamon or apple pie spice

Procedure

 * 1) Put chopped apples in a large non-stick saucepan. Stir in water, sugar, sugar substitute, and lemon juice.
 * 2) Bring mixture to a boil, cover, and reduce heat to medium-low.
 * 3) Cook until apples are tender (about 10 minutes).
 * 4) Use a potato masher to break cooked apples up into a nice purée.
 * 5) Stir in ground cinnamon or apple pie spice.
 * 6) Serve warm or cold.

Notes, tips, and variations

 * Use whatever variety of apples you prefer.

title: Cookbook:Homemade Applesauce


text:
Microprocessor Design/Benchmarking

Common Benchmarks

 * block move
 * Eratosthenes sieve
 * matrix multiply

interrupt latency ... it scales down to the lowest PICs ... and up to the scary fast GPUs ..." -- Gwenhwyfaer 2008
 * MINC/Benchmarks
 * "AN910: ST7 and ST9 performance benchmarking" describes a collection of short benchmark programs that measure interrupt latency and execution time and code size, and discusses architectural features that affect the scores. Eratosthenes sieve, Ackermann function, string search, block move, block translation, etc.
 * "Benchmarks and Case Studies of Forth Kernels" describes some very frequently used, very short code fragments.
 * benchmark (computing)
 * EEMBC Embedded Microprocessor Benchmark Consortium
 * MIPS/Watt benchmarks; "Philips Challenges 8-bit MCUs"; "Innovative Techniques for Extremely Low Power Consumption with 8-bit Microcontrollers"
 * real-time benchmark: "the number of voices of MIDI-driven OPL2-style FM synthesis (at a 48k sample rate) that each chip can perform ... the clock required for sample output has the potential to test

title: Microprocessor Design/Benchmarking


text:
Cookbook:Honey-Peppered Salmon

| American cuisine | Fish

Ingredients

 * ¼ cup olive oil
 * 1 tablespoon honey
 * 2 tablespoons Dijon mustard
 * 3 cloves garlic, minced
 * 2 teaspoon cayenne
 * ½ teaspoon ground coriander
 * 2 tablespoons fresh lemon juice
 * salt, to taste
 * 4 (6-ounce) (170 g) center-cut salmon fillets

Procedure

 * 1) In a shallow dish, combine oil, honey, mustard, garlic, cayenne, coriander, lemon juice, and salt. Mix well.
 * 2) Add salmon and let marinate at room temperature for 30 minutes.
 * 3) Preheat oven to 350°F (175˚C).
 * 4) Grease a baking dish.
 * 5) Remove salmon from marinade and place in the prepared dish.
 * 6) Bake for 10–12 minutes or until desired "doneness".

title: Cookbook:Honey-Peppered Salmon


text:
Advanced Interactive Media/Ai Project Directors

Project directors are responsible to see that teams are meeting their goals, staying on schedule and keeping focus on primary goals.

These team-elected leaders will communicate with other team leaders to make sure the end product will consist of compatible components that are contributed by each of the teams.


text:
Advanced Interactive Media/Ai Design Team

The design team will develop the overall look and feel for this interactive, immersive, multimedia product. Besides choosing color, style and layout, they will make sure the an integrated marketing look is maintained by all contributing teams, including web site, surround screen, exterior screens, print pieces and other media.

Motion components, logos and all other branding elements will be monitored by this team.


text:
Advanced Interactive Media/Ai Interactive Team

The primary product of the interactive team will be a simple Flash based web site. Mr. Broderick has agreed to help this team recall information from their class work that will be required for this site.

This team will also set up and manage Facebook, Flickr.com, Blogger.com and other on-line interactive elements.


text:
Advanced Interactive Media/Ai Audio/Video Team

Audio/Video will be the primary concern of the team. Using information and techniques derived from their Avid training, After Effects and video production classes, this team will deliver all audio/video to the interactive team for final authoring.

Visual effects using Apple's Motion and/or LiveType fall under this team's jurisdiction.


text:
Advanced Interactive Media/Ai Learning Resources

Each team's members will submit learning resources for the software they teach to the class. This will include URL links organized at http://del.icio.us.com, exams stored on the Interactive Classroom's server, photos showcased at Flickr.com as well as other formats.


text:
Talk:Advanced Interactive Media

Team members can comment on this page about daily learning experiences.
 * /Final Cut Pro now does blending effect just like Photoshop!/

This is an example of what Don Eland learned today. Leave your comments along with mine. Explain what you learned, why it's important to you and, perhaps some suggestion s about how classmates can use what you've learned.

Restructuring
As a follow-up to the RFD, which this book survived, I wanted to make a few quick comments about how to make this a proper textbook. You need to make sure that this book has no original research - that is, you can't have opinions; everything must be verifiable. Be careful not to blog. Finally, I'd like to remind you that images must have the appropriate license template(s), or they will be deleted. If you want expansion on any of these issues, just ask at my talk page. Happy editing! – Mike.lifeguard  | talk 17:56, 4 February 2008 (UTC)

title: Talk:Advanced Interactive Media


text:
Template:Unblock reviewed

 This 's unblock request has been reviewed by an administrator, who the request. User: ([ block log] • [ active blocks] • [ global blocks] • [//tools.wmflabs.org/xtools/autoblock/?project=en.wikibooks.org&user= autoblocks] • contribs • deleted contribs • [ edit filter log] • change block settings • [ unblock])

Request reason:

title: Template:Unblock reviewed


text:
Cookbook:Thin Fish Fillets

| American cuisine | Fish

Ingredients

 * 4 ea. (24 ounces) flounder or other flat fish fillets
 * Olive oil
 * ½ cup dry vermouth
 * 2 tablespoon (¼ stick) unsalted butter, softened
 * Salt
 * Freshly-ground black pepper
 * 4 lemon wedges

Procedure

 * 1) At least 20 minutes before you plan to cook, preheat broiler.
 * 2) Lightly oil bottom of a 9x13-inch ovenproof dish.
 * 3) Arrange fillets in a single layer in the dish.
 * 4) Pour in vermouth, using only enough to be about ½ inch deep.
 * 5) Put pan under broiler and broil the fish as close to the heat as possible for about 2 minutes.
 * 6) Remove and quickly spread softened butter over the fillets.
 * 7) Return the pan to the broiler and cook for about 5 minutes more, until fish is just cooked through.
 * 8) Remove fish from the broiler.
 * 9) Salt and pepper each fillet and serve it with lemon wedges.

title: Cookbook:Thin Fish Fillets


text:
User talk:Jchaf002

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be an idea if you add this page to your "watchlist" so that you can see when any new information is posted there.

Good luck! Mattb112885 02:55, 21 February 2007 (UTC)

title: User talk:Jchaf002


text:
User talk:Patrioter6

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be an idea if you add this page to your "watchlist" so that you can see when any new information is posted there.

Good luck! Mattb112885 02:55, 21 February 2007 (UTC)

Welcome!
Hi there, and welcome to Wikibooks! Thanks for your recent interest in the Astronomy book. I hope I'll see a lot of you around. I'm happy to help if you have any questions. Brian 06:21, 21 February 2007 (UTC)

 * By the way, please use ===subsections=== rather than ==sections== when writing in Astronomy. The chapter views (such as The Modern View of the Cosmos) are generated automatically from the individual sections (such as The Big Picture). Using ==sections== within an individual section module will break the formatting. Thanks! Brian 06:44, 21 February 2007 (UTC)

title: User talk:Patrioter6


text:
Talk:Advanced Interactive Media Class/Final Cut Pro now does blending effect just like Photoshop!

Remember those cool Photoshop blending effects that you learned in Mr. Buswell's Intro to Interactive Class? Now you can use those same effects with video in Final Cut Pro to get some very interesting results. To experiment with this new feature go to --->--->--->--->--->and choose a blending effect from the menu.


text:
Cookbook:Italian Marinated Chicken

 * American cuisine | Poultry

Ingredients

 * 1¾ cups (420 g) chicken broth
 * 1 tablespoon canned diced tomatoes, drained
 * 1 teaspoon grated Parmesan cheese
 * ½ teaspoon Italian seasoning, crushed
 * ¼ teaspoon garlic powder
 * 6 skinless, boneless chicken breast halves

Procedure

 * 1) Mix broth, tomatoes, cheese, Italian seasoning and garlic powder in a shallow non-metallic dish. Reserve half of this mixture.
 * 2) Add chicken to remaining marinade and turn to coat.
 * 3) Cover and refrigerate for 30 minutes.
 * 4) Remove chicken from broth mixture. Discard the marinade.
 * 5) Grill or broil chicken for 15 minutes or until done, turning and brushing often with reserved broth mixture.

title: Cookbook:Italian Marinated Chicken


text:
User:Llcadle

Hi. I'm an assistant professor of English at Missouri State University. My first project on Wikibooks was a little kibbutzing on the Rhetoric_and Composition Wikitext. Currently my graduate students in Theory of Basic Writing are putting together the Basic_Writing Wikitext.

title: User:Llcadle


text:
User talk:Shinku~enwikibooks

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be an idea if you add this page to your "watchlist" so that you can see when any new information is posted there.

Good luck!. Az1568(Talk) 03:46, 21 February 2007 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Shinku. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Shinku~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:45, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:29, 19 April 2015 (UTC)

title: User talk:Shinku~enwikibooks


text:
User talk:AiClassEland

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be an idea if you add this page to your "watchlist" so that you can see when any new information is posted there.

Good luck!. Az1568(Talk) 03:46, 21 February 2007 (UTC)

Image copyright problem with Image:13657.jpg
Thanks for uploading Image:13657.jpg. However, the image may soon be deleted unless we can determine the copyright holder and copyright status. The Wikimedia Foundation is very careful about the images included in Wikibooks because of copyright law (see Wikibooks' Copyright policy).

The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Copyright information on images is signified using copyright templates. The three basic license types on Wikibooks are open content, public domain, and fair use. Find the appropriate template in Image copyright tags and place it on the image page like this:.

Please signify the copyright information on any other images you have uploaded or will upload. Remember that images without this important information or giving false information can be deleted by an administrator. If you have any questions, feel free to contact me, or ask them at the Study help desk. Thank you. Az1568(Talk) 02:11, 16 March 2007 (UTC)

Image copyright problem with Image:13684.jpg
Thanks for uploading Image:13684.jpg. The Wikimedia Foundation is very careful about the images included in Wikibooks because of copyright law, and requires that we maintain a strict copyright policy. The image that may soon be deleted unless we can determine the copyright holder and status.

The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Copyright information on images is signified using copyright templates. The three basic license types on Wikibooks are open content, public domain, and fair use. Find the appropriate template in Image copyright tags and place it on the image page like this:.

Please signify the copyright information on any other images you have uploaded or will upload. Remember that images without this important information or giving false information can be deleted by an administrator. If you have any questions, feel free to contact me, or ask another Wikibookian at the help desk. Thank you. Urbane  (Talk)   (Contributions)  21:45, 1 September 2007 (UTC)

Copyright
Please add information about source and licensing of Image:ELA 0167.jpg and Image:ELA 0626.jpg or these files will be deleted. --Derbeth talk 10:08, 17 September 2007 (UTC)

Image copyright problems
Thanks for uploading image(s) to Wikibooks. The Wikimedia Foundation is very careful about what Wikibooks includes because of copyright law, and requires that we maintain a strict copyright policy. Some or all of your uploaded files may soon be deleted unless we can determine the copyright holder and status. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read Media to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. If you have any questions, feel free to contact me, or ask another Wikibookian at the help desk.

To find the files in question, use (unlicensed|untagged)

Thanks! '''– MBA ( Bot talk | Mike talk | owner | block ) 01:19, 21 September 2007 (UTC)

 * This is an automated message. Please ignore it if you've already provided license information for all your uploads.

Class project
Looks like you're starting a class project at Future Media Class. You might consider registering at List of class projects so everyone knows about it. If you ever need help, you can ask me on my talk page or ask the whole community at WB:HELP. I look forward to seeing your project develop. Happy editing! – Mike.lifeguard  | talk 20:53, 14 January 2008 (UTC)

Future Media Class

 * The result of this discussion was that this work should be moved to Wikiversity. It is now located at Future Media Class; all work should take place there, as the copy at Wikibooks will be deleted imminently. If you have questions, please ask on my talk page. Thanks; happy editing! – Mike.lifeguard  | talk 15:19, 27 January 2008 (UTC)

recentchangeslinked
Hi AiClassEland,

I saw your message to Mike and figured I'd give a crack at answering this. There is a tool called "recentchangeslinked" which may be useful to you, it lists all the recent edits on a particular wikibook, this one is for Future Media and this one for Advanced Interactive Media. Hope this helps!

Oh, and it's helpful to us if you sign your posts with four tildes ( like this: ~ ) so we see your username. Regards. Mattb112885 (talk to me) 22:19, 10 February 2008 (UTC)

Future Media/Viral Media
Hello, I'm interested in contributing to this topic.

I am very new to editing on both Wikipedia and WikiBooks, so perhaps I'll stick with Wikipedia for awhile. However, I will have some theory or opinion and I wonder if it might be appropriate to express that here rather than there.

I am right now specifically interested in the history of web series, viral video and interactive creative collaboration used in connection with that, since 1996.

For now, I'll read policies, but if you can give me any steering as regards to topics or whether I should start a new one or contribute to this one, I'd be grateful.

Lemi Lune (talk) 05:42, 6 May 2009 (UTC)

title: User talk:AiClassEland


text:
Free Direct Instruction Curriculum and Training/Science K

Created: 2007 02 08 | Percent completed:

What is Free Direct Instruction Science K (Free DI Science K) File:25%.svg
Free DI Science K is the parent or teacher's guide for teaching science at the kindergarten level depending on ability of learner and state standards.

Each section is numbered and can be taught in one day. Each section also contains scripted instructions for the teacher. Most sections contain workbook pages, images, and/and video clips.

Short video clips (5 to 20 seconds) can be added to integrate current events into the curriculum. For instance, the idea of science is to ask questions and get answers. Could there be life on Mars? To answer that we sent rockets and rovers to Mars to get pictures and samples of the surface. You can show video clips, often free from NASA, a government agency, that shows rover taking samples.

Also, pictures can be added to enhance and describe scientific ideas, experiments, or events.

What order do I teach this in?
Each state has different standards that include subject matter to be taught at specific times. This makes teaching this science module more difficult. It might be a good idea to align your state standards to this curriculum and make some modifications. Please make a note of your state standards and it's alignment to this program in the talk section (discussion tab).

Understand structure and properties of matter.

 * Describe size and color of objects.
 * Things are made of parts

Organisms: Understand the characteristics, structure, and functions of organisms.

 * People, animals, plants need water, food, and air.

Heredity: traits in living things

 * Cycles are patterns (leads to life cycles, hereditary)

Diversity/interdependence

 * Different external features of plants and animals

Earth materials

 * Materials can be used over again
 * Change can happen to many things
 * Things change in some ways and stay the same in some ways.
 * People can keep track of some things, seeing where they come from and where they go.
 * Things can change in different ways, such as in size, weight, color, and movement. Some small changes can be detected by taking measurements.
 * Some changes are so slow or so fast that they are hard to see

Earth in solar system & universe - Earth, sun, moon, and solar system

 * Identify the sun, moon, stars, and Earth.

Ask questions and get answers based on observations

 * Raise questions about the world around the students
 * Describe things in terms of their number, shape, size, and color
 * Make observations

Design investigation to answer question

 * Follow a list of steps

Collect and present data

 * Describe or draw simple observations
 * Understand and make a simple graph as a class or group
 * Observe changes in world

Analyze & interpret results

 * Describe data from graph

Activities

 * M&M counting activity
 * Guess how many things there are in a set and then count to see who is right
 * Students compare, combine, equalize, and change numbers as well as "take away" and "add to"
 * B is taller than A, C holds more than D - do bar graph


text:
Free Direct Instruction Curriculum and Training/Science 2

Created: 2007 02 09 | Percent completed:

What is Free Direct Instruction Science 2 (Free DI Science 2) Image:25%.svg
Free DI Science 2 is the teacher's guide for teaching science at the second or third grade level depending on ability of learner and state standards.

Each section is numbered and can be taught in one day. Each section also contains scripted instructions for the teacher. Most sections contain workbook pages, images, and/and video clips.

Short video clips (5 to 20 seconds) can be added to integrate current events into the curriculum. For instance, the idea of science is to ask questions and get answers. Could there be life on Mars? To answer that we sent rockets and rovers to Mars to get pictures and samples of the surface. You can show video clips, often free from NASA, a government agency, that shows rover taking samples.

Also, pictures can be added to enhance and describe scientific ideas, experiments, or events.

What order do I teach this in?
Each state has different standards that include subject matter to be taught at specific times. This makes teaching this science module more difficult. It might be a good idea to align your state standards to this curriculum and make some modifications. Please make a note of your state standards and it's alignment to this program in the talk section (discussion tab).

Understand structure and properties of matter.

 * Texture and weight of objects

Chemical & Physical Changes

 * Changes to shapes of objects
 * Water can be liquid or sold. Same amount of water whether liquid or ice.

Force

 * Understand that a push or pull is needed to change the motion of an object - activities where getting things to move or not to move and in changing the direction or speed of things that are already in motion
 * Magnets can be used to make things move without touching them (homemade compass?)

Energy - interactions & transformations

 * Energy forms of heat, light electricity, magnetic, chemical energies
 * Sun warms land, air, water (arctic vs equator, tilt of sun, more plants at equator)

Organisms: Understand the characteristics, structure, and functions of organisms

 * Sort and classify objects according to their physical characteristics (hairy, smooth, with a nose, hard)
 * Know that the senses can warn the individuals about danger; muscles help them to fight, hide, or get out of danger. (2061 says good luck getting them to understand)
 * Understand that the human body has parts that help it seek, find, and take in food when it feels hunger (eyes & nose for finding food, legs to get there, arms to carry it away, mouth to eat)
 * Living vs nonliving things
 * Living things have structures to help them survive

Heredity: traits in living things, things are passed on

 * Variations within same population
 * Living things have life cycles
 * Order and label parts of a cycle

Diversity/interdependence

 * Animals eat plants and animals
 * Animals may even use plants or animals for shelter or nesting
 * External features of plants and animals might help them survive or thrive in different places

Earth materials

 * Rocks are in different shapes and sizes (boulder, sand, smaller (sediment?))
 * Materials can be used again (recycled)
 * Water can be liquid or solid and go back and forth (video of melting mountain snow, glaciers melting)
 * Seasons with different temperatures, sky cover, and rains

Earth in solar system & universe - Earth, sun, moon, and solar system

 * Things far away in the sky look like they move slow
 * Moon cycle - looks different each day but every 28 days it is full (calendar with moon phases)

Ask questions and get answers based on observations - hypothesis

 * Raise questions about the world around the students, try to get answers with observations
 * Make prediction
 * Describe things in terms of their number, shape, size, color, texture, weight, motion
 * Make observations

Design investigation to answer question

 * Help design steps to answer question (worksheets with scenarios - if I heat up some water in a pan for too long, what will happen to the water?)

Collect and present data

 * Observe changes in world
 * Describe or draw simple observations
 * Record data on form
 * Transfer from form to simple graphs

Analyze and interpret data

 * Look at graph and describe what happened
 * Answer questions from looking at a chart or graph
 * Summarize data from chart or graph

Concepts

 * May not work if parts are missing (batteries)
 * Models might be different but can help learn about the real thing
 * Observe and make note of change over time
 * Predict events - some can be predicted. Variables might change things so it might be hard to predict

FINISH

Resources

 * Check for videos (amazon)
 * Check for activity books
 * Check books.google.com for science experiments
 * Cross check with BCP


text:
Template:Free Direct Instruction Science 2

Edit Template 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | Science 2


text:
Free Direct Instruction Curriculum and Training/Math Facts

Created 2007 02 10 | Percent completed:

Math Facts Worksheets

 * /Addition/
 * /Multiplication/

Directions
Info:Present one to three lines as follows: "When I give a problem, you give me the answer. One times two.  What's the answer?" If you hear any student give the wrong answer, immediately correct the answer and repeat the question. Then go back 2 and start again.

Present the worksheet.

One student has the worksheet and another has the answers.

Ensure students can write 40 answers per minute. If a student is suspected of having motor issues, test the student's handwriting. Ensure the student can write 40 numbers (one and two digit) in one minute. If not, it might be better to have students practice by saying the entire problem and answer.

Have students work for 2 minutes or until they have finished the practice session. Then do the timing for one minute (40 correct problems). If students are able to do the practice without many mistakes but are unable to do 40 problems in one minute, then break up the timings into 15 second sessions. Do 15 second sessions until student is able to do 30 second sessions, then build to 45 second sessions, then one minute. Build slowly. Do not repeat the same timings in one session more than twice. If the student is able to pass all four subsections with 15 second timings, test for the 30 second timing. If the student cannot pass the 30 second timing, move on and consider it passed. Don't bore the student. Students should be able to pass within 1 or 2 test tries. If the student continues to fail the test, go back to the practice and ensure the correction procedures are being done. The student might be learning one or math facts wrong by practicing those wrong.

During practice, ensure the correction procedure is done fully. Correction procedure involves:
 * 1) The teacher or partner giving the correct answer
 * 2) The student repeating the full problem and answer correctly
 * 3) The student going back 1-3 problems
 * 4) If another incorrect answer is given during the correction procedure, start at number 1 and go back another 1-3 problems


text:
Template:Free Direct Instruction Math Facts

Free Direct Instruction

Math Facts


text:
Free Direct Instruction Curriculum and Training/Math Facts/Addition

Created 2007 02 10 | Percent completed:

Directions
Info:Present one to three lines as follows: "When I give a problem, you give me the answer. One plus two.  What's the answer?" If you hear any student give the wrong answer, immediately correct the answer and repeat the question. Then go back 2 and start again.

Present the worksheet.

One student has the worksheet and another has the answers.

Ensure students can write 40 answers per minute. If a student is suspected of having motor issues, test the student's handwriting. Ensure the student can write 40 numbers (one and two digit) in one minute. If not, it might be better to have students practice by saying the entire problem and answer.

Have students work for 2 minutes or until they have finished the practice session. Then do the timing for one minute (40 correct problems). If students are able to do the practice without many mistakes but are unable to do 40 problems in one minute, then break up the timings into 15 second sessions. Do 15 second sessions until student is able to do 30 second sessions, then build to 45 second sessions, then one minute. Build slowly. Do not repeat the same timings in one session more than twice. If the student is able to pass all four subsections with 15 second timings, test for the 30 second timing. If the student cannot pass the 30 second timing, move on and consider it passed. Don't bore the student. Students should be able to pass within 1 or 2 test tries. If the student continues to fail the test, go back to the practice and ensure the correction procedures are being done. The student might be learning one or math facts wrong by practicing those wrong.

During practice, ensure the correction procedure is done fully. Correction procedure involves:
 * 1) The teacher or partner giving the correct answer
 * 2) The student repeating the full problem and answer correctly
 * 3) The student going back 1-3 problems
 * 4) If another incorrect answer is given during the correction procedure, do #1-3 and keep going. It might feel

1+1, 1+3, 3+1, 1+0, 0+1
Info:

1+2, 2+1, 4+1, 1+4, 2+2
Info:

Times 2 and 5
Info:

Divide by 10
Info:

Times 9
Info:

Times 2, 5, and 9
Info:

Times 3
Info:

Divide by 2
Info:

Divide by 9
Info:

Times 4
Info:

Divide by 3
Info:

Divide by 4
Info:

Times 7
Info:

Divide by 7
Info:

Times 6
Info:

Times 8
Info:

Fill in (Algebra)
5x[ ]=40  4x[  ]=28  9x[  ]=63  8x[  ]=24

Divide by all
140÷70= 60÷30=


text:
Free Direct Instruction Curriculum and Training/Math Facts/Multiplication

Created 2007 02 10 | Percent completed:

Directions
Info:Present one to three lines as follows: "When I give a problem, you give me the answer. One times two.  What's the answer?" If you hear any student give the wrong answer, immediately correct the answer and repeat the question. Then go back 2 and start again.

Present the worksheet.

One student has the worksheet and another has the answers.

Ensure students can write 40 answers per minute. If a student is suspected of having motor issues, test the student's handwriting. Ensure the student can write 40 numbers (one and two digit) in one minute. If not, it might be better to have students practice by saying the entire problem and answer.

Have students work for 2 minutes or until they have finished the practice session. Then do the timing for one minute (40 correct problems). If students are able to do the practice without many mistakes but are unable to do 40 problems in one minute, then break up the timings into 15 second sessions. Do 15 second sessions until student is able to do 30 second sessions, then build to 45 second sessions, then one minute. Build slowly. Do not repeat the same timings in one session more than twice. If the student is able to pass all four subsections with 15 second timings, test for the 30 second timing. If the student cannot pass the 30 second timing, move on and consider it passed. Don't bore the student. Students should be able to pass within 1 or 2 test tries. If the student continues to fail the test, go back to the practice and ensure the correction procedures are being done. The student might be learning one or math facts wrong by practicing those wrong.

During practice, ensure the correction procedure is done fully. Correction procedure involves:
 * 1) The teacher or partner giving the correct answer
 * 2) The student repeating the full problem and answer correctly
 * 3) The student going back 1-3 problems
 * 4) If another incorrect answer is given during the correction procedure, start at number 1 and go back another 1-3 problems

Times 2
Info:

Times 5
Info:

Times 2 and 5
Info:

Divide by 10
Info:

Times 9
Info:

Times 2, 5, and 9
Info:

Times 3
Info:

Divide by 2
Info:

Divide by 9
Info:

Times 4
Info:

Divide by 3
Info:

Divide by 4
Info:

Times 7
Info:

Divide by 7
Info:

Times 6
Info:

Times 8
Info:

Fill in (Algebra)
5x[ ]=40  4x[  ]=28  9x[  ]=63  8x[  ]=24

Divide by all
140÷70= 60÷30=