Bev Facey Community High

CSE2010: Computer Science 2

Students explore hardware, software and processes at an intermediate level. Students extend their understanding of software development by learning how to layer modular programming approaches over structured programming techniques to improve the efficiency and robustness of algorithms and programs. They also are introduced to derived data types to provide them with data structures suitable for more demanding problems. Students add to their understanding of the hardware side of computer science by exploring a stylized von Neumann computer system at the machine level, and of the social side of computer science by examining some of the issues that have arisen from the implementation of computer technology.

Answer the following questions in a document, slide deck, recording, or other (approved) way.

  1. Choose at least two of the following ethical and moral issues arising from the permeation of computer technology in society, and write/record at least one paragraph about your perspective on each.
    1. privacy issues; e.g., data mining and database consolidation, tracking of financial transactions, e-mail and other communications monitoring
    2. security issues; e.g., identity and information theft
    3. equality issues; e.g., emergence of the “digital divide”
    4. freedom issues; e.g., privatization of information and control of information flow
  2. How have trends in computer technology changed over time, particularly from traditional computation, information warehousing (databases), and automation and cybernetics to the present focus on communication, social and commercial networking, entertainment and artificial intelligence, and to a future focus on bionics and cyborganization, and artificial life?
  3. How has the application of computer technology over time changed from military, scientific community, government, and large and medium-sized institutions, to the present expansion into small institutions, the home, industrial and domestic machines and personal information managers, and to the projected expansion into personal expert systems, implanted systems, and artificial life?
  4. Define each of the following analysis steps of the Systems Development Life Cycle (SDLC).
    • problem parsing and decomposition
    • identification of subtasks
    • data structuring
    • operation identification
  5. Choose and define two of the following modular approaches to design.
    • top-down design
    • stepwise refinement
    • scope considerations with an emphasis on avoiding global data
    • modular implementation
    • appropriate coupling approaches
    • appropriate levels of cohesion
    • reusable modules and submodules
    • data dictionaries, where required
    • bottom-up coding, where appropriate
  6. Explain each of the following:
    • hierarchy plus input/process/output (HIPO) charting
    • structure diagrams
    • Warnier/Orr diagrams
  7. Define each of the following core algorithms associated with derived data types.
    • traversing
    • searching
    • sorting
    • merging
  8. What is ASCII coding?
  9. How are text files structured, and what can they be used for?
  10. Explain the nature, operation and basic architecture of a hypothetical von Neumann computer system at the machine level, including:
    • the basic components of the Central Processing Unit (CPU), Arithmetic Logic Unit (ALU), control unit, registers, program counter and instruction register
    • the bus
    • the memory
  11. Explain the machine language of a hypothetical von Neumann machine including:
    • opcodes
    • operands
    • symbolic representation
  12. Explain the machine level operations of a hypothetical von Neumann machine including:
    • the machine cycle; e.g., fetch, decode, execute
    • the flow of data through the computer under the direction of a hypothetical machine-language program
  13. Describe the role of each of these in human-machine interactions:
    • operating systems
    • language translators
    • information managers
    • schedulers
    • utilities

Practical

  1. Complete all three Callysto turtle programming notebooks