Previous Page Evergreen Main Menu TOC Discussion Area Web Resources for Page Next Page

Computer Science 30

Unit 4: Experience with Programming and Design - Advanced

Suggested Time: 50-65 hours

Foundational Objective

Common Essential Learnings Foundational Objective

  Learning Objectives Notes

4.1

Demonstrate an understanding of the way that programs work with the language of the course including:
  • basic components of a program
  • systemic differences between the current language and the one used in Computer Science 20
  • different parts of the language system; i.e. compiler, editor etc.
  • internal documentation and other vocabulary.
  • In most cases, the students will demonstrate their understanding of the concepts and processes through programming projects.
    An instructor may choose to combine several concepts within a project.
    It may be appropriate to present a programming problem and introduce the appropriate techniques as tools to help in the solution.
    4.2 Demonstrate an understanding of the variable types in the language including:
  • different variable types, their uses and the operators associated with each
  • ways in which values are assigned to variables
  • acceptable variable names and reserved names. (NUM)
  • It will help students understand the variable types in the new language if they are compared to the ones in the CS 20 language. Differences and similarities in the functions and reserved names should also be identified.
    4.3 Demonstrate an understanding of the expressions and functions of the language, including:
  • user-defined functions
  • function libraries.
  •  
    4.4 Write documentation for programs. (COM) Three types of documents could be considered.
    1. Write a user's manual:
      • operating instructions
      • limitations
      • troubleshooting suggestions
    2. Write supplementary materials (if appropriate):
      • workbook
      • activity guide
      • tutorial
    3. Write a programmer's manual:
      • outline of the development process
      • copies of the model and algorithm
      • instructions for modification

    (Include proper internal documentation, remarks, in all programs.)
    Peer testing and evaluation of programs and documentation is very valuable. Often the person who writes a program will be surprised at "obvious" things that new users will miss, and the "crashes" they may cause.
    Bringing in testers from another class can be an interesting variation of this approach.
    4.5 Demonstrate facility with the input and output processes of the language. Good formatting style and proper prompting and error checking must be assessed.
    4.6 Demonstrate an understanding of top-down program design and the use of modules or sub-programs within programs. A student assignment may be to make procedures to fit a program body provided by the instructor. A more rigorous approach would require the students to leave the program body untouched, only adding procedures.
    4.7 Demonstrate an understanding of decision making and recursion in programs. Boolean expressions and logic must be used DIGital: An online digital circuitry course. {649:436} .

    4.8 Demonstrate understanding of and facility with single and multi-dimensional arrays with data structures, including searching and sorting. The record variable type should be introduced during the study of arrays, if the language supports it.
    4.9 Demonstrate understanding of the use of files from within a program including:
  • writing to a file
  • reading from a file
  • appending data to a file
  • proper opening and closing of files.
  • Individual assessment using a checklist would be possible.

    Unit 5: Number Systems and Codes (Optional)

    Suggested Time: 5-8 hours

    Foundational Objective

    Common Essential Learnings Foundational Objective

      Learning Objectives Notes
    5.1 Demonstrate an understanding of the ASCII code, as follows:
  • be able to determine ASCII values of alphabetic and numeric characters
  • identify the ASCII values of a selection of other common characters and control codes
  • describe the process that a language uses at the machine level to output a particular character.
  • An activity where students discover the characters that match the ASCII code numbers through the direct use of the CHR$( ) (or the language equivalent) function can be a good way to introduce this topic. It should not take students long to figure out that a program will do the task for them more easily. Beware of low numbers; any below 13 will not return anything.
    5.2 Use ASCII codes appropriately in a program, as follows:
  • utilize functions in a program to put characters using ASCII
  • utilize functions in a program to identify the ASCII values of characters
  • create a program that will sort a list of words into alphabetical order.
  • An assessment of the program should reveal these codes.
    5.3 Demonstrate an understanding of the base two number system as follows: (NUM)
    • identify the digits (bits) used in binary
    • explain why binary is the number system used in electronic computers
    • using manipulatives or paper, demonstrate counting and simple addition in base two
    • explain that the place values of a binary number are successive powers of two
    • convert values from decimal to binary representation
    • convert values from binary to decimal representation
    • segment and name binary quantities in order to differentiate among the terms bit, nibble, byte and word.

    Counting binary on fingers is a good introduction to the base 2 number system. To do this, with palms towards the face, each finger is given a place value. The left thumb = 2 0 (1), the left index finger = 2 1 (2), the left middle finger =2 2 (4) , the left ring finger =2 3 (8), …… right thumb = 2 9 (512). When a finger is bent its value is 0; when it is straight, it has the exponential value.

    The example below shows 578.

    21 2629
    Binary Fingers
    2 +64 +512= 578
    5.4 Demonstrate an understanding of the base sixteen number system as follows:
    • identify the digits ("hexits") used in hexadecimal
    • explain hexadecimal is used to represent binary values
    • explain that the place values of a hexadecimal number are successive powers of sixteen
    • convert values from decimal to hexadecimal representation
    • convert values from hexadecimal to decimal representation
    • describe the octal number system and how it relates to hexadecimal. (NUM)
    The hexadecimal number system is useful in computer science because a 2 digit ("hexit") hex number represents a byte. The first 4 bits are the first hexit and the last 4 bits are the second.
    5.5 Create a program that will input values in decimal, binary or hexadecimal format and output the value in the other two. (NUM)  

    Unit 6: Impact of Information Technology

    Suggested Time: 3-5 hours

    Foundational Objective

    Common Essential Learnings Foundational Objective

      Learning Objectives Notes
    6.1 Describe the nature and growth of computer science.

    Students need to know about the history of hardware and software development.

    There are many interesting stories and case studies from the past, for example:

    • Conrad Zuse, who built a computer out of telephone switches in his parents living room, is still alive.
    • Wozniak and Jobs built the first Apple in their garage.
    • IBM went to Gates and Allen because the CPM people went sailing that day.
    6.2 Describe the growing importance of information, comparing industrial and post-industrial societies. Students will be familiar with the role of information as a commodity.

    These topics may have been covered in other courses; but there are many opportunities for integration with other subjects. Discuss this with your colleagues. Search the Evergreen curriculum.

    6.3 Appraise the economic effects of computer applications. Students need to be familiar with the effects on:
  • transportation
  • health care
  • business and industry
  • the service industry
  • communications
  • the military.
  • 6.4 Appraise the effects of computer technology on society. (PSVS, COM) Exploration of this topic may provide opportunities for guests to visit the class and exchange information and opinions with students.

    Students need to be familiar with the effects on:

    • employment and careers
    • privacy
    • interpersonal relationships and communication
    • depersonalization
    • crime
    • dependency on computers.
    Small group discussions followed by oral reports and a class discussion is a strategy to use.
    6.5 Appraise the political effects of computer technology.

    Students need to be familiar with the effects on:

    • the democratic process
    • accountability of governments
    • international relations.
    6.6 Defend personal positions on the appropriate role of computer technology in future society. Student debates can be a good vehicle for exploring this learning objective.

    It might be interesting to do an online discussion, perhaps with expert(s) or another group of students.

    Previous Page Evergreen Main Menu TOC Discussion Area Next Page