Saturday, January 17, 2004

Data Modeling

Database Systems; Design, Implementation, and Management
Rob/Coronel

Chapter 1

  1. Introducing the database
    It is necessary in study of databases we need to know the diffference between Data and information. Data are raw facts. Information is data that has been procesed so that it can be useful to people who must make decisions. Out of necessity, for this information to be accurate, it must be clear, timely and useful. For this to be done efficently a computer is used normally and the main tool for this would be a database. A database is shared, integratedcomputer structure that houses a collection of: 1)End user data (raw facts) 2) Metadata, or data about the data. A Database Management System (DBMS) is a collection of programs that manage the database structure and controls access to the data stored in the database. When we speak of database design, we speak of the data structure itself since we cannot change the software that we purchace to do the databases.
    1. Why Database Design is Important
      You must have a well designed structure to your data for it to be able to be used well. The best DBMS will not work well with poorly designed data. Redundant data, same data in several places, is a sign of a poorly designed error proned database. This will lead to poor decisions based on poor information.
    2. A Practical Approach to Database Design
      We will study good database design and not the outer limits of database theory.
  2. The Historical Roots of Database:Files and File Systems
    File systems are now for the most part obsolete but the study of our past lets us see the mistakes not to make in the future. Originally the data was kept in a system of physical folders and cabinets and data that was needed to be extracted to useful information took a long time. As computers became more prevalant, the data processing (DP) specialist became a new professional in many companies. They used File systems for this. Some terminology:
    DataRaw facts. Has little meaning unless organized in logical manner. Smallest piece is charachter
    FieldCharachter or group of charachters that have a specific meaning. Used to define and store data
    RecordLogically connected set of one or more fields.
    FileA collection of related records
    As file systems grew and the need for maintaining them did also, the data processing manager became a prominante position.
  3. A File System Critique
    1. File System Data Management
      Data retirvial is done with use of 3GL, third generaltion languages, time consuming and high skill. This makes 'ad hoc' or at the spur of the moment data needs an impossibility. Furthermore changing field in a file system can cause extensive reprograming not only in the file in question, but in any programs that reference that file. File system method promotes ownership of the data which tends to scatter the same data over many locations.
    2. Structural and Data Dependence
      File systems exhibit structural dependence, meaning that access to file is dependant to its structure. Changing any one field is also a problem, and the means a file system is data depandent. Data Logical Format, how the human sees the layout of data, and data physical format, how the computer actual stores it, are two important concepts. In a file system, this layout has to be known and the program accessing things needs to know how the data is stored(how the computer stores it) and the format of the information the program is storing.
    3. Field Definitions and Naming Conventions
      A person designing a file system as well as any database should be aware of definitons and naming conventions. Definitions deals with what is being stored. Do we want to store a person's name as one long string or break it up in to last name and first name. Naming conventions also is important. Generaly you would put the ownership as part of the nameplus a short sesical representation of what the data contains. An example of this would be CUS_Renew_Date.
    4. Data Redundancy
      As noted, data redundency is a common problem with File Systems. This can lead to data incosistancy where data is not updated accross the whole system, effecting the data integrity. Because the way the data is stored, one column may have several repeat entries, this can lead to data anomalies, like when a sales agent leaes the company and a new one is assigned. If the agent is not corrected in all fields, a non-exisitant sales agent is assigned to account.
  4. Database Systems
    1. The Database System Environment
      The database system is composed of five major components.
      • Hardware - the physical devices used by a system. Computer(s) and peripherals
      • Software - Programs used by the computer in the database system. These include:
        • Operating system - the programs that run the computer be it a mainframe or a micro (and inbetween)
        • DBMS software - programs that mange the database
        • Application programs/utilty software - used to access and manipulate the data in the DBMS.
      • People
        • System administrators - oversees the database system's general operations
        • Database administrators - (DBA) - manage the DBMS and makes sure it is functioning properly
        • Database Designers - Design the database, and if the foundation is not good, the rest will crumble.
        • Systems analysts/programers - design and implement the programs needed to access the data
        • End Users- the people who all this was put together for in the first place
      • Procedures - instructions and rules that govern the design and use of the database system. These are the rules that the company runs itself by. Though important part, it is usually fogotten.
      • Data - the facts stored in the database.
      The exsistance of these will be as complex as the enviornment is.
    2. Types of Database Management Systems
      • How many users
        • single user - only one user at a time
        • muti-user - many users can access database at same time
      • Location
        • centralized - data at one location
        • distributed - accross several different sites.
        • Type of information
          • transactional/productional DBMS - designed to give immediate response to time critical information
          • decision support system - uses large pools of data, often called data wharehouses, to help decision makers make decisions. Data comes from many sources and often time is not as critical as in transactional systems
      Desigining a data base these items must be taken into concideration.
    3. DBMS Functions
      Data directory management definitions of the data elements and their relationships
      Data storage managementThe complex structures of the data storage are handeled by the DBMS
      Data transformation and presentationThe DBMS handles the transformation of the data in the format it is stored in to the format that can make sense to the user.
      Security managementThe DBMS handles the user security and data privacy as preset by what the admnstrators create.
      Multiuser access controlThe DBMS handles the necessities so that multiple users can access the database at the same time.
      Backup and recovery managementThe DBMS has tools that make backup and recovery procures for both normal and special circumstances
      Data Integrity ManagementThe DBMS will enforce rules so that the data is not redundant nor in the wrong format for use.
      Database Access Language/Application Programming InterfacesDBMS provides access per a query language, a way for users to get information. This consist of data definition language (defining the data structure) and Data manipulation language (the way the data is extracted for use).
      Database communication interfacesThe DBMS allows for requests through a network (example, a query form a browser that is then fed back to browser in format that it can use)
    4. Managing the Database Systems: a Shift in Focus
      A shift in focus has happened as can be seen. The DBMS takes over many of the tasks that the file system's DP specialist had in the past.
    5. Database Design and Modeling
      Database design is done with models, simplified abstractions of the data. If the model is good, the databse design should be as well. If the design is good, then the applications should be. Like a building, if the foundation (model) is not good, then the building (database and applications) will be faulty and not do what it is designed to do.
  5. Database Models
    A conceptual model is based on what is represented in the database. An implementation model is based on how the data is represented in the database. Conceptual models are based on three types and show the realtionship of entities. They are:
    1. one to many relationship - 1:M - example painter paints many paintings, painting only has one painter
    2. many to many relationship - M:N - example employee has job skill, job skill is had by many employee
    3. one to one relationship - 1:1 - example one store has one senior manager

    1. The Hierarchical Database Model

    2. In 1960's Rockwell was doing the contracting for the Apollo project and much of the data for it was stored in computer file systems, leading to large amounts of data derdundency. Because of this they developed the Generalized Update Access Method (GUAM). Later IBM jined Rockwell in what they created, changed it from tape to (new) disk dtorage and called it the Information Magement System (IMS). It used a hierarchial database model, resembling a upside down tree, or an organizational chart for a company. This created a one to many approach.
      Basic structure As noted it took on the structure of a organizational chart. This allowed for an entity to have many children, but it could only have one parent. The base layer is called the root. In order to store the data the way the computer would see it, the tree would have to be flatened a bit. The final asembly might have 3 parts off of the root, 1, 2 and 3. 1 may have 1A and from it 1a1 and 1a2. 2 may have no other parts. 3 might have 3A and 3B, with 3a having 3a1, 3a2 and 3a3, and 3b having nothing. Drawing this out as a tree makes sense. But the computer would store it in order, in a manner like this:

      root -> 1 -> 1A -> 1A1 -> 1A2 -> 2 -> 3 -> 3A1 -> 3A2 -> 3A3 -> 3B

      The dat goes left to right and top to bottom. This is called preorder travel or hierarchial sequence. This order would be the way the data is stoed on the computer. Because of the data that is used more activly should be moved more to the front of the storage. If 3A2 were the most changed item than the data model should be changed to put the 3 to the left side.
      Advantages Simplicity, security, independece of data, integrity of data and efficiency (if in a 1:M relationship).
      Disadvantages Complex to implement, difficult to manage, no structural independence, complex application programing, limitations of implmentation (1:M realtionships only), lack of standards.
    3. The Network Database Mode
      Created to reprresent more complex data. It also improved database performance and imposed a database standard. The Confrence on Data Systems Languages (CODASYL) attempted to create a standard for databases after they had standardized Cobol. The recomended three things
      1. A network schema or conceptual organization of the data
      2. A sub schema that defines what the application program sees
      3. A data management language to define the characteristics and data structure.

      Though ANSI implemented it as a standard, it was 'stretched' to meet the vendor's needs at many times.
      Basic structureResembles the hierachial model. Major difference is that an entity could have more than one parent.
      Advantages Simple concept, M:N relationships handled better, Data access flexibility, data integrity, data independence, and conformace to standards.
      Disadvantages Complexity of system, lack of structural independence.
    4. The Relational Database Model
      First created in 1970 but impractial till the 90's.
      Basic structureInformation is stored in tables with rows and columns. Each table in the databse will share some information with another table. These columns will have the same name so that the information stored in one could be brought into the other table by relation. This allows for all three relational types to be met.
      Advantages Structural independence, conceptual simplicity, easier design/implementation/management/use, ad hoc querying, powerful.
      Disadvantages high overhead for software and hardware, poor design is too easy to do, islands of information are possible because it is too easy for many create their own systems.
    5. The Entity Relationship Data Model
      Because of the complexity of the data, tools are needed to allow user to graphicaly create the database. This becomes the entity relationship model (E-R).
      Basic structureEntity instances or entity occurances (rows in tables), has an attribute (collumn in tables). This entities can have relationship to other information elsewhere. This model was developed by Peter Chen, named the Chen Model in 1976. It uses rectangles to represent entities and diamonds to depict the relationship between them. A similar model, the Crow's foot model uses single or 3 prong lines to represent the various type of relationships that are handled by charachters in Chen's model.
      Advantages simple concepts, visual representation, allows for good communications, integrates with relational databse model.
      Disadvantages Limited constraint representation, limited relationship representation, no data manipulation language, loss of information content.
    6. The Object-Oriented Database Model
      First called the semantic data model (SDM) it uses the concepts of an object of a model. The object contains the structure of the data as well as the things that can be done to that data, as well as the relationships they have.
      Basic structureObject represents one instance of an entity. Attributes describe the properties of an object. Objects that are similar are grouped in classes. Classes are organized in a class hierarchy. An object can inherit attributes and methods form another class.
      Advantages Semantic content added, visual presentation (includes samantic content, integrity of database, structure and data indpendence.
      Disadvantages Standards, complex to navigate date, steep learning curve, high system overhead.
  6. Wrap-Up: The Evolution of Data Models
    1. Database Models and the Internet
  7. Summary
  8. Key Terms
  9. Review Questions
  10. Problems

Friday, January 16, 2004

Data Modeling


On Line Lecture Unit 1


Notes


Part A


History and Tradition
   IBM during the Apollo project created the Generalized Update Access Method (GUAM) due to the massive amounts of data sharing that was necessary for the project. (Contractors with subcontractors with subcontractors, etc.)
   IBM then looked for a way to market this technology. DL1 was the result of this program. It was a hierarchical model for working with the data.

   In the mid 60's GE changed the Integrated Data Storage (IDS), which was a network model. Though never fully standardized like its developers wanted it to be, this model, named after the conference responsible for trying to standardize it, CODASYL, became very widely used.

   In the 1990's the relational database model (which was originally proposed in the 1970's) became more widely used.

   Other models were used as well. They include:
  • Inverted File Model - Similar to the concept of a book with extensive index, with the book being the data and the index the information pointers to where data is.
  • Object Oriented Model (OODBMS)
  • deductive Database Model
  • Knowledge Database model
  • Expert systems - sort of developed from last 2, a professional would input some key words that he needed information on and system would respond with the data based on rules set forth to give him information needed to make expert decisions.



Part B


What is a database? - Before reading book - A set of data stored someplace , usually a computer, that is organized in some fashion and the items are related to each other.

What is Database? - After reading - Organized data stored in a structure where the data may consist of multiple type of entities, the attributes of these entities are the relationships between the entities.

As we look at things in a model we can understand:
  • Entities are tables
  • Attributes are the columns in the tables
  • Relationships are items in the tables that would be in more than one table in a database (columns that have same data in them).


Terminology
Entity - hard to describe. It could be defined as, for example, all books or just one specific book.
Entity has to do with relationship.
table - an abstract way for us to think of the data. We need this to be able to visualize how the data is stored.
File - a way for us to hold the information.

Ways of looking at the data - if we use the term in column one then the terms in column two and three should be used to define things. Too often the terms wind up getting exchanged.
TableRowColumn
RelationTupleAttribute
FileRecordField
EntityEntity occurrenceAttribute



Part C


Lecture on the use of MSAcess as our RDBMS
Examples on how to do things that would be to complicated to reproduce here.
Note: Domain is a jargon term to get to know.


Part D


Hierarchical Model & CODASYL Model

So far we have been looking at the relational model of databases mostly. In it a database consist of rows and columns. Columns have 'attribute names' and domains. We use them as abstractions to let us think about them in concepts that are easier to understand. Basically a particular column in a table has a relationship with at least one other table and we can use that to store the data without having to make duplicate information.

In a hierarchical model an entity is owned by another entity. Ownership is maintained by a chain. A schema, or way of describing how data is to be laid out, defines how this layout of data is.

Sponsor
|
|
Team

In this example we can see that an entity can only have one owner. It is possible for an entity to own more than one other entity.

CODASYL model, also know as the network model removes the restriction of only one owner of an entity. The example of this might be a class at a college. It is possible for both the department and the instructor to own the class. In the hierarchical model, maybe the department would own the instructor who would own the class. This model breaks down if instructor teaches for more than one department, hence the need for the CODASYL model.

Tuesday, January 13, 2004

Organizational Behavior Class


Organizational Behavior 10e


Hellrigel and Slocum


Chapter 1


There are competencies that people have to know to be of use to an organization A competency is an interrelated set of abilities, behaviors, attitudes and knowledge need to do the job. This book deals with the seven that it feels are the most important.
  1. Managing Self.
    This is the overall ability to assess your own strength and weaknesses.
    Core Abilities
    • Understand yours and others personalities and attitudes
    • perceive and interpret accurately yourself, others and immediate environments
    • Understand and act on yours and others work related motivations
    • Create and follow through on developmental, personal and work related goals
    • Take responsibility for yourself, especially over time and stressful circumstances.

    Career Development
    Career is a sequence of work positions during a lifetime. The popular belief is that one would 'move up the ladder' either in one company or over several.
    • A career does not imply success or failure. This is best determined by individuals.
    • There is no standard for evalulating a career. One should determine what is satisfying to them.
    • Careers should be examined subjectively (values, personalities, motivations) and objectively (choices, positions held)
    • Career development involves making decisions about an occupation and fining ways to meet those goals.
    • Cultural factors play a factor in careers

    "Trust Thyself" Ralph Waldo Emmerson

  2. Managing Communications
    The ability to use all modes of transmitting, understanding and receiving ideas, thoughts and feelings. Similar to the circulatory system in humans as it nourishes the others.
    Core Abilities
    • Convey information to others so that they can receive it accurately, describing skill
    • Provide constructive feedback
    • Active listening, use questioning skills.
    • Use and interpret nonverbal communications properly
    • Use verbal communications effectively
    • Use written communications effectively
    • Use computer based resources (Internet) to convey ideas.


  3. Managing Diversity
    The ability to value unique individual and group characteristics, embrace it, and appreciate the individual.
    Core Abilities
    1. Foster inclusion of people of different interest
    2. Learn from people different than you
    3. Develop personal tendencies that respect others
    4. Communicate/practice a commitment to work with others. =
    5. Show others that you actually are tolerant
    6. Follow laws and policies when it comes to diversity
    Categories of Diversity
    Categories of diversity include Primary and Secondary Categories. These will effect the organizational behavior of a company.
    Primary Categories, ones that the person cannot change include: age, race, ethnicity, gender, physical abilities and qualities, and sexual and affectional orientation. Secondary Categories, those that a person can change, include: education, work experience, income, marital status, geographic location, parental status, and personal style.
    Changing Workforce
    Because we are in a global environment the workforce has changed drastically. Elements that make it up now are:
    Language Differences Employees need to be able to talk to each other.
    Formation of Natural Ethnic Groups People will go to their own ethnic group for support/answers to questions rather than management.
    Attitudes and Cultural Differences The way that people group themselves. Example: men play or go to sporting events, while there may talk business. Woman are left out of the upward mobile change they seek through no fault of their own.
    Gender
    Why do woman, who make 47% of the workforce, only account for 11% of officers at large corporations? One reason is the 'glass ceiling' a barrier so subtle it appears not to be there. It exsist because
    1. Executives are not held accountable for hiring practices
    2. Woman/minorities are not encouraged to apply because of the cultural differences talked about earlier
    3. Training and development programs are not there for this group.

    Race and Ethnicity
    Along with the glass ceiling racism, the belief that a persons ethnic group makes them superior to others, is prevalent against minorities. It comes in three forms: 1)Individual, what a person believes; 2)cultural, one group feels it is superior; 3) Institutional, rules that keep one race in place at the expense at another. These may operate openly or in secret as well as intentionally or unintentionally.
    Age
    Competencies gained by employees are sometimes not needed by other companies when their jobs get reduced. This makes them harder to hire. Add to this the desire not to relocate to gain employment.

  4. Managing Ethics
    The ability to incorporate values and principles that distinguish right from wrong.
    Core Abilities
    • Identify the principles of ethical decision making
    • Assess importance of ethical issues in alternatives to actions.
    • Apply government laws, as well as a person's rules of conduct.
    • Show respect to others in working relationships.
    • demonstrate open and honest communications as allowed by law.

    Ethical Dilemmas
    Has a legal component, but not just that. Absolutes in one country are not necessarily true in another. Ethical dilemma occurs when person/organization must make choice that involves several values.

  5. Managing Across Cultures
    The ability to recognize and embrace what makes nations and cultures different and then use approach issues with a mind that is open to all.
    Culture is a dominate pattern of living. it involves
    • views shared by the vast majority of members of a group or society
    • be passed on from generation to generation
    • Shape behavior, decisions and preceptions of the world

    Core Abilities
    • Understand what makes a particular culture unique and how that influences a person
    • Understand how work-related values influences individual choices.
    • Identify how work-related values influence choices of individual and groups
    • Understand and motivate employees with different values and attitudes.
    • Communicate in language of country where working.
    • Deal with extreme conditions
    • Address all issues from a global mindset

    Work-Related Cultural Values
    Individualism-Collectivism individualism is the tendency of people look after self and immediate families. Collectivism is the tendency of people to emphasize belonging to a group and be like others in exchange for loyalty. Harmony can be an element of collectivism, the sense that all in group should get along, and not let one loose face.
    Power DistanceThis is the extent that people in a society equate status and power with normal and functional aspects of life. Countries are either high in power distance (accept these inequalities) or low in power distance (do not accept them). US is moderately low. High power countries tend to have a servant/submissive culture, strictly following orders even if they are wrong. Low power tends to be more equal and do what you need to so the job gets done
    Uncertainty Avoidance The extent that people will rely on social norms, procedures and organizations to avoid risks. High avoidance people seek orderliness, consistency and structure. Low tolerate ambiguity and uncertainty. US is concidered low.
    Avoiding stereotypes Be careful not to stereotype a culture because you think in simple terms of them. Also because a person is of a culture does not mean that as an individual he is not different.

  6. Managing Teams
    This is the ability to lead groups to achieve the organization's goals.
    Core Abilities
    • Determine when a team approach is right and what type of team to use
    • Engage or lead the team in setting clear goals
    • Participate/provide leadership in responsibilities for team and individuals in the team
    • Show that the goals of the team outweigh the goals of the individual
    • Apply appropriate decision making tools
    • Resolve conflicts (personal or task) before they become disruptive.
    • Access own and teams performance in relation to stated goals and take corrective action needed

    Teams and individualism
    Some countries value the individual and others value the team concept. The one making the decision should be the manager assigning the task. Some key facts about teams though:
    • Teams exist, employees need to take that in to account
    • Teams create a powerful force that can be used by the individual
    • Teams can create good and bad effects
    • Teams can be managed to increase the benefits.

  7. Managing ChangeCore Abilities
    • Apply the other competencies to implement changes
    • Provide leadership in the change
    • Diagnose pressure for and against change
    • Apply model of change to introduce change
    • Seek, gain, share and apply new knowledge in attaining goals.

    Technical Forces
    Technology can have positive effects (getting good/services to people quicker) or negative effects (loss of personal privacy). technology to some degree has created a blur in our way of life.

  8. Learning Framework
    Three basic components to the framework for learning about organizational behavior and improving the competencies of employees: 1)individuals in the organization; 2) Team and leadership behaviors; 3) The organization.
    Individuals in Organizations
    In order to understand the organization one must understand the individuals that make up the organization.
    Team and Leadership Behaviors
    People are social so they tend not to live/work alone. Much of what a persons identity is consist of how others and groups perceive that individual.
    The Organization Itself
    To do their job a person must understand their job and the organizations design.



Saturday, November 01, 2003

Ok, now on to solving A in the book under number 7. What is the difference between it and what we just did? Instead of doing just one statement, we are doing a series of statements. Before we just delt with

while (a <= 9) S1

Now we are dealing with a whole block of statements...

{ if (C1)
S1;
S2;
}


I am going to use [ ] to mark out seperate statements and put it on one line here.

{ [if (C1) S1][S2]}

another words we have two statements we are dealing with here not just one. So what do we do. Well the example as it is in the book at this point in time is no good, as we are at a step before that step. To me, what I see in the grammar rules that fits this is statement list. But in checking what out instructor posted in the doc share I see that I am wrong. He says that it is a compound-statement. I see that he went back one step further than I did. That being the case.... <compund-statement> breaks down to { <declaration-list> <statement-list>}

OK I hear it now, we do not have a decloration list... well one of the items under the declaration list is that fully looking E, that means that it can be empty string. so for review, here is our chart so far.


<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist }
|
E


Any questions.... nope, gee I must be good. ok from our original we have the { and the } taken care of, now to work on the statment-list. statement-list breaks down to the E OR <statement> OR <statement-list><statement>. Since we have more than one statement to deal with we have to go with <statement-list><statement>


<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist> }
| |
E |
____________________
| |
<statement-list><statement>


We know that the <statement> breaks down to S2 but it takes a convulted way of getting there cause we have to worry about the ;.
<statement> breaks down to <expression> and ; and we now can make the <expression> S2

<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist> }
| |
E |
____________________
| |
<statement-list><statement>
|
__________
| |
<expression> ;
|
S2

So now we have {. } and S2 taken care of. All we have left is if (C1) S1; to fit it into <statement-list> Again we cheat a bit here and work backwards... we need a if statement. What can we use from grammar rules to get it? Only one thing will let us to it, a <selection-statement>. So we look back and how to we get from <statement> to <selection-statement>, well <statement> can become a <selection-statement> along with several others. But right now we are sitting at <statement list> Look carefully what is under <statement list>, yup <statement>. Or in other words:


<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist> }
| |
E |
____________________
| |
<statement-list><statement>
| |
| __________
| | |
| <expression> ;
| |
| S2
<statement>
|
<selection-statement>

<selection-statement> breaks down to the one we are looking fo: if (<expression> ) <statement>. <expression>, in this case breaks down easy also (it does not in later assignments). It is C1 So:

<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist> }
| |
E |
____________________
| |
<statement-list><statement>
| |
| __________
| | |
| <expression> ;
| |
| S2
<statement>
|
<selection-statement>
_________________________
| | |
if (<expression>) <statement>
| |
(C1)


Now the other half. statement must break down into an expression and a ; . It must be come a <expression-statement>. That will break down to an <expression> and a ;.

<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist> }
| |
E |
____________________
| |
<statement-list><statement>
| |
| __________
| | |
| <expression> ;
| |
| S2
<statement>
|
<selection-statement>
_________________________
| | |
if (<expression>) <statement>
| |
(C1) <expression-statement>
__________
| |
<expression> ;


Now replace the <expression> with S1 and our job is done:


<compound-statement>
|
________________________________________
| | | |
{ <declration-lists> <statemen-tlist> }
| |
E |
____________________
| |
<statement-list><statement>
| |
| __________
| | |
| <expression> ;
| |
| S2
<statement>
|
<selection-statement>
_________________________
| | |
if (<expression>) <statement>
| |
(C1) <expression-statement>
__________
| |
<expression> ;
|
S1


If this does not line up I am not sure what to tell you, I used standard fonts on my browser to put it together.
I hope this helps at least one classmate, if it does the time putting it together was worth it.

To understand a you have to 1) understand figure 7.4 in the book and also how it relates to grammar 7.5. Since the instructor has posted the answer to a I will post how I got mine as well. But before I get there:

explaning 7.4

We want to end up with [while (a < = 9) S1]
If you understand C or C++ this is a statement, that is why statement is at the top off the chart

Now go back to grammar 7.5 and look for statement aligned with the far left margin.. found it, good what is under it?
statement can break down to one of 4 things: compound-statement OR expression-statement OR selection-statement OR iteration-statement. Here I cheated a bit. I wanted to figure out how to get to a while statement so I looked to see what would get it. a while statement is under the <iteration-statemetn>. So at this point it looks like this:

statement
|
<iteration-statement>

and iteration statement gets what we want so we have:


statement
|
<iteration-statement>
|
____________________________________________________
| | |
while (<expression>) <statement>

So far so good? Ok thanks lets go on: We have while where we want it, so we stop with it. Now we have to get expression and statement where we need them. The simpliest is statement, that will be S1, so:

statement
|
<iteration-statement>
|
____________________________________________________
| | |
while (<expression>) <statement>
|
S1

All that is left is to convert expression to a <= 9, back to the grammar rules, lets look at expression.
expression breaks down into <relational-expression> OR <identifier>=<expression>. Again drawing upon my half vast knowledge of C and C++ I know that this is a <relational-expression>. So the graph now looks like this:



statement
|
<iteration-statement>
|
____________________________________________________
| | |
while (<expression>) <statement>
| |
<relational-expression> S1

Ok back to grammar rules, realtional-expression breaks down to what? A big long list I do not feel like typing out now, but notice one has <= in it? It is <relational-expression> <= <additive-expression>, lets throw that in the mix, shall we?


statement
|
<iteration-statement>
|
____________________________________________________
| | |
while (<expression>) <statement>
| |
<relational-expression> S1

|
_______________________________________
| | |
<relational-expression> <= <additive-expression>

To wrap this up quickly:
relational-expression can become additive expression
both additive expressions can become multipicative-expressions
both multipicative- expressions can become unary-expressions, then the left side becomes (again all this from grammar rules) can become a primary-expression which becomes an identifier which becomes a letter which we get to choose from the alphabet from and we choose a.

Meanwhile the right side, where we left off at the unary also becomes a primary-expression, but this time we follow the other primary-expression rules and take it to the constant. Constant chooses out of its two to ecome a integer-constant, choosing integer, choosing 9.

I would draw that last part out but the book does a better job.

Now a break, and change messages so that I can not over load this system. When we return we will look at 7A.

The Doc.

Saturday, October 18, 2003

Multimedia Presentations Class
Multimedia: Concepts and Practice - Stephen McGloughlin
Chapter 7 - Multimedia Building Blocks: 3D Modeling and Animation

1) Chapter Overview
   a) We will learn modeling
      i) Though it is more precise then sculpting
      ii) We have fewer tools to work with
   b) Software that is available
      i) Caligari's trueSpace
      ii) New Tek's LightWave 3D / Inspire 3D
      iii) Kinetix's 3D Studio
      iv) MetaCreation's Infini-D
      v) Ray Dream Studio / Carrara
      vi) EIG.SYS's Poser
      vii) Corel's Bryce
      viii) Template Graphic's 3Space Publisher
   c) All of this used to be done by hand on celluloid from which we get the term cel.
2) What is 3D
   a) Depth Perception
      i) The main thing in a 3 D image is a sense of perspective.
         (1) Things get smaller as they go back
         (2) There is shading to indicate a light source.
      ii) How is it done
         (1) Create a shape
         (2) Apply shading
         (3) Introduce light and shadow (sometimes combined with first step)
      iii) Shading
         (1) Darker areas on the figure that is farther away from the light source
         (2) Lighter colors on the surface that is closer.
      iv) Shadows
         (1) Happens when an object is between a light source and surface
         (2) Process called raytracing determines where the light source is and figures out where each ray of light would go, what it would bounce off of and where it would create brightness and shadows.
3) Overview of Computer Animation and Video File Formats
   a) Output File
         i) The still or animated rendering of the image you created.
         ii) Most programs can provide a snapshot image in standard flat file format
         iii) If you want to be able to use your animated images elsewhere they should be stored in standard file like AVI (Windows) or MOV (Apple Quicktime) as these work on web well also. Sometimes AutoDesk's FLI is also usable.
         iv) Programs also store in their own formats which will be good for generating them again or making changes needed.
   b) 3D Data Storage File
         i) Most programs store as proprietary formats
         ii) There are a few standards
            (1) AutoDesk DXF
            (2) 3D Studio 3DS
            (3) Alias Wavefront OBJ
            (4) VRML WRL files
         iii) These formats do not contain the data to recreate or edit your projects.
4) Tips for effective 3D Graphic Generation and Manipulation
      a) Know what format your development tools can use and make sure they can 'talk' to each other.
      b) Decide if you want to model your own objects or use someone else's. (clip art type libraries).
      c) Make sure that your computer has resources to do the job
         i) Memory
         ii) Speed
         iii) Hard Drive space.
      d) Allow for time to get the job done
      e) Do Not overcomplicate the scene
      f) PRACTICE, PRACTICE, PRACTICE, and then PRACTICE some more.
      g) You are not rendering just one image but many in a movie file. Be aware that will take time and make adjustments for the non critical items.
      h) Keep it Small and Simple.
5) Feedback Animation
   a) When a user clicks a button and the program is loading you need to give them feedback that something is happening.
   b) You could use two frame animation or multiple frame animation to give them some eye candy to look at.
   c) Using the rendering program you could create each frame individually and build them into your multimedia program
6) Computer Generated Video
   a) Programs generate images as series of images or a digital video clip.
   b) Once you get a series of keyframes, tell the animation program which ones are which and then it will try to generate the images needed that go between them.
   c) This process is often called 'tweening" from the word between.
7) Internet Considerations
   a) File Size - critical as file must be downloaded before it can play
   b) Streaming - a way of starting the image downloading and then start it playing while more of the file is coming
   c) No matter which is used it is best to keep it short and simple.
8) Rendering and Rendering Options
   a) Rendering is the act of making the images and making them into a single or multiple images set.
      i) More you add to it the more time it will consume.
      ii) Image is created in a top to bottom motion.
   b) It is possible to add other options to this that will add time AND realistic effects.
      i) Motion Blur
         (1) Film cars going around a race track and grab one frame
         (2) Chances are the car will be going to fast and it will be a blur
         (3) Freeze a rendering and the car will be perfectly focused
         (4) Add motion blur and the results are more realistic
         (5) Generally 3 before and 3 after the frame are rendered and then blurred together. This increases rendering time 7 fold.
      ii) Depth of field rendering
         (1) Just as in real life eyeballs and as done in the movies it is possible to bring the foreground out of focus while focusing on the background, or vice versa.
         (2) Adds realism but also rendering time.
      iii) Special effects plug-ins.
9) Avoiding Pitfalls
   a) Leave time at the end of your project. Finding mistakes means you have to re-render the images
   b) Do not be taken in by the pricing on either end of the spectrum when it comes to software (read reviews in magazines).

Thursday, October 16, 2003

Computer architecture
Computer Systems 2nd Edition
J. Stanley Warford
Section 6.2 Stack Relative Addressing and procedure Calls

In C++ procedure call changes flow to the first line of the procedure. In assembler we have to do much more work. The higher level C++. Because of abstraction we miss the pushing of information on the stack that the machine code actually has to do. To do those we use the JSR command. The JSR pushed the program counter onto the stack and then loads the operand into the program counter. To do the JSR it should be done in immediate mode. To return from the called routine we use the RTS instruction which pops the address back off the stack and into the program counter.

Program 6.7
In program 6.7 we just make three calls to the procedure call, one after the other.

Stack-Relative Addressing
One of the steps that the JSR does is to decrement the sack counter by 2. It does this because it works from the top down in the stack. If we want to add and remove things to the stack ourselves we have to have a way to decrement and to increment the stack pointer as well. ADDSP allows us to add a value to the stack pointer.

Program 6.8
Program 6.8 uses two commands to put information on the stack.

LOADA c#/r/,i
STYBTA d#-1,s


This puts an r in the register a and then the STYBTA stores the r in the stack pointer -1. We do not have to know the memory location of the pointer as it is relative addressing.
The program after it loads the data then moves the pointer with the ADDSP d#-4,i command. This moves the pointer in negative (downward) direction which is what we need as the stack builds down from the top. Next the program pulls information of the stack and outputs it. In the end the ADDSP d#4,i sets the counter back to the original place. While this does not erase the information in memory, it does remove it from use. Now the pointer can use those memory locations again (overwriting the information there when it does).

Program 6.9
In order for us to be able to go to the subroutine, then we have to put any local variables on the stack. The reason why is that we could need the memory location or even wind up inadvertently changing the variables. For that reason, variable values should be put on the stack by loading them into register A and writing them to a stack memory location and then ADDSP d#-2,i moves the counter down. (see the same instructions above in program 6.8). Once that is done we can jump to the subroutine (in this case printBar).
The subroutine now needs to set up its memory needs. We do this by using .EQUATE at the start to set up memory locations. This sets the information on the stack. We can then use relative addressing to access them. At the end use a ADDSP with a positive number to dealocte any local variables used. It then RTS to go back to the main routine. Once there the main routine pop the information back off and go on with its business. The numbers used in this program are good for this program only. The compiler (or coder) would have to allocate memory in line with the size variables that he is using.
All of this is hidden from us by the higher level languages like C++.

Program 6.10
Program 6.9 only called a subroutine (a function in C++, but a function that does not return a value). In this case we are doing a function and this function will be returning a value. Remember stated above that the information is still on the stack when we return to the main program. That fact means that the calling routine (in our case the main program) can now call that information off of the stack and use it (even though the stack pointer is back above it, we use relative addressing).

Wednesday, October 08, 2003

Computer architecture
Computer Systems 2nd Edition
J Stanley Waford

Chapter 6 Section 1.

Branching Instructions and Flow of Control

PEP/7 has 7 branch instructions
   BRLE   Branch on less than or equal to      checks N and Z
   BRLT   Branch on less than                        checks N
   BREQ   Branch on equal to                         checks N
   BRNE   Branch on not equal to                    checks Z
   BRGE   Branch on greater than or equal to   checks N
   BRGT   Branch on greater than                   checks N and Z
   BRV    Branch on V                                    checks V
   BRC     Branch on C                                     checks C

In order for these to be done, the A register is loaded with the information needed and then the N, V, Z or C bits are checked as necessary. Based on the BIT checking the branch will take place. P. 222 has a table as to how the will branch.

LOADA      num,d
BRLT         place

would load the value of num into register A and then branch to location place if the value was less than 0.

Program 6.1
A simple C++ program that takes a value in ( cin >> number ) . and then compares it with if number < 0 . If condition is met we negate the number number = - number. We then output the number with cout << number . Of course if the number is less than zero we branch around that and just do the output.

In assembler these translate to

main:      DECI       number,2    ; ask for number input
if:            LOADA                     ;put the number in register A
               BRGE      endIF         ; branch to the endIf label if N is 0 (if A is Greater than or equal to)
               LOADA   number      ;not really necessary but reload the register with number
               NOTA                        ; get 1's compliment to start negation process
               ADDA      d#1,i         ; add 1 to it to get ones compliment
               STOREA number,d   ; store the negative back in to number
endIf      DECO         number,d   ; do the cout statement to output the answer

Parts not important to discussion have been left out
notice that is the number is negative to start with the loop takes place and we go to output the number.

Optimizing Compilers
As noted the line to reload number into register A was not needed, but it could have been. What is something had changed the register. For that reason this is not optimized code, but it is nonoptimized. A compiler from a higher level language to the assembler can be of either type. Nonoptimized will be created quicker but optimized will be tighter and smaller code. Generally go for the first in creating the code and the second in creating the program to be distributed.

Program 6.2
We add to the discussion and else to go with the if. If a condition is met we do one thing, if not we do the other and in the end we do the stuff after it. The example is used in comparing two numbers. If one is larger than the other (which is a constant) then we print "high" and if not we print "low". After that the program terminates. In this program we:

main:      DECI      num,d      ; input a number
if:            LOADA num,d      ;load number into A
               COMPA limit,i         ; compare register A with the value in limit(subtract it from register)
               BRLT      else         ; go to the else label if it is less than 0 we are checking if the number is greater
                                             ; than limit by subtracting limit from it and going to the low area.
               lines omitted here for output that say HI
               BR      endIf            ; we are done go past next section
else:      lines omitted here for output that say LOW ; this is where we go if compare is lower
endIf      STOP                        ;end program


Program 6.3
Introduces the while statement and how it is done in a program. Pretty much the same thing except that the program checks to see if a condition is met and then drops through if it has not, and loops back if it has. It uses a technique of branching around the end of a loop when it checks the condition and goes to a position outside the loop. Other wise the loop just goes back up to an earlier part of the program to be done again. Nothing new code wise.

Program 6.4 is a do .. while loop. same as above just little fancier program.

Program 6.5 introduces the for loop. In C++ one can put a loop up that starts with a fixed value, compares the value and each time through the loop it will add a value to it (in this case 1 with the i++). In this program as long as the condition is not met (i<3) then we will keep looping through. Again the looping is fairly simple it is just translating it from a C++ program that gets complicated.

Program 6.6 shows us what can be done with branching and what should not be done. It is a classic case loops done because they can not because they should be.
I will not explain it in any detail as one of the homework assignments is to say what it does.

Flow Control in Early Languages
Early computers had no higher level languages to work with. So all code was in assembler and branching was the only way to do things. When FORTRAN was introduces it used statement numbers and introduced an unconditional branch as well as a conditional branch. While not comparing a status bit (at least at higher level) it let the user branch around code if conditions were right.

Structured Programming Theorem
The debate now (1966) was started. Was it possible to write code without GOTOs using only nested if and while loops. While theoretically proven, it was ignored.

The GOTO controversy
In 1968 the debate returned. It was proven that a person trying to follow a program with a lot of GOTOs in it became lost quickly. For that reason many suggested using loops to get the job done and structured programming has pretty much become the standard. remember though, just because there are no GOTOs does not mean that the program is well structured. And even if a language only has GOTO statements they can be used to create a structured style program.

[Listening to: Shout to the Lord - Hillsongs - Shout to the Lord with Hillsongs from Australia (04:39)]

Tuesday, October 07, 2003

Computer Archtecture
A+ Guide to Manageing and Mainting Your PCs
Chapter 8 Understanding and Installing Hard Drives.

I. Hard Drive Technology
   A. Tyoes of Hard Drive Intefaces
      1. EIDE Standards
         i. First one was ATA-3
            a. allows up to 4 drives on a machine
            b. all drives must follow the ATAPI interface standards
         ii. There are several different standards
            a. Each one improes on previous
            b. There is some overlapping
            c. Special cable (80 conductor) is needed for more recent ones (over ATA/100)
         iii. Newer standards support the much larger drive capacity
         iv. There are special adapters for the larger cables if the connection on the mother baord will not support it.
         v. The can be two drives on the primary cable (master and slave) and two drives on the secondary cable (same)
      2. Other interface Standards
         i. SCSI - not discussed here
         ii. IEEE 1394 - FireWire - USB has been supported instead of firewire
         iii. Fibre Chanel - High end systems
   B. How Hard Drives Work
      1. one or more platters that spin in unison
      2. Each surface is called a head (not to be confused with a read write head)
         i. Each head has tracks and sectors
         ii. If you take a specific track and sector and go through all the heads that is called a cylinder
         iii. The whole cylinder will need to be filled before it will move on to the next one.
         iv. Hard Drives require controller boards to interpert what is going on
            a. Older systems had a card that went into IO slot as well as on the drive
            b. newer ones are just on drive
   C. IDE Technology
      1. Tracks and sectors on an IDE Drive
         i. Older drives had a fixed sectoring that broke the drive up into slices. this kept the sectors constant
         ii. New drives use zone bit recording that allow for more sectors to be in outer drive ring than in inner one.
      2. Low Level Formatting
         i. Older drives with fixed sectors would often have programs in the bios to refesh the formats on them
         ii. Newer drives have this done at factory
            a. Program may be available at the manufacture's web site to fix them should they get bad.
            b. most people just toss them away
II Communicating With the Hard Drive BIOS
   A. Calculatin Drive Capicity on Older Drives
      1. Older drives: multiply heads * cylindars * sectors per track * 512 bytes per sector and that would give you disk storage.
      2. Newer drives need to fake the system out with the help of the BIOS
   B. Adjusting for More Complex hard drive organization
      1. CHS mode - Drive tells BIOS that it has a certain combination of heads/cylindars/sectors (max size 528MB)
      2. Large Mode - ECHS mode - sends geometry to BIOS which sends different information to the OS (max size 8.4 GB)
      3. LBA mode (large than 504 MB)Sends information to OS, BIOS sees sectors as long list of numbers
      4. OS bypassses the BIOS altogether. (windows NT/2000/XP)
   C. Installations Using Legacy BIOS
      1. Newer drive older system
         1. Let BIOS see it as smaller drive
         2. Upgrade the BIOS
         3. Upgrade the Mother Board
         4. Use software to act as go-between the BIOS and the OS
         5. Use an adapter card to substitute for your BIOS
III How a Hard Drive is Logically Organized to Hold Data
   A. If using Windows you must decide
      1. Fat/16 -works with DOS and Windows95 (and all newer versions)
      2. Fat 32 - works Windows 95 with patch, and all newer versions
      3. NTFS - Works with Windows NT, Windows 2000, Windows XP
      4. Your choice will be limited to what operating system you have and if multiple OS's installed, which ones will need to read which drives
      5. Generaly the larger the drive, you should take the newer technology so that slack size is minimized.
   B. Steps after drive instaled
      1. Low level format - creates tracks and sectors - not done with newer drives
      2. Partiton - sets the drive up into one large drive or several virtual smaller ones. Use FDISK in dos/windows (diskpart in XP)
      3. High level format - Use Format command in dos/windows - creates the information needed for OS to keep track of things
   C. Hard Drive Partions and logical Drives
      1. If you choose to break you drive up into multiple virtual drives, even if you ceate three or more you will really only create two
         i. Primary partion (the one that boots usualy)
         ii. Extended partion (holds 1 or more logical drives)
      2. The Master Boot Record (MBR) is 512 bytes, and is accessed during POST to see where OS is.
      3. Active partion is always the first partion on a drive (2000/xp call it system partion)
      4. DOS/Windows 9X allow 2 partions
      5. NT/2000/XP can have 4 partions
         i. Partion can be primary (having one logical drive)
         ii. Partition can be extended (more than one logical drive), but only one of these can be on drive.
      6. Active partition is always a Primary partition.
   D. Choice of File Systems
      1. Fat 16
         i. uses 16 bits for sector cluster entry in fat
         ii. limits the amount of clusters that can be on hard drive and hence, cluster size is larger
         iii. in larger drives can create a lot of slack space when small file in size is save to a large cluster size
      2. Virtual File Allocation (VFAT)
         i. Windows 95 and Windows for Workgroups (3.11)
         ii. supports larger file names
         iii made obsolete by fat 32
      3. FAT 32
         i. WIN 95 OSR and above
         ii 32 bits for FAT entry
         iii more clusters relates to smaller cluster size, less slack space.
      4. NTFS
         i. Does not use FAT system at all
         ii. uses a database called master File Table (MFT)
         iii. Writes the information on the middle of the drive rather than the end of it.
         iv. Use on systems that will not have multiple OSs on them that are of Windows 9x nature
   E. How many logical drives
      1. Some people put OS on one drive, programs on another and data on third, (or some combination)
      2. In reality you want to have the fewest drives with the cluster size to a minimum.
      3. If you have two hard drives and each has a primary partiton and extended partions, the primary partions will take the first drive letters and the extended will take the others. This can be changed by not putting a primary partiton on the second drive.
   F. When to partion a drive.
      1. First install
      2. Giving errors, in an effort to save the drive
      3. Suspect a virus (back up important information first)
      4. Wipe clean to install a new OS
      5. FDISK is used to do it, but not user friendly, some third party software (partion Magic is one) is a bit more friendly
      6. Be careful of software used to trick out BIOS
   G. What Happens During Formatting
      1. The OS Boot record is created
      2. The FAT is ceated
      3. The Root directory is built
IV. Installing A Hard Drive
   A. Prepare for installation
      1. Jumper settings
      2. Change CMOS if needed
      3. Use FDISK to create partitions
      4. FORMAT command to format drive
      5. Install OS and other software
      6. Keep notes of everything (CMOS especially)
      7. Make sure you have bootable rescue disk
   B. Read the Documentation (nuff said)
   C. Plan the Drive Configuration
      1. Put faster drives on one channel and slower ones (CD/Zip drives) on the other
      2. Visualize the instalation and plan for what can go wrong
   D. Prepare your work area and take precautions
      1. Proper grounding (straps etc.)
      2. Make suer cables will reach
   E. Set Jumpers and DIP switches.
      1. Most hard drives have setting printed on them
      2. write the original ones down if you are changing them (especially on ones in the machine already)
   F. Mount the Drive in the Bay (and recable it)
   G. If the bay is too large - buy a kit to adapt it.
   H. Use CMOS to Change Hard Drive Settings (view what changes if any made)
   I. Setup for Large-Capicity Drives
      1. Set Ultra DMA, PIO, and DMA modes to AUTO
      2. Some BIOS will let you set to boot from SCSI drives even if IDE drive is present.
      3. Make sure you set it to boot from device you want (Floppy, CD, IDE, ZIP)
   J. Use FDISK to Partion a Drive
   K. Format Each Logical Drive (FORMAT C: /s [/s is for system files if you wish to make it bootable] )
   L. Using Windows to Partiton and Format a New Drive
      1. If new Windows and new HD install boot from CD to install (change BIOS first)
      2. If 2nd drive being istalled, and Windows 2000/XP is on first drive, you can use Disk Management to partiton and format drive.
V. Troubleshooting Hard Drive Installations
   A. If installing mixed drive types (IDE and SCSI or IDE and IDE on controller) stop and get help till you are more expereinced
   B. Make sure that you did not introduce other problems when you replaced covers/put drive in slot etc. Look for cables disconnected or memory bumped.
   C. If Drive not present recheck you set AUTODETECT in BIOS
   D. Did you FORMAT C: /s?
   E. Check the web site of drive manufacturer for suggestions.
[Listening to: Here to Eternity - For This Cause - For This Cause (03:47)]

Tuesday, September 09, 2003

Computer Arch.

Computer Systems 2nd Editon, Warford, J. Stanley

Chapter 4 Section 1 and 2
We can look at a specific computer and learn things just for it, ignoring other computers or we can look at a hypothetical computer to learn in general how all computers work. We will use a hypothetical machine called Pep/7. Neither is the best solution, but this will be the way we choose to do things. The notes that follow are on a hypothetical machine.
4.1 Hardware
   CentralProcessing Unit (CPU)
   The Pep/7 contains seven specialized registers in its CPU   
  1. 4 bit status (NZVC)
  2. 16 bit accumulator(A)
  3. 16 bit index (X)
  4. 16 bit base (B)
  5. 16 Bit Program Counter (PC)
  6. 16 Bit stack pointer (SP)
  7. 24 bit instruction register (IR)
In the status register V and C bits hold information for overflow and carry. N and Z are for negative and zero. Accumulator A is where the results are stored. The rest of the registers , X, B, PC, and SP perform special functions.


   Main Memory
   Pep/7 computer contains 32,768 8 bit storage locations or 32, 768 Bytes. (32KBytes) The addresses are from 0 000 to 7FFF (o to 32,767)
   In the Pep/7 a Word is two adjacent bytes, i.e. 16 bits.
   When looking at the contents of an address and an address it is very easy to get the two mixed up. Be carefl not to do that. When written very ofter the format will be in Hexidecimal.

   Input Device
   The Pep/7 has two means of input, keyboard and file (gui will use a window)
   Output Device
   The Pep/7 has two means of exput, screen and file (gui will use a window)
   Data and Control
   Data flows from the input device to the bus by a control signal. The CPU has data flow in and out of it and sends the contol signals out. Main memory has data flow in and out and recives a signal to do so. Output receives data by the control signal.
   Instruction Format
    Since all computers have their own set of instructions wired into them ours wil be no different. We will have 32 instructions that we will use. Each instruction specifier is a single byte and then is followed by a operand specifier, a place where the action is going to take place either to or from. If they do not have an operand specifier they are called unuary instructions. The instructions would be built as follows
  1. 5 bit operation code
  2. 1 bit register specifier (which register it will effect)
  3. 2 bit addrssing mode specifier
The register specifier is 0 if it will change A (Accumulator) or 1 if it will change X (index register). The 2 bit addressing mode is 00 for immediate, 01 for direct, 10 for stack relative, and 11 for Indexed. This is the register that will be affected.

4.2Character I/O and Direct Addressing
Input and output are done by the ASCII charachter set. Pressing a key sends a ASCII code to the bus and then to memory. At this level though all is done through address locations.
   Direct Addresing
   adressing mode specifier specifies the memory location that you will work with. 01 is direct addressing and the perand is the specified address. We will now look at 12 codes from the Pep/7

00000 Stop Execution
Stops the computer (Pep/7 computer that is)

00001 Load Operand into Register R
Loads one word into either index register (1) or accumulator (0)Sets the N bit if info transfered is negative, sets Z if ti is 0. otherwise clears them. It does not change what in memory but what is in register is blown away.

00010 Store Register R to Operand
Reverse of one shown before. Takes information from register and loads it into a memory location. Register is not effected but memory location is altered.

00011 Add Operand to Register R
Takes what is in memory locations specified and adds it to register specified and stores in register.

00100 Subtract Operand from Register R
Similiar to Add but it does a subtraction instead.

00101 AND Operand to Register R
Does the boolean operation to memory location and register and stores in register.

00110 OR Operad to Register R
Similar to AND but Bollean OR is done instead.

00111 Ones' Compliment of Register R
does 1's compliment to registry and stores back in registry. No memory used.

01010 Load Byte Operator into Register R
Loads a byte (1/2 of a word) into register. Moves info into the right 1/2 of the register. It leaves left half unchanged.

01011 Store Byte from Register R to Operand
Stores right 1/2 of register into memory location listed.

11011 Charachter Input to Operand
Takes ASCII character on the input stream and moves it to a byte in memory. Ignores the register bit.

11100 Charachter Output from Operand
takes the ASCII charachter in memory location and sends it to output device.

Monday, September 08, 2003

Chapter 3 Getting Started In Multimedia
Chapter Overview
Finding your place in the field
   Whart area of Multimedia am I good at, what tools do I have the most fun with? What creative areas am I good at? Hands on or manage others? Of what I am good at, what makes most money
   Tools of the trade
      What do I need to do the job right?
      Monitors
         Bigger is better.
            17 inch and .28 dot pitch is minimum
            When possible buy multisync so that you can change screen resolutions

      Sound Cards
         Buy Sound Blaster
               Since they are the standard there will be no compatability problems on your part

      Scanners
         Bigger is not better, in fact it is just more expensive
               300 DPI should be more thatn enough unless you are doing printing press output
               Optical resolution how many DPI it has
               Interpolated resolution - what the software will convert it to for higher quality work.

      Digital Cameras
         Do research on the best that is available
               Look for different ways to transfer the files (memry stick, cable, floppy)
               minimum size for pictures is 640x480

      Video Capture Cards
         Look for 640x480 as minimum with 30 frames per second video capture as well as video playback
             Make sure it has print to video capability.
             Make sure the software will capture or export to a non proprietery format

      Hard Disk Drive Space and Removable Large-Capicity Storage
        Multimedia eats up sapce so the more hard drive space the better.
             needs to have fast data-transfer rates
            Zip drives are common, make sure to get one, larger capicity one if possible
            Jaz drives hold 2 Gig, but are not common, make sure people you work with would have one.
            Re-writale CD-ROMS good idea but make sure formats compatable.
 
      CD-ROM Burners
         Prices are droping
         get them

The Mutimedia Computer - The Promised Fulfilled
   Mac or PC - Does it Really Matter?
   NO
   Which one are you more familiar with?
   each has advantages and disadvatages.

The Multimedia Production Cycle
   Multimedia Project Planning
      Use a tool that will allow you to bring all the different parts of the project together
      This will keep "feature creep" from entering in
      A good example would be Allen Communications's Designer's Edge Pro
      Project planning software like Microsoft roject series is good also
      Get the customer to commit finacially before you start work
      Set milstones that you and the customer can agree on (make sure to estimates in case of problems

   Storyboarding
      Draw out what the project will look like and post it on corkboard or wall
   Media Components
      Put your pieces of the project out
         See which one relies on the others to be done.
         keep them in an organized system on your hard drive.

   preproduction
      Evaluate what you will need to do
      get the tools lined up for it.

   Production and Postproduction
      Postproduction is the art of taking what you have produced and taking the flatness out of it.
   Testing
   Do not test project yourself
      you will anticipate the problems and overlook them
      do not have customer test this could ruin your repuatation
      Have someone look at the project.

   Product Delivery
   Deliver the project how the customer wants it.
Multimedia Delivery Systems
   What methods available
         Floppy slow, to small,
         Hard disk, fastest, limited to sapce availble on HD
         CD ROM 650 MB FAST cannot update
         DVD-ROM 14 GB same as CD ROM
         Internet Infnite capcity (??) - variable speed. easily change the material
         Intranet - same as Internet

The Internet
   Connects to millions of computers
   Infinte storage and retrival capacity
   Uniform graphical enviornment
   Playform independant
   Publishing power in the hands of the masses.
   Multimedia on tap
   Built in redundency-proofing

Working in the Industry
   The industry needs people with the ability to put it together to work
   Where are the exciting jobs?
      Promotional CD-ROM production
      Multimedia Web Site Development
      Multimedia supplement to cretive industries
      Working for a multimedia company

   Going it Alone
Avoiding Pitfalls

Multimedia Technology


Notes from on line Voice over Power Point



Getting Started with Multimedia

Your place in the field. Author focuses on the multimedia companies and not that it will be everywhere.
Your job is to learn learn learn.
What path should you take... Deal with the dilemma... forget about it, get training and then decide what you are going to do
Hardware..

The more the better
Monitor
memory
etc.
Need Cd/DVD
Sound 16 Bit/Soundblaster (they created it)
Color Printer
High speed modem
Large capacity storage
Nice to have
Digitizing table
flatbed scanner
digital camera
video capture card/video printing card
good quality microphone
VCR compatible with video capture card.
----
Software
Graphic Design photo editing
Adobe Photoshop
Jac's Paint Shop Pro
Corel's Photo-paint
3D modeling and animations Apps
Caligrais's TrueSpace
Metacretions Ray Dream Studio
Light wave 3 D New Teck
Inspire 3D

Morphing
Kai's Supergoo
Gryphone Software Morph
Ulead/Softkey Morph Studio


Digitial SOund editing
SOnic Foundry Sound Forge
Macromedia Sound Edit 16

Digital Editing
Adobe Premier
Ulead Video Studio Pro
Lumiere

Authoring Software
Macro Director
Macro Authoware
Multimedia Fusion
Astound
Asymetrix Tool Box

Web Authoring
Dreamweaver
netscape Composer
Corel Web Designer
Front Page

Other Nice software
Batch file converter
Web animation software
web specific graphic tools.
Quick prototype presentations (Power point)
collections of stock images, sounds, photos, etc.

In hardware
scanners are a case where bigger is not better
you will pay a lot more money for large DPI scanners but will not give you better performance for what you need for work
Digital camera better is bigger
Talking head camera is OK in $25 range.

Video Capture Card
Full screen
write to vcr

HD space more better
zip/jaz drives burnable CD are all necessary

See page 52 to see absolute system
Mac or PC
You dance with the gal that brought you to the dance.
Use what you have

Multimedia Production cycle
project planning
Who are you trying to reach with how much and what.
story boarding
Conceptualize what you want to do
media components
What are you going to use and how are you going to do it.
Pre-post and production

testing and delivery.
test the product before you delivery

Delivery system
Floppy 1.44 M to small
HD> 20 to 80 GB
CD 650 MB
DVD 14000 MB
Internet Infinite.
Greatest technical advance since invention of the computer itself
Internet is to now what Guttenberg printing press was to 1550

Work in Industry
CD Promos
Web Developments
Ad agencies
A MM company