Course Profiles Public and Catholic District School Board Writing Partnerships Technological Education Course Profile Computer Engineering Grade 12 University/College Preparation ICE4M for teachers by teachers This sample course of study was prepared for teachers to use in meeting local classroom needs, as appropriate. This is not a mandated approach to the teaching of the course. It may be used in its entirety, in part, or adapted. Spring 2002 Course Profiles are professional development materials designed to help teachers implement the new Grade 12 secondary school curriculum. These materials were created by writing partnerships of school boards and subject associations. The development of these resources was funded by the Ontario Ministry of Education. This document reflects the views of the developers and not necessarily those of the Ministry. Permission is given to reproduce these materials for any purpose except profit. Teachers are also encouraged to amend, revise, edit, cut, paste, and otherwise adapt this material for educational purposes. Any references in this document to particular commercial resources, learning materials, equipment, or technology reflect only the opinions of the writers of this sample Course Profile, and do not reflect any official endorsement by the Ministry of Education or by the Partnership of School Boards that supported the production of the document. © Queen’s Printer for Ontario, 2002 Acknowledgments Public and Catholic District School Board Writing Teams – Grade 11 Computer Engineering (ICE) This profile is the result of a collaborative effort between the Institute for Catholic Education and the Halton District School Board. Public Lead Board Halton District School Board Aldo Cianfrini (Project Manager) Writing Team Richard Bonafede, Peel District School Board (Lead Writer) Brad North, Peel District School Board Hans van Wijk, Halton District School Board Review Team Angela Elksnitis, Mohawk College lecturer – A+, Network Specialist Derek Murphy, Industry Rep – A+, Network Specialist, Engineering Degree-Ryerson Polytechnic University Catholic Lead Board Ottawa Carleton Catholic District School Board Michael Scott (Project Manager) Writing Team Graham Smyth, Chatham Catholic District School Board, retired (Lead Writer) Peter Fujiwara, Dufferin-Peel Catholic District School Board Chuck Deighton, Ottawa Carleton Catholic School Board Review Team Robert Allison, Academic Coordinator, Computer Studies Department, Algonquin College, Ottawa Brian Bond, President, Systems Medic, Newmarket, Ontario Sandy Dobec, Ottawa Carleton Catholic School Board (Theological Reviewer) Computer Engineering – University/College Preparation Course Overview Computer Engineering, ICE4M, Grade 12, University/College Preparation Policy Document: The Ontario Curriculum, Grades 11 and 12, Technological Education, 2000. Prerequisite: Computer Engineering, Grade 11, University/College Preparation or Computer and Information Science, Grade 11, University/College Preparation Course Description This course helps students understand and apply computer-engineering concepts. Students will analyse and design computer components, such as logic circuits and interfaces; develop and construct systems and write the associated computer programs to drive real-world devices, such as traffic lights, models, and robots; and explore networking hardware, protocols, and configurations. As well as developing project-management skills, students will examine the ethics of computer use and explore related educational requirements and careers. How This Course Supports the Ontario Catholic School Graduate Expectations The purpose of Computer Studies in the Catholic faith community is to enable young adults to develop and utilize their gifts and resources to find solutions and develop ideas and concepts that benefit others in a way that models gospel values. The focus of the curriculum is to enable students to become critical and innovative problem-solvers who question the use of human and physical resources as well as understand the implications of computers and related innovations. An emphasis on problem-solving models helps students create solutions that recognize our God-given responsibility to respect the dignity and value of the individual, to protect the environment, and to use the world’s resources ethically and morally. Ethical issues discussed in this course may include: intellectual property rights and illegal copying of software; reverse engineering; creation and distribution of viruses; plagiarism; sexual harassment/discrimination in the workplace; computers and privacy; protecting children on the Internet; responsible research; work and family; impact of information technology on the developing world; working conditions in information technology companies; environmental impact of technology industries. Course Notes Future This course prepares students for further study in university or college computer programming, networking, electronics, and computer engineering programs. This course also provides foundation skills and knowledge for a wide variety of careers at the technician, technologist, engineer, and scientist levels. The combination of theory, practical experience, and exploration of career options specific to each activity (i.e., computer technician, technologist, and engineer) helps students complete and refine their Annual Education Plan. Page 1 Computer Engineering – University/College Preparation Background Students enter this course from either an ICS3M or ICE3E background. The ICS students have more programming experience and as a result are better prepared for the interface programming in Unit 5 and the study of low-level programming in Unit 4. The ICE students have more background in number theory, networking, and hands-on interfacing. Both groups bring unique perspectives to the course. Creative groupings can enhance learning for each group. Activities Each unit begins with fundamental concepts and progresses through directed activities to open-ended assignments and case studies. The course expectations are grouped into five units. In the culminating activity in Unit 5, students design, build, and operate a complete interfacing system using knowledge from the previous activities. This background includes knowledge from Unit 1 where students study hardware communication at the register level in the Central Processing Unit. This Unit provides the hardware fundamentals for the later low-level programming unit as well as the culminating Unit 5. The networking from Unit 2 relies on the hardware knowledge from Unit 1 and helps the students with background knowledge for hardware communication studied in Unit 5’s interfacing. The integrated circuit theory and activities from Unit 3 study individual electronic components that are the foundation for the interface itself to be built in the culminating Unit 5. Unit 4, low-level programming activities, again builds on the hardware experiences from Unit 1 and develops relationships with high-level programming used in Unit 5. The course culminates in Unit 5 where hardware, integrated circuits, and programming are brought together in the designing, building, and operating of complete interfacing systems. Portfolio A daily log or electronic journal is a useful tool for students to practise their writing skills and increase their knowledge of computer-related terminology. Precise definitions of computer-related terminology and vocabulary work are a primary focus throughout the course. The journal may be used for ongoing activities as part of a terminology database, computer career database, computer terminal log, and/or creation of a student portfolio for exemplary work. On a continual basis, students individually or jointly as a class add new knowledge to their portfolio. The portfolio is especially important for summative activities that are concentrated in the last activity of each unit. The use of journals also encourages students to examine and to reflect on their learning and on their Catholic values, abilities, and aspirations; to monitor their progress; and to set goals. Hardware Students should have access to a network of computers that are not attached to the main school system in order to avoid conflicts. However, students also require access to computers that are part of the main system for research and some software application tasks. The classroom facilities should allow students to design, disassemble, and assemble a variety of electronic circuits and computer hardware systems. Access to stand-alone computers for testing and interface programming is recommended. These computers can also be used when building networks in Unit 2. The community is an ideal source of used equipment. Specific community sources include large manufacturers, businesses, and computer-leasing companies. Also, the Computers For Schools program is a source for inexpensive computer systems. Safety Most units involve hands-on work with live electronic devices. A focus on safe technical practices is required and safe operating procedures should be reviewed on a continuous basis. The use of safety tests, signed safety agreements, and/or safety passports is highly recommended. Handling computer hardware, such as networking components in Unit 2, integrated circuits in Unit 3, and interfacing systems in Unit 5, requires that students be taught appropriate health and safety guidelines. Page 2 Computer Engineering – University/College Preparation Also, teachers should develop appropriate strategies to avoid potential health and safety problems associated with computer use, such as eye strain (e.g., classroom lighting, screen glare) and typing issues (e.g., keyboard heights, carpal tunnel syndrome). Acceptable Use Policy (AUP) Before beginning the course and throughout activities involving research and publishing, teachers should review the school board’s AUP or equivalent regarding appropriate student use of computers, as well as rules regarding access to Internet services. Ethical considerations, such as legal software licences and suitable websites, are addressed throughout the course when appropriate. Units: Titles and Time Unit 1 Hardware: Personal Computer Architecture Unit 2 Networking * Unit 3 Digital Logic and Electronic Circuits * Unit 4 Computer Programming Unit 5 Computer Interfacing * These units are fully developed in this Course Profile. 14 hours 16 hours 25 hours 20 hours 35 hours Unit Overviews Unit 1: Hardware: Personal Computer Architecture Time: 14 hours Unit Description Computer architecture involves the micro-components of a computer and how they communicate with one another. The main components are the microprocessor (CPU), memory, and busses. The microcomponents of the CPU that students examine include the internal registers and clock. Memory includes different types of primary and secondary storage and how the bits of information are physically stored in memory. Students discuss busses, including data and address busses, and how they connect the CPU registers with internal memory. To help simplify the complex topic of computer architecture, memory addressing is limited to a 64-K environment. Students evaluate computer and information systems as ways to enhance the quality of life inclusive of all society. Unit Overview Chart Cluster Learning Expectations Assessment Categories Focus TFV.01, ICV.02 Knowledge/Understanding Overview of computer 1 CGE2b, 2e, 3f Communication architecture TF1.02 Knowledge/Understanding Information storage – memory 2 CGE3c Communication TF1.03 Knowledge/Understanding Registers in the CPU 3 CGE2b Thinking/Inquiry Communication TF1.04 Knowledge/Understanding Information flow between 4 CGE3c Thinking/Inquiry memory and CPU Communication SPV.01 Thinking/Inquiry Internal and external storage 5 CGE3c mechanisms Page 3 Computer Engineering – University/College Preparation Unit 2: Networking Time: 16 hours Unit Description Students apply networking concepts to design network configurations. The use of proper terminology (e.g., logical and physical topologies, standards) and the development of effective solutions to given situations are key components of this unit. Students create a computer network, select and configure appropriate networking protocols, and then perform a variety of troubleshooting procedures. Students learn about the importance of network connectivity and infrastructure and how networking impacts on our world. Students explore potential career opportunities in the area of computer networking. Students develop attitudes and values founded on Catholic social teaching and promote social responsibility, human solidarity, and the common good. Unit Overview Chart Cluster Learning Expectations Assessment Categories Focus TF2.01, IC1.02, IC1.03 Knowledge/Understanding Identification and function of 1 CGE2b Communication network components TF2.02, SPV.04 Knowledge/Understanding Understanding network 2 CGE2b Thinking/Inquiry topologies based on network design principles TF2.02, SP2.05 Knowledge/Understanding Network protocols: 3 CGE2b Communication understanding communication on a network. TFV.02, SP2.04, ICV.01 Communication Network troubleshooting: case4 CGE2b, 3c, 4f Knowledge/Understanding study approach to solving network problems Unit 3: Digital Logic and Electronic Circuits Time: 25 hours Unit Description Students are challenged to integrate and assemble a digital “gaming wheel” circuit that incorporates a clock circuit and two-state devices, which are commonly called “flip-flops.” Flip-flops make up the building blocks for basic memory units used in sequential logic operations. They are used extensively as the basis for digital memory storage and transfer, such as in registers. Initial activities are skill builders through hands-on activities; students arrange simple logic to create R-S, D, and J-K flip-flops and develop truth tables to understand their function. Students identify and hardwire circuits to create D, R-S, and J-K flip-flops and develop truth tables. Students research and design a clock circuit that is used to understand the shifting of data in response to timed clock pulses. Unit Overview Chart Cluster Learning Expectations Assessment Categories Focus SPV.02, SP1.02, SP1.05, SP1.06, SP1.07 Application Non-clocked flip1 CGE2b, 2c, 3c flops TF1.05, SP1.03 Thinking/Inquiry Clocked flip-flops 2 CGE2b, 2c, 3c Application TF1.05, SP1.03 Thinking/Inquiry Shift registers 3 CGE2b, 2c, 3c Application Page 4 Computer Engineering – University/College Preparation Unit 4: Computer Programming Time: 20 hours Unit Description Students are introduced to low-level programming by making comparisons with the more familiar highlevel programming. Concepts students need to understand in order to compare, trace, and write low-level programs include registers, addressing techniques, flags, repetition, and decision structures. Since lowlevel programming contains no English-type words, reflective thinking and creative problem solving are important. Students develop problem-solving and critical-thinking skills with the view of applying these skills to global issues in the Catholic tradition. Unit Overview Chart Cluster Learning Expectations Assessment Categories Focus TF1.01, SP1.01 Application Arithmetic in different 1 CGE2b, 3b, 3c Communication bases TFV.04, TF3.01, TF3.03, ICV.03 Thinking/Inquiry Comparing high- and 2 CGE2e, 3c Communication low-level constructs TF3.01, TF3.02 Knowledge/Understanding Addressing techniques 3 CGE3c, 7e Thinking/Inquiry TF3.01, SP3.02 Application Tracing low-level 4 CGE2b, 3c Thinking/Inquiry programs TF3.01, TF3.02, SP3.03, IC1.05 Communication Writing low-level 5 CGE2c, 4g, 7j Knowledge/Understanding programs Application Unit 5: Computer Interfacing Time: 35 hours Unit Description Previous computer interfacing projects involved designing and building an entire interfacing system. Students wrote a computer program and built an interface to output data to a student-built peripheral. The project is reviewed in Activity 1. This culminating unit builds on the student’s knowledge of outputting data to now include receiving data from the peripheral and integrating the input/output. As well, along with the background from the previous units, students have acquired a framework to study the impact and consequences of the use of these technologies and to investigate their career choices. Students examine the ethical and moral use of computer technology as well as career choices that reflect Catholic social teaching and faith traditions. Unit Overview Chart Assessment Cluster Learning Expectations Focus Categories TFV.03, TF2.02, TF2.03, SP2.01, Communication Investigating computerICV.01, ICV.03, IC1.03 Knowledge/ controlled systems 1 CGE3c Understanding Application Thinking/Inquiry SP1.04, SP2.03, SP3.01, SP3.04, IC1.06 Application Inputting data from a 2 CGE2b Communication peripheral Page 5 Computer Engineering – University/College Preparation Cluster 3 4 5 Learning Expectations SPV.05, SP1.04, SP2.01, SP2.02, ICV.04, IC1.04, IC1.05 CGE2e, 3d, 3f SPV.03, SP2.03, SP3.01, SP3.04 CGE3c ICV.02, IC1.01, IC1.02, IC1.03, IC1.04 CGE5d, 5h Assessment Categories Application Thinking/Inquiry Communication Application Communication Knowledge/ Understanding Communication Thinking/Inquiry Focus Designing an interfacing system Inputting and outputting data from a peripheral Social impact and career opportunities Teaching/Learning Strategies The selection of strategies is directly related to the Achievement Chart categories: Knowledge/Understanding Whole-group instruction: teacher- and/or student-led instruction to introduce new concepts and skill development; Small-group instruction: peer led, conferencing, discussion, debate, presentation, collaborative/cooperative; Individual: research, independent study. Group instruction can be effectively used in Unit 1 where hardware expectations have moved to the micro level. These expectations involve the central processing unit registers, internal memory organization, and the busses that connect the CPU and memory. Group instruction might also be appropriate to introduce low-level programming constructs in Unit 4. From group discussions, individual hardware and programming projects can be developed. Thinking/Inquiry Research; Presentation; Open-ended problem solving; Authentic tasks. Problem solving is fundamental to all units. This includes hardware storage techniques of Unit 1, network topologies of Unit 2, flip-flops of Unit 3, tracing low-level programs of Unit 4, and designing interfacing systems of Unit 5. All units, especially Unit 5, lend themselves to open-ended authentic tasks. Communication Presentations; Reports; Discussion; Oral presentations. Discussions, formal reports, and presentations could be used in networking where features of a studentbuilt local network are reported. Reports and documentation are also fundamental components of the culminating Unit 5. Application Design projects; Technical reports; Computer programs; Creation of products. Page 6 Computer Engineering – University/College Preparation Applications are most evident in the digital electronics, computer programming, and interfacing units. In Unit 3, students build electronic circuits that operate to rigorous specifications, which are documented in technical reports. In Unit 4, students apply low-level programming constructs to problem-solving applications. Assignments involve the creation of computer programs that solve specific problems. Unit 5 incorporates all these applications. An interfacing project is designed and built. The design, building, and creation of a final product also use computer programming and documentation through technical reports. Interfacing systems that are designed to help physically-impaired people are different in concept and application than military-type computer controlled missile applications. Throughout the activities, teachers should reinforce the Christian values of morality and ethics as outlined in the Ontario Catholic School Graduate Expectations through specific tasks. Assessment & Evaluation of Student Achievement The selection of assessment/evaluation techniques is directly related to the Achievement Chart categories. Specific examples relating to course content are given for each category: Knowledge/Understanding Paper-and-pencil – quiz, test (multiple-choice, fill-in-the-blanks), examinations; Performance – open-ended questions, organizers, tables, graphs, illustrations; Personal communication – in-class question and answer, open discussions, oral test or examinations. Paper-and-pencil quizzes and short answers are suited to hardware terminology in Unit 1, networking concepts of Unit 2, and integrated circuit components of Units 4 and 5. Thinking/Inquiry Paper-and-pencil – open-ended questions, examinations, organizers; Performance – essays, articles, research papers, oral presentations, creation of products; Personal Communication – in-class question and answer, student/teacher conferencing, small group/teacher conferencing. Performance assessments or evaluations can be used in Unit 5 to plan and select strategies for specific interfacing systems. Before the actual building of the system, students should research the hardware available, cost of individual components, engineering difficulties, applicability of available software, and timelines. Communication Paper-and-pencil – open-ended questions, tests, presentations, organizers, visuals; Performance – lab reports, presentation, creation of products; Personal communication – in-class question and answer, discussions, conferencing oral presentation. Accurate communication of computer concepts is essential to hardware terminology in networking concepts. Journals can be used to record accurate hardware terminology. Functions and definitions, as well as networking topologies and protocols, are important and should be included in the journal. Application Paper-and-pencil – open-ended questions allowing knowledge to be applied to a new situation; Performance – lab reports, creations, models, oral presentations, computer programs; Personal Communication – interviews, student/teacher conferencing. Transferring of concepts and procedures already discussed to new contexts is most evident in the summative evaluation in Unit 5; students’ overall knowledge of the course can be applied to an interfacing project. These projects tend to be open-ended where connections to many subject areas can be made. Page 7 Computer Engineering – University/College Preparation Many other opportunities are provided for students to demonstrate their highest level of achievement of the expectations in the four Achievement Chart categories. Students are assessed and evaluated using the following strategies: Diagnostic: Whenever information about prior learning is useful, such as at the beginning of a term or a unit of study, diagnostic tests are useful, including: unit pre-tests; skills inventory. Since the skill sets of students from the ICS and ICE streams are different, diagnostic tests at the beginning of Units 2 through 5 should provide informative feedback. Refer to the Background section under Course Notes. Formative: During the teaching-learning process, students should be provided with ongoing feedback on their strengths and weaknesses and determinations of whether they are meeting course expectations, including: communication through journals; self-assessment rubrics; checklists; student/teacher conferencing; observation; quizzes; anecdotal comments with suggestions for improvement. Numerous technical terms are inherent in computer hardware, networking, integrated circuits, and interfacing. An accurate definition log should be an ongoing part of students’ journals. Summative: at the end of a learning process, including: classroom presentations; written and practical quizzes, tests, unit tests, final exam; assignments and projects evaluated using rubrics; culminating challenges. Each unit naturally builds to a summative evaluation. Unit 4: Computer Programming builds from examining base operations and individual low-level constructs to applying them to write complete lowlevel programs. These programs could be in the form of an assignment. The course also builds to a summative evaluation in Unit 5, Activity 4, in which a complete interfacing system is designed and built, including hardware, integrated circuits, programming, and written documentation. Seventy per cent of the grade will be based on assessments and evaluations conducted throughout the course. Thirty per cent of the grade will be based on a final evaluation in the form of an examination, performance, essay, and/or other methods of evaluation. Accommodations Teachers should consult individual student IEPs for specific direction on accommodation for individuals. The following accommodation strategies can be used in the activities throughout the course. Specific strategies relating to course content are given in each activity. Assessment Accommodations Provide additional review for students having difficulty integrating all the structures. Allow for non-timed evaluations. Ensure that students understand assessment/evaluation tools. Provide the option for oral testing and demonstrations of skills. Page 8 Computer Engineering – University/College Preparation The units easily adapt to a variety of assessment techniques. Unit 1, Hardware: Personal Computer Architecture deals with CPU and memory communications. This unit lends itself more to paper-andpencil evaluations whereas Unit 3, Digital Logic and Electronic Circuits can be evaluated largely through hands-on activities. Provide for alternative displays of achievement, such as oral testing, taped answers, and scribing for students with writing difficulties. Enrichment Organize more advanced problems (design work, research paper, alternate interfacing projects). Appoint students as assistant site administrators. Unit 5 easily adapts to enrichment work. Students write software that can be enhanced by including GUIs (Graphical User Interfaces) as well as mouse controls. GUIs are authentic tasks since most commercial software is graphically driven. Physical Accommodations Check to ensure all aids, environmental issues, safety precautions, and assistance for students to achieve success are in place. Provide appropriate adaptive devices, e.g., large screen monitors, touch screens, etc. Provide support for hands-on sessions. Most computer peripherals can be adapted to accommodate physical impairments. Instructional Accommodations Provide peer tutoring. Provide flexible timelines. Encourage small-group learning. Facilitate student-to-student discussion and teacher-to-student discussion to encourage confidence and motivation. Provide written materials for students having difficulty processing auditory information. Provide handouts to reinforce demonstrations. Provide clarification to students of assessment/evaluation tools such as rubrics and checklists. Resources Units in this Course Profile make reference to the use of specific texts, magazines, films, videos, and websites. The teachers need to consult their board policies regarding use of any copyrighted materials. Before reproducing materials for student use from printed publications, teachers need to ensure that their board has a Cancopy licence and that this licence covers the resources they wish to use. Before screening videos/films with their students, teachers need to ensure that their board/school has obtained the appropriate public performance videocassette licence from an authorized distributor, e.g., Audio Cine Films Inc. The teachers are reminded that much of the material on the Internet is protected by copyright. The copyright is usually owned by the person or organization that created the work. Reproduction of any work or substantial part of any work from the Internet is not allowed without the permission of the owner. Human Resources Community libraries, and school library/resource centre Community partners and computer industry personnel. Consider businesses with high computer usage that consistently replace equipment (start with computer support personnel). The technology support at these same businesses can provide valuable assistance. School board technical service personnel. Page 9 Computer Engineering – University/College Preparation Print Resources Operating system manuals and reference texts Blissmer, Robert H. Introducing Computers. New York: John Wiley & Sons, Inc., 1991. ISBN 0471-53443-9 Brey, Barry B. Intel Microprocessors: Architecture, Programming and Interfacing. Prentice Hall, 2000. ISBN 0-13-995408-2 Gaonkar, Ramesh S. Microprocessor Architecture, Programming, and Applications with the 8085. Toronto: Collier Macmillan Canada Inc., 1999. ISBN 0-13-901257-5 Haskell, Richard E. Introduction to Computer Engineering: Logic Design and the 8086 Microprocessor. Prentice Hall, 1993. ISBN 0-13-489436-7 Gregg, Kenneth. Windows Networking Basics. Harper Collins Canada, 1998. ISBN 0764532146 Kearns, Dave. Sams Teach Yourself Windows Networking in 24 Hours. Sams, 1998. ISBN 0672314754 Keogh, Jim. Core MCSE: Networking Essentials. Prentice-Hall of Canada Ltd., 1999. ISBN 0130107336 Magendanz, Thomas and Radu Popescu-Zeletin. Intelligent Networks: Basic Technology, Standards & Evolution. International Thomson Press, 1996. ISBN 1850322937 Norton, Peter. Essential Concepts. McGraw-Hill Ryerson Limited, 1999. ISBN 0-02-804394-4 Parsons, Oja. Computer Concepts. 1996. ISBN 0-7600-3440-0 Smyth, Graham and Christine Stephenson. Computer Engineering: An Activities-Based Approach. Toronto: Holt Software, 2000. ISBN 0-921598-36-X The Whole Internet: The Next Generation. O’Reilly and Associates Inc., 1999. ISBN 1-56592-428-2 Tokheim, Roger. Digital Electronics, 4th ed. McGraw, Hill Book Company, 1994. ISBN 002-801853-2 White, Ron. How Computers Work. Quebec, Canada: 1997. ISBN 01-56-276546-9 Software Resources Operating systems, e.g., DOS, MacOS, Windows, UNIX, etc. OESS software tools, e.g., Corel WordPerfect, Microsoft Works, Appleworks, etc. Web and FTP server and client applications For low-level programming, several assemblers or simulators are available Microprocessor Simulator 8085 Ver3.2 – http://www.insoluz.com For high-level programming in the interfacing unit, Turing and Object Oriented Turing are now provincially licensed and hence free to schools – http://www.holtsoft.com Web Resources The URLs for the websites were verified by the writers prior to publication. Given the frequency with which these designations change, teachers should always verify the websites prior to assigning them for student use. General Resources How Things Work – http://howthingswork.com Intel’s “The Journey Inside” – http://www.intel.com/education/k12/resources/index.htm An online training and education system whereby you can create an online virtual classroom with your students to learn about computers Marshall Brain’s How Stuff Works – http://www.howstuffworks.com/ IT Careers – http://www.itcareers.com Microsoft Educational Resources – http://www.microsoft.com/education/instruction/default.asp Operation of Computer and Components – http://www.karbosguide.com/index2.htm Page 10 Computer Engineering – University/College Preparation PC Building Oak Ridge Systems, Partitioning Hard Disks – http://oakroadsystems.com/tech/hd-partn.htm PC Mechanic – http://www.pcmech.com/byopc/index.htm PC World – http://www.pcworld.com/features/article/0,aid,55674,pg,14,00.asp The Chip Merchant – http://www.thechipmerchant.com/-10011-0.html Operating Systems DUX Computer Digest – http://www.duxcw.com/digest/Howto/index.html Novell Network Primer – http://www.novell.com/catalog/primer/primer.html Testing and Troubleshooting Guide for troubleshooting and repairing clones – http://www.daileyint.com/hmdpc/manual.htm Hard Drive Testing – http://www.tcdlabs.com/hdtach.htm The BIOS Survival Guide – http://burks.brighton.ac.uk/burks/pcinfo/hardware/bios_sg/bios_sg.htm The PC Guide – http://www.pcguide.com/ Tom’s Hardware Guide – http://www.tomshardware.com/ Networking 3Com’s Netprep Program – http://education.3com.com/Netprep/index.html Assembling Patch Cables – http://www.startech.com/structuredwiring/patchcable.htm Cisco Certification CCIE – http://www.cisco.com/warp/public/625/ccie/ Links page to various tutorials and topics covering areas such as basic networking, client/server, firewalls, troubleshooting, etc. – http://compnetworking.about.com Network Design and Research Center – http://www.alaska.net/~research/Net/tutorial.htm Network Tutorials – http://www.wizard.com/users/baker/public_html/NetTutor.html Novell Network Primer – http://www.novell.com/catalog/primer/primer.html Ethics and Privacy Business Ethics Magazine – http://www.business-ethics.com/ Computer Professionals for Social Responsibility – http://www.cpsr.org/ Electronic Privacy Information Centre – http://www.epic.org/ Online Ethics Centre for Science and Engineering – http://www.onlineethics.org Privacy International – http://www.privacyinternational.org/ Vatican – Catholic Perspective on Technology – http://www.vatican.va OSS Considerations The Grade 12 Computer Engineering Course is designated as a Technological Education: Part B: Computer Studies (see The Ontario Curriculum, Technological Education, Grades 11 and 12, 2000). Computer Studies courses offered at the Grade 12 level are University/College Preparation or Workplace Preparation (see The Ontario Curriculum, Grades 9 and 12, Program Planning and Assessment, 2000 for a description of the different types of secondary school courses). This course is designed to provide students with a solid background in the relationships between software and hardware and prepares them for postsecondary education and then entry into the workplace. Anti-discrimination education, equity, career goals/cooperative education, and community partnerships are also discussed in this course. All of these issues support many of the Ontario Secondary School policies. Career exploration throughout all units is available to students with specific reference to Choices Into Action: Guidance and Career Education Program Policy for Elementary and Secondary Schools, 1999. Page 11 Computer Engineering – University/College Preparation Coded Expectations, Computer Engineering, Grade 12, University/College Preparation, ICE4M Theory and Foundation Overall Expectations TFV.01 · describe mechanisms for information movement and storage; TFV.02 · document network configurations and their services; TFV.03 · explain the operation of sophisticated systems that interact with real-world devices; TFV.04 · compare high-level and low-level programming languages. Specific Expectations Computer Logic and Electronics TF1.01 – describe how signed and unsigned numbers are represented; TF1.02 – explain how to determine memory requirements for information storage; TF1.03 – describe the function and interaction of a control unit, arithmetic logic unit, and memory registers in a simple central processing unit (CPU); TF1.04 – use a diagram to illustrate how buses move data and instructions between memory and the CPU; TF1.05 – analyse the role of flip-flops in the flow of data. Hardware, Interfaces, and Networking Systems TF2.01 – explain the function and interaction of the basic components of network configurations; TF2.02 – identify similarities and differences among several network topologies and protocols; TF2.03 – explain several computer-controlled systems that interact with real-world devices (e.g., traffic management systems, automotive systems, robotic systems). Programming Concepts TF3.01 – describe the constructs of a simple assembly or machine-level language; TF3.02 – identify similarities and differences among memory addressing techniques; TF3.03 – compare high-level and low-level commands that perform similar operations. Skills and Processes Overall Expectations SPV.01 · analyse information storage mechanisms; SPV.02 · use Boolean equations to represent computer logic circuits; SPV.03 · construct systems and interfaces that use computer programs to interact with real-world devices; SPV.04 · design effective network configurations; SPV.05 · develop programs using the software life cycle (problem definition, analysis, design, implementation, testing, and maintenance). Specific Expectations Computer Logic and Electronics SP1.01 – convert between decimal and binary numbers; SP1.02 – build flip-flops using simple logic gates from schematics; SP1.03 – incorporate flip-flops in a clocked circuit to demonstrate information storage; Page 12 Computer Engineering – University/College Preparation SP1.04 – use electronic instruments (e.g., multimeter, logic probe) to troubleshoot circuits; SP1.05 – simplify Boolean equations accurately; SP1.06 – draw circuits that represent Boolean equations; SP1.07 – develop truth tables to represent Boolean equations. Hardware, Interfaces, and Networking Systems SP2.01 – analyse existing systems designs that use computers and interfaces to send and receive information; SP2.02 – design an effective system consisting of a computer and interface that integrates input and output devices (e.g., motion sensitive alarm, light-activated switch, LED sign, environmental control); SP2.03 – construct a system consisting of a computer and interface to communicate with external sources; SP2.04 – identify networking problems and troubleshooting procedures; SP2.05 – describe network hardware and software and their relationships. Programming Practice SP3.01 – write programs to process input and control output devices through interfaces; SP3.02 – trace the execution of simple machine-level programs; SP3.03 – write low-level programs; SP3.04 – document all programs to a specified standard. Impact and Consequences Overall Expectations ICV.01 · identify issues related to the ethical use of computers; ICV.02 · explain the importance of postsecondary education, employability skills, and lifelong learning to computer engineering careers; ICV.03 · describe the use of computer technologies and their impact in the community; ICV.04 · demonstrate project management skills. Specific Expectations IC1.01 – use appropriate presentation software to explain issues relating to computer ethics (e.g., privacy, security, information access); IC1.02 – describe industry certification designations and requirements; IC1.03 – analyse the potential impact of emerging technologies on society; IC1.04 – use time management skills and constructive criticism in project settings; IC1.05 – communicate the results of projects effectively both orally and in writing; IC1.06 – use appropriate strategies to avoid potential health and safety problems associated with computer use, such as musculo-skeletal disorders and eye strain. Page 13 Computer Engineering – University/College Preparation Ontario Catholic School Graduate Expectations The graduate is expected to be: A Discerning Believer Formed in the Catholic Faith Community who CGE1a -illustrates a basic understanding of the saving story of our Christian faith; CGE1b -participates in the sacramental life of the church and demonstrates an understanding of the centrality of the Eucharist to our Catholic story; CGE1c -actively reflects on God’s Word as communicated through the Hebrew and Christian scriptures; CGE1d -develops attitudes and values founded on Catholic social teaching and acts to promote social responsibility, human solidarity and the common good; CGE1e -speaks the language of life... “recognizing that life is an unearned gift and that a person entrusted with life does not own it but that one is called to protect and cherish it.” (Witnesses to Faith) CGE1f -seeks intimacy with God and celebrates communion with God, others and creation through prayer and worship; CGE1g -understands that one’s purpose or call in life comes from God and strives to discern and live out this call throughout life’s journey; CGE1h -respects the faith traditions, world religions and the life-journeys of all people of good will; CGE1i -integrates faith with life; CGE1j -recognizes that “sin, human weakness, conflict and forgiveness are part of the human journey” and that the cross, the ultimate sign of forgiveness is at the heart of redemption. (Witnesses to Faith) An Effective Communicator who CGE2a -listens actively and critically to understand and learn in light of gospel values; CGE2b -reads, understands and uses written materials effectively; CGE2c -presents information and ideas clearly and honestly and with sensitivity to others; CGE2d -writes and speaks fluently one or both of Canada’s official languages; CGE2e -uses and integrates the Catholic faith tradition, in the critical analysis of the arts, media, technology and information systems to enhance the quality of life. A Reflective and Creative Thinker who CGE3a -recognizes there is more grace in our world than sin and that hope is essential in facing all challenges; CGE3b -creates, adapts, evaluates new ideas in light of the common good; CGE3c -thinks reflectively and creatively to evaluate situations and solve problems; CGE3d -makes decisions in light of gospel values with an informed moral conscience; CGE3e -adopts a holistic approach to life by integrating learning from various subject areas and experience; CGE3f -examines, evaluates and applies knowledge of interdependent systems (physical, political, ethical, socio-economic and ecological) for the development of a just and compassionate society. Page 14 Computer Engineering – University/College Preparation A Self-Directed, Responsible, Life Long Learner who CGE4a -demonstrates a confident and positive sense of self and respect for the dignity and welfare of others; CGE4b -demonstrates flexibility and adaptability; CGE4c -takes initiative and demonstrates Christian leadership; CGE4d -responds to, manages and constructively influences change in a discerning manner; CGE4e -sets appropriate goals and priorities in school, work and personal life; CGE4f -applies effective communication, decision-making, problem-solving, time and resource management skills; CGE4g -examines and reflects on one’s personal values, abilities and aspirations influencing life’s choices and opportunities; CGE4h -participates in leisure and fitness activities for a balanced and healthy lifestyle. A Collaborative Contributor who CGE5a -works effectively as an interdependent team member; CGE5b -thinks critically about the meaning and purpose of work; CGE5c -develops one’s God-given potential and makes a meaningful contribution to society; CGE5d -finds meaning, dignity, fulfillment and vocation in work which contributes to the common good; CGE5e -respects the rights, responsibilities and contributions of self and others; CGE5f -exercises Christian leadership in the achievement of individual and group goals; CGE5g -achieves excellence, originality, and integrity in one’s own work and supports these qualities in the work of others; CGE5h -applies skills for employability, self-employment and entrepreneurship relative to Christian vocation. A Caring Family Member who CGE6a -relates to family members in a loving, compassionate and respectful manner; CGE6b -recognizes human intimacy and sexuality as God given gifts, to be used as the creator intended; CGE6c -values and honours the important role of the family in society; CGE6d -values and nurtures opportunities for family prayer; CGE6e -ministers to the family, school, parish, and wider community through service. A Responsible Citizen who CGE7a -acts morally and legally as a person formed in Catholic traditions; CGE7b -accepts accountability for one’s own actions; CGE7c -seeks and grants forgiveness; CGE7d -promotes the sacredness of life; CGE7e -witnesses Catholic social teaching by promoting equality, democracy, and solidarity for a just, peaceful and compassionate society; CGE7f -respects and affirms the diversity and interdependence of the world’s peoples and cultures; CGE7g -respects and understands the history, cultural heritage and pluralism of today’s contemporary society; CGE7h -exercises the rights and responsibilities of Canadian citizenship; CGE7i -respects the environment and uses resources wisely; CGE7j -contributes to the common good. Page 15 Computer Engineering – University/College Preparation Unit 3: Digital Logic and Electronic Circuits Time: 25 hours Unit Description Students are challenged to integrate and assemble a digital “gaming wheel” circuit that incorporates a clock circuit and two-state devices, which are commonly called “flip-flops.” Flip-flops make up the building blocks for basic memory units used in sequential logic operations. They are used extensively as the basis for digital memory storage and transfer, such as in registers. Initial activities are skill builders through hands-on activities; students arrange simple logic to create R-S, D, and J-K flip-flops and develop truth tables to understand their function. Students identify and hardwire circuits to create D, R-S, and J-K flip-flops and develop truth tables. Students research and design a clock circuit that is used to understand the shifting of data in response to timed clock pulses. Unit Synopsis Chart Activity 3.1 Non-clocked Flip-Flops 3.2 Clocked FlipFlops 3.3 Clocked Data Transfer Time 8 hours 7 hours 10 hours Learning Expectations SPV.02, SP1.02, SP1.05, SP1.06, SP1.07 CGE2b, 2c, 3c TF1.05, SP1.03 CGE2b, 2c, 3c Assessment Categories Application TF1.05, SP1.03 CGE2b, 2c, 3c Thinking/Inquiry Application Thinking/Inquiry Application Tasks Understand the role and concept of flip-flops by hardwiring an R-S flip-flop using basic logic gates. Use D and J-K flip-flops to investigate how clocks are used in triggering flip-flops. Integrate a clock circuit, flip-flops, and shift registers in a game spinner circuit. Activity 3.1: Non-clocked Flip-Flops Time: 8 hours Description This activity focuses on hardwiring a non-clocked R-S flip-flop and understanding the role of flip-flops and data flow in computer memory circuits. Students use basic logic gates to construct an R-S flip-flop. They describe the structure of flip-flops and construct truth tables to identify outcomes based on inputs to the flip-flop. They also use Boolean expressions to describe logic circuits. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE2b - read, understand, and use written materials effectively; CGE2c - present information and ideas clearly and honestly and with sensitivity to others; CGE3c - think reflectively and creatively to evaluate situations and solve problems. Strand(s): Skills and Processes Overall Expectations SPV.02 - use Boolean equations to represent computer logic circuits. Unit 3 – Page 1 Computer Engineering – University/College Preparation Specific Expectations SP1.02 - build flip-flops using simple logic gates from schematics; SP1.05 - simplify Boolean equations accurately; SP1.06 - draw circuits that represent Boolean equations; SP1.07 - develop truth tables to represent Boolean equations. IC1.06 - use appropriate strategies to avoid potential health and safety problems associated with computer use, such as musculo-skeletal disorders and eye strain. Prior Knowledge & Skills Familiarity with basic electronic components, symbols, and characteristics; Understanding of logic gates; Familiarity with use of truth tables; Ability to manipulate Boolean expressions. Planning Notes For students who have not taken the Grade 11 Computer Engineering course and are not familiar with basic electronic components, review Grade 11, University/College Preparation, Unit 3. The glossary is referred to in various activities. Students develop and add to this section of their notebooks on an ongoing basis. Have ready access to resource materials for researching integrated circuits and flip-flops. Review safety with electricity and the proper handling and storage of batteries. Prepare pre-sorted kits with appropriate components: breadboard, integrated circuits, 5-volt regulator, battery, battery clip, and wire. Ensure parts/components storage area is well organized and assist in the management and distribution of parts/components. Ensure a supply of spare components and supplies are available. Ensure students do not wear acrylic or wool sweaters before handling computer components. Ensure students discharge themselves before handling components or computers. Hardwire each circuit ahead of time so students can refer to teacher sample for reference. Use a variety of visual aids to enhance presentations, e.g., PowerPoint, overhead, computer graphics. Teaching/Learning Strategies 1. The teacher reviews safety considerations with students about working with electronic components, specifically emphasizing the dangers of short-circuiting a battery and damage by static electricity. 2. Students complete Appendix 3.1.5 – Electronic Safety Quiz. Reinforce the importance of safety by having a summary of safety rules posted in the classroom. 3. Students develop dexterity by hardwiring two simple circuits on the breadboard. It may be useful to have the backing of a breadboard stripped off to show how it is constructed and how the holes are connected together (see Appendix 3.1.1 – Breadboards). 4. The teacher reviews and demonstrates the proper use of circuit building tools, e.g., Integrated Circuit (IC) insertion tool, IC removal tool. Using the proper tools assists in minimizing damage to fragile components. 5. Students research how to identify pins on an IC and draw diagrams, in their glossaries, of the internal structure of the basic logic gate ICs – AND (7408), NAND (7400), OR (7432), NOR (7402), NOT (7404) (Appendix 3.1.2 – Block and Pinout Diagrams). 6. The teacher reviews Boolean algebra and has students apply knowledge to simplify Boolean expressions for combination logic circuits (Appendix 3.1.3 – Combinational Logic Circuits from Boolean Expressions). Unit 3 – Page 2 Computer Engineering – University/College Preparation 7. Students pair up to research the function and possible applications for flip-flops. 8. The teacher leads a class discussion on the function and application of flip-flops, e.g., building blocks of memory circuits used in RAM and CPU registers, by having groups contribute their findings to the class. 9. Students hardwire an R-S flip-flop using both NAND gates and OR gates. Students use their prior knowledge from Grade 11 to complete a truth table. Students research the prohibited states of a flipflop (Appendix 3.1.4 – R-S Flip-Flop Circuits). Assessment & Evaluation of Student Achievement To reinforce the importance of safety when working with electronic components, tools, and electricity, students complete a safety quiz (see Appendix 3.1.5 – Electronic Safety Quiz). The completion of hardwired circuits is assessed using a rubric At the end of this activity, students write a quiz to test their knowledge of Boolean expressions and flip-flops (Appendix 3.1.7 – Activity 1 Quiz). Accommodations Consult individual student IEPs for specific direction or accommodation for individuals Monitor individual progress in dexterity and allow extra time to complete circuits. Establish a ‘buddy system’ for example to assist in identifying components for students who are colour blind and where fine motor skills are required. Have large lighted magnifiers for students who are visually impaired. Resources Print Smyth, Graham and Christine Stephenson. Computer Engineering: An Activities-Based Approach. Toronto: Holt Software, 2000. ISBN 0-921598-36-X Tokheim, Roger. Digital Electronics, 4th ed. McGraw Hill Book Company, 1994. ISBN 002-801853-2 Websites Electronics Basics – http://www.epanorama.net/basics.html Marshall Brain’s How Stuff Works – http://www.howstuffworks.com/ Unit 3 – Page 3 Computer Engineering – University/College Preparation Appendix 3.1.1 – Breadboards Breadboards are a convenient way to experiment and connect circuits so that parts are not damaged or made unusable by soldering. The breadboard is built with conductive channels underneath in vertical and horizontal columns. Two rows at both the top and bottom of the breadboard, conveniently labelled + and , supply power for the whole length of the breadboard when power, such as a battery, is connected to it. While each hole in one row is connected together, each of these rows is separate from each other. The same logic is applied to the columns. Each of the five holes in the column is connected to each other, but all columns are separate from each other. Students wire the two circuits, one series and one parallel, and demonstrate their capability to understand the breadboard and wiring of circuits. Photographic Views Unit 3 – Page 4 Computer Engineering – University/College Preparation Appendix 3.1.2 Block and Pinout Diagrams The following is a reference for the teacher. Unit 3 – Page 5 Computer Engineering – University/College Preparation Appendix 3.1.3 Combinational Logic Circuits from Boolean Expressions Circuits that are defined by a Boolean equation can be implemented directly from that expression. For example, to construct a circuit whose output is y = AC + BC' + A'C, we look at how the separate terms are related in the overall expression. This Boolean expression contains three terms (AC, BC', A'C) “ORed” together, as determined by the “+”" sign. A three-input OR gate is required with inputs that are equal to AC, BC', and A'BC, respectively. If a three-input OR gate is unavailable, two OR gates can be combined: Each OR gate input is an AND product term, which means that an AND gate with appropriate inputs can generate each term. Note the use of inverters to produce the A' and C' terms in the expression. Boolean Theorem Logic Circuit X * 0=0 X*1=1 X*X=X X * X’ = 0 X+0=X X+1=1 X+X=X X+X=1 Unit 3 – Page 6 Computer Engineering – University/College Preparation Appendix 3.1.3 (Continued) Multivariable Theorems 1. X + Y = Y + X 6. (W + X)(Y + Z) = WY + XY + WZ + XZ 2. X * Y = Y * X 7. X + XY = X 3. X + (Y + Z) = (X + Y) + Z = X + Y + Z 8. X + X’Y = X + Y 4. X(YZ) = (XY)Z = XYZ 9. (X + Y)’ = X’ * Y’ 5. X(Y + Z) = XY + XZ 10. (X * Y)’ = X’ + Y’ Example of simplifying a Boolean expression with associated logic circuit Y = [(A'+C) * (B+D')]' = (A'+C)' + (B+D')' = (A*C') + (B'+D) = AC' + B'D Consult textbook resources for more samples of creating logic circuits from Boolean expressions and for deriving the Boolean expression from a logic circuit. Unit 3 – Page 7 Computer Engineering – University/College Preparation Appendix 3.1.4 R-S Flip-Flop Circuits Students consult their glossary for pinout diagrams of the researched gates. Students hardwire the circuit and fill in the truth table. The teacher provides feedback during hardwiring to ensure a working circuit. Truth Table State S R Q Q' Truth Table State S R Q Q' Unit 3 – Page 8 Computer Engineering – University/College Preparation Appendix 3.1.5 Electronic Safety Quiz Name: Date: Answer the following questions. 1. What type of clothing should be avoided when working with electronic parts? 2. What tool should be used when placing an (IC) onto the breadboard? Why? 3. What tool should be used when removing an IC from the breadboard? 4. Describe how electronic devices should be handled to avoid damage. 5. What might you do before touching an electronic device to avoid static damage? 6. Why might you put a piece of masking tape over the terminals of a 9-volt battery? 7. What might happen if a battery short circuits? 8. Why is checking polarity important when power is about to be connected to your circuit? Teacher Answer Sheet 1. Avoid acrylic or wool sweaters 2. Use the IC insertion tool because it precisely places the IC into the holes on the breadboard, otherwise, you might severely damage the legs. 3. Use a IC extraction tool because the IC is tight in the board and removing it using fingers or screwdrivers can cause damage to the legs. 4. Use an antistatic pad to place devices on; hold the parts by the casing and not the leads; gently place or remove components. 5. Use an antistatic wrist strap or discharge yourself by touching a grounded metal object, such as a computer casing, table leg, or doorknob. 6. A piece of masking tape over the terminals of a 9-volt battery will keep any wires, tools, or other metal objects from shorting the terminals when stored. 7. If a battery short circuits, it becomes very hot and may explode. 8. Checking polarity is important because certain electronic components are susceptible to damage when power is applied in the wrong direction. Unit 3 – Page 9 Computer Engineering – University/College Preparation Appendix 3.1.6 Rubric to Assess Hardwired Circuits Category/ Level 1 Level 2 Level 3 Level 4 Criteria (50-59%) (60-69%) (70-79%) (80-100%) - demonstrates - demonstrates - demonstrates - thoroughly Thinking/ limited some considerable understands the Inquiry Truth Table understanding of understanding of understanding of relationship the relationship the relationship the relationship between inputs between inputs between inputs between inputs and outputs and outputs and outputs and outputs - uses proper - uses proper - uses proper - uses proper Application Hardwiring circuit-building circuit-building circuit-building circuit-building techniques with techniques with techniques with techniques with a limited some effectiveness considerable high degree of effectiveness effectiveness effectiveness Note: A student whose achievement is below Level 1 (50%) has not met the expectations for this assignment or activity. Appendix 3.1.7 – Activity 1 Quiz Name: _____________________________ 1. Express the output of the following circuits in Boolean terms. a. b. c. 2. Combine logic gates to produce an output related to the following Boolean expressions: a. f(A,B,C,D) = (`A·B Å C ) +`CD b. f(A,B,C) = [( A + C ) · B] + (`A · B ) + (B · `C) 3. What is an R-S flip-flop also called? 4. What does the R-S stand for and what effect does it have on Q? 5. Draw the circuit diagram for an R-S flip-flop using NAND gates. 6. Draw the block and pinout diagrams of a 7400 IC. 7. Discuss the connection between flip-flops and memory devices. Unit 3 – Page 10 Computer Engineering – University/College Preparation Activity 3.2: Clocked Flip-Flops Time: 7 hours Description This activity focuses on flip-flops in integrated circuit form and incorporating a clocked circuit to alter the state of the flip-flop. Students are challenged to develop a clocking circuit to be used in exploring the movements of stored data in flip-flop circuits. They hardwire clocked R-S, D, and J-K flip-flops using basic logic gates and construct truth tables to understand the relationship between input and output states. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE2b - read, understand, and use written materials effectively; CGE2c - present information and ideas clearly and honestly and with sensitivity to others; CGE3c - think reflectively and creatively to evaluate situations and solve problems; Strand(s): Theory and Foundation, Skills and Processes Specific Expectations TF1.05 - analyse the role of flip-flops in the flow of data; SP1.03 - incorporate flip-flops in a clocked circuit to demonstrate information storage. Prior Knowledge & Skills Hardwiring skills from Activity 3.1; Knowledge of integrated circuit identification from Activity 3.1; Familiarity with reading electronic circuit diagrams. Planning Notes Students developed hardwiring skills in Activity 3.1. The ability to read electronic circuit diagrams is important for students from this point onward. Close monitoring during this activity may be needed to develop this skill. Ensure parts/components storage area is well organized and assist in the management and distribution of the parts and components. Ensure spare components and supplies are available. Ensure students do not wear acrylic or wool sweaters before handling components of computers. Ensure students discharge themselves before handling components or computers. Hardwire each circuit ahead of time so students can refer to teacher sample for reference. Use a variety of visual aids to enhance presentations, e.g., PowerPoint, overhead, computer graphics. Teaching/Learning Strategies The teacher leads a discussion of the function of clocks in digital circuits and its role in the timing and flow of data. Students are paired and presented with a challenge of designing a clock circuit that generates a 1-kHz square wave for use in exploring clocked flip-flop circuits. Students also research how a variety of frequencies might be achieved (Appendix 3.2.1 – Clock Circuit). Students hardwire clocked flip-flops using basic logic gates and complete truth tables as a skillbuilding exercise (Appendix 3.2.2 – R-S, D, and J-K Flip-Flops Using Basic Gates). Unit 3 – Page 11 Computer Engineering – University/College Preparation Students are given a 7474 and a 7476 IC as mystery ICs. They connect the two circuits and observe the differences in data flow between the two ICs to identify them as a D or J-K flip-flop (Appendix 3.2.3 – D and J-K Flip-Flops: IC Block and Pinout Diagrams). Students research and transfer information of the internal structure of the 7474 and 7476 integrated circuits into their glossary. Assessment & Evaluation of Student Achievement A checklist is provided for assessing the clocking circuit (Appendix 3.2.4 – Clock Circuit Checklist). Students’ flip-flop circuits are evaluated using a rubric Check for additions to glossary in this activity. Resources Print Smyth, Graham and Christine Stephenson. Computer Engineering: An Activities-Based Approach. Toronto: Holt Software, 2000. ISBN 0-921598-36-X Tokheim, Roger. Digital Electronics, 4th ed. McGraw Hill Book Company, 1994. ISBN 002-801853-2 Websites University of Sidney Australia – http://www.eelab.usyd.edu.au/digital_tutorial/part2/flip-flop01.html Marshall Brain’s How Stuff Works – http://www.howstuffworks.com/ Unit 3 – Page 12 Computer Engineering – University/College Preparation Appendix 3.2.1 Clock Circuit The following circuit is a reference circuit that generates a 1-kHz square wave using a 555-timer circuit. Clocked circuits can be developed using logic gates, however, the versatility and proven history of the 555 timer make it the most reasonable choice for building a clocking mechanism. A block diagram showing pins and labels is provided as reference. Unit 3 – Page 13 Computer Engineering – University/College Preparation Appendix 3.2.2 R-S, D, and J-K Flip-Flop Using Basic Gates Students consult their glossary for pinout diagrams of the gates. Students hardwire the circuit and fill in the truth table. The teacher provides formative assessment during hardwiring to ensure a working circuit. State S State State Unit 3 – Page 14 R D J clock clock K Q Q clock Q' Q' Q Q' Computer Engineering – University/College Preparation Appendix 3.2.3 D and J-K Flip-Flop: IC Block and Pinout Diagrams The following is a reference diagram for the teacher. Appendix 3.2.4 Clock Circuit Checklist Assess the clock circuit using the following checklist Expectation There is a neatly drawn diagram of the clock circuit. Formula showing calculations of frequency is evident. Circuit is neatly wired. Circuit is functional. Students are able to identify components as to their function. Unit 3 – Page 15 Yes Computer Engineering – University/College Preparation Activity 3.3: Clocked Data Transfer Time: 10 hours Description This activity focuses on students integrating a clock, flip-flop, and a shift register into a gaming wheel circuit. This circuit serves as the basis for understanding the role of each section. Students learn how flipflops are incorporated into shift registers and how shift registers are used to move data. Students hardwire and analyse the flow of data and explain the function of each section and how they interact with each other. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE2b - reads, understands, and uses written materials effectively; CGE2c - presents information and ideas clearly and honestly and with sensitivity to others; CGE3c - thinks reflectively and creatively to evaluate situations and solve problems. Strand(s): Theory and Foundation, Skills and Processes Specific Expectations TF1.05 - analyse the role of flip-flops in the flow of data; SP1.03 - incorporate flip-flops in a clocked circuit to demonstrate information storage; IC1.05 - communicate the results of projects effectively both orally and in writing. Prior Knowledge & Skills Knowledge of flip-flops from Activity 3.2; Knowledge of integrated circuit identification from Activity 3.1; Familiarity with reading electronic circuit diagrams from Activities 3.1 and 3.2. Planning Notes Ensure parts/components storage area is well organized and assist in the management and distribution of the parts and components. Ensure a supply of spare components and supplies are available. Ensure students do not wear acrylic or wool sweaters before handling components of computers. Ensure students discharge themselves before handling components or computers. Hardwire each circuit ahead of time so students can refer to teacher sample for reference. Have a variety of visual aids available to enhance student presentations, e.g., overhead projector, LCD projector. Teaching/Learning Strategies 1 Students are given two circuits using block diagrams of the 74HC164 and the 74HC165. They research which block diagrams correspond to the respective shift registers and obtain pinouts to hardwire the circuits and develop truth tables for them (Appendix 3.3.1 – Shift Register Circuits). 2 Students add integrated circuit pin diagrams of the shift registers to their glossary (Appendix 3.3.2 – Shift Registers: Block and Pinout Diagrams). 3. The teacher presents students with a challenge. Using a clock, flip-flop, and shift register, arrange them in such a manner that it simulates a gaming wheel circuit where LEDs light up successively one at a time. Students are paired up to develop the circuit based on previous skill building. A reference circuit is provided for the teacher (Appendix 3.3.3 – Gaming Wheel Circuit). 4. Groups hardwire their circuits and then present their design solution and working circuit to the class. Unit 3 – Page 16 Computer Engineering – University/College Preparation Assessment & Evaluation of Student Achievement Provide diagnostic feedback of students’ progress as students are building their shift register circuits. The game spinner circuits are assessed using a rubric. Student presentations are assessed using a rubric (Appendix 3.3.4 – Presentation Rubric). Resources Smyth, Graham and Christine Stephenson. Computer Engineering: An Activities-Based Approach. Toronto: Holt Software, 2000. ISBN 0-921598-36-X Tokheim, Roger. Digital Electronics, 4th ed. McGraw Hill Book Company, 1994. ISBN 002-801853-2 Appendix 3.3.1 Shift Register Circuits Internal block diagrams for students Unit 3 – Page 17 Computer Engineering – University/College Preparation Appendix 3.3.2 Shift Registers: Block and Pinout Diagrams Students copy these block and pinout diagrams for the D an J-K flip-flops into their glossaries. Students use these diagrams for reference as they hardwire circuits. Unit 3 – Page 18 Computer Engineering – University/College Preparation Appendix 3.3.3 Gaming Wheel Circuit (teacher reference) When turning on the power, the shift register must first be cleared to all zeros. When the spin wheel switch is pressed, a single high must be loaded into position 0 on the display, lighting LED 0. The 555timer section acts as clock which starts at a high frequency and gradually decreases in frequency until it stops. The clock pulses are inputted into the shift register. Each clock pulse entering the register will shift the high bit to the next position, lighting up LED 1, then LED 2, etc. When the clock stops, a single LED should be lit on the wheel in a random position. The power-up initializing circuitry consisting of R7 and C4 must first clear the shift register and then set only the first output high. When power is first turned on, the voltage at the top of the .01 uF capacitor, C4, starts low and increases quickly to a high as it charges through resistor R7. The master reset input to the 74HC164 register is held low just long enough for the all the outputs of the register to be cleared to zero. At this point, all LEDs are off. The circuit that loads a single high to the register is the NAND gate configured as an RS latch. The two resistors, R5 and R6, force the output of the NAND gate (ICa) high when the power is first turned on. This high is applied to the data inputs, Dsa and Dsb, of the shift register. On the very first low-to-high transition of the clock, the high at the data inputs is transferred to output Q0 of the register. This high is immediately fed back to the input of ICd and resets the latch so that a low now appears at the data inputs, Dsa and Dsb. Only one high was loaded into the register. Repeated clock pulses move the high along until Q7 goes high. This high is fed back to the input of ICc The 74HC164 8-bit shift register is wired as a ring counter. The circuit has two characteristics that make it a ring counter. One characteristic is feedback from the last Q0 bit and the last Q7 bit to a flip-flop. When the high reaches output Q7, after clock pulse 8, a feedback line is run back to the flip-flop to transfer the high back to output Q0. The second characteristic is the loading of a pattern of 1s and 0s; these re-circulate as long as clock pulses reach the CP input of the shift register. Unit 3 – Page 19 Computer Engineering – University/College Preparation Appendix 3.3.4 Presentation Rubric Presentation Communication Organization Delivery Knowledge/ Understanding Content Knowledge Level 1 (50-59%) Level 2 (60-69%) Level 3 (70-79%) - shows limited organization - shows moderate organization - demonstrates limited command of presentation skills - demonstrates limited knowledge and ability to answer questions Level 4 (80-100%) - demonstrates a moderate command of presentation skills - shows considerable organization - demonstrates considerable command of presentation skill - shows a high degree of organization - demonstrates extensive command of presentation skills - demonstrates some knowledge and answers rudimentary questions - demonstrates considerable knowledge and is at ease with content - demonstrates knowledge and includes explanations and elaboration Application Visuals - uses visuals with - uses visuals with - uses visuals with - uses visuals limited some considerable effectively effectiveness effectiveness effectiveness Note: A student whose achievement is below Level 1 (50%) has not met the expectations for this assignment or activity. Unit 3 – Page 20 Computer Engineering – University/College Preparation Unit 4: Computer Programming Time: 20 hours Unit Description Students are introduced to low-level programming by making comparisons with the more familiar highlevel programming. Concepts students need to understand in order to compare, trace, and write low-level programs include registers, addressing techniques, flags, repetition, and decision structures. Since lowlevel programming contains no recognisable English words, reflective thinking and creative problem solving are extremely important. In this unit, students develop problem-solving and critical-thinking skills with the view of applying these skills to global issues in the Catholic tradition. Unit Synopsis Chart Activity 4.1 Performing Arithmetic Operations in Different Bases 4.2 High- and LowLevel Constructs 4.3 Addressing Techniques 4.4 Tracing LowLevel Programs 4.5 Writing LowLevel Programs Unit 4 – Page 1 Time 3 hours 3 hours 2 hours 5 hours 7 hours Learning Expectations TF1.01, SP1.01 CGE2b, 3b, 3c Assessment Categories Application Communication TFV.04, TF3.01, TF3.03, ICV.03 CGE2e, 3c TF3.01, TF3.02 CGE3c, 7e Thinking/Inquiry Communication TF3.01, SP3.02 CGE2b, 3c TF3.01, TF3.02, SP3.03, IC1.05 CGE2c, 4g, 7j Knowledge/ Understanding Thinking/Inquiry Application Thinking/Inquiry Communication Knowledge/ Understanding Application Tasks Base conversions among decimal, binary, and hexadecimal number systems and binary arithmetic Constructs include assigning values to variables and incrementing numbers Techniques include immediate, direct, and indirect addressing Tracing includes assignment statements, decision structures, and looping structures Low-level programs include the addressing and low-level constructs traced in Activities 4.2 to 4.4 Computer Engineering – University/College Preparation Activity 4.1: Performing Arithmetic Operations in Different Bases Time: 3 hours Description To understand the low-level programming structures and techniques introduced in this unit, students study some of the relationships among the decimal-based number system and the binary and hexadecimal number systems. Students also study arithmetic operations in the binary number system that are developed and applied to low-level programming and to signed and unsigned numbers. Students add to their journals by listing ways that computer software technology can be used for the common good. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE2b - read, understand, and use written materials effectively; CGE3b - create, adapt, and evaluate new ideas in light of the common good; CGE 3c - think reflectively and creatively to evaluate situations and solve problems. Strand(s): Theory and Foundation, Skills and Processes Specific Expectations TF1.01 - describe how signed and unsigned numbers are represented; SP1.01 - convert between decimal and binary numbers; ICV.01 - identify issues related to the ethical use of computers; ICV.03 - describe the use of computer technologies and their impact in the community; Prior Knowledge & Skills Arithmetic operations, including place value in base 10. Planning Notes Review arithmetic operations in binary with the goal of applying these operations to low-level programming in future activities. Teaching/Learning Strategies 1. The teacher initiates class discussion about the possible uses of computer software for helping solve global and community problems. Students write in their journals about how computers can solve some global and community problems. Ideas are used to develop a Code of Ethics in Activity 5. 2. The teacher then initiates discussion about the need for other number systems besides base 10. 3. The teacher demonstrates other numbering systems. 4. Students develop a table to count in binary and hexadecimal number systems and add the table to their portfolios. 5. Students compare these systems with the base-10 number system and establish relationships. 6. The teacher reviews the conversion mechanisms between base 10, the decimal system, and base 2, the binary system. 7. The teacher reviews the arithmetic operations of addition and subtraction in binary and introduces the two’s-complement method of subtracting. 8. Students discuss the advantages and disadvantages of two subtraction methods. 9. Students pair up to establish the two’s-complement method’s connection to signed and unsigned numbers. Unit 4 – Page 2 Computer Engineering – University/College Preparation Assessment & Evaluation of Student Achievement Score student answers on conversion table chart that relates binary and decimal number systems (Appendix 4.1.1 – Binary and Decimal Number System Conversions). Students are assessed on their completed conversion charts (Appendix 4.1.2 – Binary and Hexadecimal Number Conversions). Students complete the arithmetic operation question sheet (Appendix 4.1.3 – Adding and Subtracting in Binary). Students are assessed on their ability to apply arithmetic operations to signed and unsigned numbers (Appendix 4.1.4 – Signed and Unsigned Numbers). Accommodations Provide a partially completed glossary that students complete on their own or with assistance from their peers. Appoint a safety monitor or use the buddy system. Resources Print Brey, Barry B. Intel Microprocessors: Architecture, Programming and Interfacing. Prentice Hall, 2000. ISBN 0-13-995408-2 Gaonkar, Ramesh S. Microprocessor Architecture, Programming, and Applications with the 8085. Toronto: Collier Macmillan Canada Inc., 1999. ISBN 0-13-901257-5 Haskell, Richard E. Introduction to Computer Engineering: Logic Design and the 8086 Microprocessor. Prentice Hall, 1993. ISBN 0-13-489436-7 Smyth, Graham and Christine Stephenson. Computer Engineering: An Activity-Based Approach. Toronto: Holt Software Associates, 2000. ISBN 0-921598-36-X Websites Microprocessor Simulator 8085 Ver3.2 – http://www.insoluz.com Unit 4 – Page 3 Computer Engineering – University/College Preparation Appendix 4.1.1 Binary and Decimal Number System Conversions Most mathematical, scientific, and high-level programming is carried out in the base 10 (decimal) number system. Computers, however, do not use the decimal system but rather the binary number system. In order to understand how a computer really processes numbers, binary-decimal conversions must be understood. Example 1: Convert the binary number 10011000 to base 10. Check your answer using a calculator. Since binary numbers have place value, like the decimal number system, the fundamental operation is multiplication where each successive binary digit is multiplied by 2. Writing the number 10011000 vertically and multiplying by the appropriate binary place value gives the following numbers. 1 X 27 = 128 0 X 26 = 0 0 X 25 = 0 1 X 24 = 16 1 X 23 = 8 0 X 22 = 0 0 X 21 = 0 0 X 20 = 0 Total = 152 Therefore 100110002 = 15210 Example 2: Convert the decimal number 56 to binary. Check your answer using a calculator. The fundamental arithmetic operation in example 1 (conversion was from binary to base 10) was multiplication. Here the fundamental operation is division since the conversion is in the opposite direction. 56 28 14 7 3 1 14 1 28 7 3 0 Divisions: 2 2 2 2 3 2 Remainders: 0 0 0 1 1 1 The division stops since the last quotient was 0. The binary answer is found in the remainders collected in reverse. Therefore, 5610 = 1110002. Complete the following chart. Check your answers using a calculator. Add this work to your portfolio. Question Decimal Number Binary Number 1 255 2 1100110 3 73 4 111011 5 5678 Unit 4 – Page 4 Computer Engineering – University/College Preparation Appendix 4.1.2 Binary and Hexadecimal Number Conversions The conversion between binary and hexadecimal is the easiest conversion. Writing binary numbers and hexadecimal numbers out in a chart, you will recognize that the 4-bit binary number 1111 coincides with the hexadecimal digit F. Conversion Chart Decimal Binary Hexadecimal Decimal Binary Hexadecimal 0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 10 1010 A 3 0011 3 11 1011 B 4 0100 4 12 1100 C 5 0101 5 13 1101 D 6 0110 6 14 1110 E 7 0111 7 15 1111 F Converting between binary and hexadecimal involves grouping all binary digits in sets of 4. Example 1: Convert 11100001 to hex. Check your answer using a calculator. 1110 0001, now grouped in 4s, equals E1 in hex. Example 2: Convert F5 hex to binary. Check your answer using a calculator. F5, translated to groups of 4 binary digits, equals 1111 0101. Convert the following. Add this work to your portfolio. Question Hexadecimal Binary Number 1 A3 2 1100110 3 FF 4 111011 5 1110 Unit 4 – Page 5 Computer Engineering – University/College Preparation Appendix 4.1.3 Adding and Subtracting in Binary Example 1: Add the binary numbers 1101 and 1001. Check your answer using a calculator 1101 1001 10110 Therefore 1101 + 1001 equals 10110. Adding and carrying a digit in binary is the same as adding in base 10, but remember that the adding is in binary. Subtracting in binary can be carried out using two very different methods. The first method is similar to subtracting in decimal; each column being subtracted has a borrow from the next column. Example 2: Subtracting by borrowing. Check your answer using a calculator. In binary, subtract 1101 from 11101. 11101 01101 10000 Therefore 111012 11012 = 100002 This method closely resembles subtracting in base 10. Example 3: Subtract the following two numbers using the two’s-complement method. Check your answer using a calculator. 11101012 – 10111012 Follow the 4 steps: Step 1 Align the two numbers. 1110101 1011101 Step 2 Complement the bottom number. Copy number : 111010 1110101 1011101 Complement : 01000010 100010111 Step 3 Add : Step 4 Drop the leading digit and add one. 10010111 becomes 0010111 1 11000 Therefore 11101012 10111012 = 110002 Use the two’s-complement method to subtract the following. Add this work to your portfolio. a) 56 32 Unit 4 – Page 6 b) 73 44 c) 255 75 d) 55 73 Computer Engineering – University/College Preparation Appendix 4.1.4 Signed and Unsigned Numbers Unsigned Numbers Binary numbers, as with base 10 numbers, can either be unsigned (the number is always assumed to be positive) or signed (the plus or minus sign must be included). Binary numbers are stored in a computer in groups of 8 digits. Each digit is a bit and each group of 8 bits is a byte. Starting from the right, this bit is labelled bit 0. The bit to the left is bit 1. The next bit is bit 2 and so on to bit 7. All eight bits are displayed in these examples even when the leading bits are 0. Therefore, the base 10 number 8 is 1000 in binary but is written as 00001000 in byte format. When a byte is written in unsigned format, the number can be converted to base 10 by the method discussed in Appendix 4.1.1 – Binary and Decimal Number System Conversions. Example 1:What is the decimal value of the unsigned binary number 10011000? Check your answer using a calculator. Following Appendix 4.1.1, Example 1, 100110002 = 15210. The leading bit, which is called bit 7, is a 1. The value of that bit is 128 in base 10. The value changes when the byte is signed. Signed Numbers Signed binary numbers have a plus or minus sign within the number itself. In base 10, a signed number will have a + or a – sign in front of the number. In binary signed numbers, the + or – is incorporated into the number using the two’s-complement method. If the binary number is signed, bit 7 (the left-most bit) indicates the sign. The bit 7 is also referred to as the most significant bit (MSB). If the number is positive, bit 7 is a 0; if the number is negative, bit 7 is a 1. Example 1: What is the decimal value of the signed binary number 10011000? Check your answer using a calculator. Immediately we know that the signed number is negative since bit 7 (MSB) is a 1. To determine the magnitude of this negative number, the two’s-complement method is used. The steps to follow are: Take the complement The complement of 10011000 is 01100111 Add 1 01100111 + 1 = 01101000 Converting 011010002 = 10410. Therefore the signed byte 100110002 = -10410 Convert the following signed/unsigned numbers to base 10. Check your answer using a calculator. Add this work to your portfolio. Question Signed Binary Number Decimal Equivalent 1 Yes 011111100 2 No 11001100 3 No 11101100 4 Yes 11111111 5 No 11111111 Unit 4 – Page 7 Computer Engineering – University/College Preparation Activity 4.2: High- and Low-Level Constructs Time: 3 hours Description The hexadecimal number system discussed in Activity 4.1 is now applied to low-level constructs. These constructs are developed into simple programs that students compare with more familiar high-level programming commands. Students add to their journals on possible ways to use computer software technology to contribute to global and community needs in the Catholic faith tradition. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE 3c - think reflectively and creatively to evaluate situations and solve problems; CGE2e - use and integrate the Catholic faith tradition, in the critical analysis of the arts, media, technology, and information systems, to enhance the quality of life. Strand(s): Theory and Foundation Overall Expectations TFV.04 - compare high-level and low-level programming languages; ICV.01 - identify issues related to the ethical use of computers; ICV.03 - describe the use of computer technologies and their impact in the community. Specific Expectations TF3.01 - describe the constructs of a simple assembly or machine-level language; TF3.03 - compare high-level and low-level commands that perform similar operations. Prior Knowledge & Skills Programming in a high-level language; Familiarity with the registers in a microprocessor (from Unit 1). Planning Notes Review the hexadecimal number system as applied to low-level programming. Choose an assembler or simulator for programming low-level constructs. The 8085 assembler is used for all examples. The same assembler is used to develop addressing techniques in Activity 4.3, to trace low-level programs in Activity 4.4, and to write low-level programs in Activity 4.5. Review op codes, operands, and mnemonics. Select simple low- and high-level constructs for comparison. Teaching/Learning Strategies 1. Students add to their journals regarding possible uses of computer programming to solve issues both globally and in the community. Students are given the following topics: the environment, the poor, people with accessibility needs, and minority groups within the social context. 2. The teacher groups students to discuss the need (if any) and role of high- and low-level programming. Groups report to the class. 3. The teacher introduces the constructs of an assembly or machine-level language, for example constructs to: Assign a number to a variable: MVI A F3 (moves F3 into the accumulator). Add a number to the accumulator: ADI 0C (adds hex number 0C to the accumulator). End a program: HLT (halts the program). Add to a register: INR C (adds 1 to register C). Unit 4 – Page 8 Computer Engineering – University/College Preparation 4. Apply the hexadecimal number system to low-level programming. All commands in low-level programming are translated to hexadecimal format: – MVI A F3 (translates to 3E F3); – ADI 0C (translates to C6 0C); – HLT (translates to 76). 5. Compare high- and low-level programming languages, such as: – assigning a value to a variable (A := 5 translates to MVI A 05); – incrementing by 1 (C := C + 1 translates to INR C). 6. Students do practice exercises that relate constructs of machine level language and their hexadecimal equivalent and compare these to high level language 7. Students pair up to research career opportunities relating to low-level programming, such as Intel’s 80XX series, Motorola’s 68000 series, various PIC microcontrollers, or Programmable Loigic Controllers (PLCs). 8. Students research the connection between registers used in low-level programming and the registers discussed in Unit 1. Assessment & Evaluation of Student Achievement Students complete and teacher evaluates the chart describing the constructs of a simple assembly language (Appendix 4.2.1 – Developing Low-Level Constructs); Students complete and teacher evaluates the assignment comparing high-level and low-level programming languages (Appendix 4.2.2 – Comparing High- and Low-Level Languages). Resources Print Brey, Barry B. Intel Microprocessors: Architecture, Programming and Interfacing. Prentice Hall, 2000. ISBN 0-13-995408-2 Gaonkar, Ramesh S. Microprocessor Architecture, Programming, and Applications with the 8085. Toronto: Collier Macmillan Canada Inc., 1999. ISBN 0-13-901257-5 Haskell, Richard E. Introduction to Computer Engineering: Logic Design and the 8086 Microprocessor. Prentice Hall, 1993. ISBN 0-13-489436-7 Smyth, Graham and Christine Stephenson. Computer Engineering: An Activity-Based Approach. Toronto: Holt Software Associates, 2000. ISBN 0-921598-36-X Websites Microprocessor Simulator 8085 Ver3.2 – http://www.insoluz.com Unit 4 – Page 9 Computer Engineering – University/College Preparation Appendix 4.2.1 Developing Low-Level Constructs The hexadecimal number system is an integral part of low-level programming. Since this type of programming involves no English-type words, all commands are given in hexadecimal. The exact commands, as in high-level programming, depend on the language being used. Intel’s 8085 instruction set is used. The first column lists some assembly-level constructs. The second column gives the translated (by the assembler) hexadecimal equivalent of the first column. The third column documents the constructs. Mnemonic Op Code (and operands if any) Hex Op Code (and operands if any) MVI A F3 3E F3 MOV A B 78 ADI 0C C6 0C STA F324 32 F324 HLT 76 INR C 0C DCR C 0D SUI 02 D6 02 Documentation Move the hex value F3 (i.e., 240 base 10) into the accumulator. This command is 2 bytes long. Transfer the contents of B register into the accumulator (A register). No operands. This command is 1 byte long. Add to the accumulator the immediate value of 12 in base 10 or C in hex. C must be written as 0C since all registers are 1 byte in size. This command is 2 bytes long. Store the accumulator at hex memory location F324. This command is 3 bytes long. Break or end the program. No operands. This command is 1 byte long. Increment the value of the C register by 1. This command is 1 byte long. Decrement the value of the C register by 1. This command is 1 byte long. Decrement the accumulator (A register) by 2. This command is 2 bytes long. Complete the following chart to relate the constructs of machine-level language and their hexadecimal equivalents. Add this work to your portfolio. Mnemonic Op Code Hex Op Code Documentation (and operands if any) (and operands if any) MVI A FF MOV A B MVI C EA INR C RAL STA 3F24 Unit 4 – Page 10 Computer Engineering – University/College Preparation Appendix 4.2.2 Comparing High- and Low-Level Languages High- and low-level languages can carry out similar operations. Individual commands do not necessarily translate directly but there are similarities. There are similar commands in high- and low-level languages to accomplish operations, such as assigning a value to a variable; incrementing a variable by 1; decrementing a variable by 1; and adding two variables. The examples demonstrate how a high-level command can be roughly translated into a low-level command. All high-level commands are demonstrated in Turing and low-level commands in Intel 8085 assembly code. Example 1: Assign a value to a variable. Solution (Turing): var A: int A := 5 Documentation: A is an integer variable that is assigned a value of 5. Solution (8085 assembler code): MVI A 05 HLT Documentation: Line 1: MVI moves the value, here 5, into the accumulator (A register). Line2: HLT is the op-code to tell the CPU that this is the end of the program. Example 2: Assign a value to another variable. Solution (Turing) var counter: int counter := 15 Documentation: The integer variable counter is assigned a value of 15. Solution: 8085 assembler code: MVI C 0F HLT Documentation: Line 1: The value of 15 must be translated into the hexadecimal number system (0F) since we are dealing directly with the register in the CPU. The 0 is required in front of the F since the A, B, C, D, E, H, and L registers are one byte long (two hex digits). In a similar fashion, any number can be moved into these registers. The number moved into the register is an integer and has a maximum base 10 size of 255 (FF), the largest number that can be stored in 1 byte. Storing larger numbers requires connecting bytes together. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Example 3: Incrementing a variable by 1. Solution (Turing) var counter: int counter := 10 counter := counter + 1 Documentation: Initially, counter has a value of 10. The integer variable counter on the right side of the equal sign is evaluated first, so counter equals 11 after being incremented. The new value of counter is 11. Unit 4 – Page 11 Computer Engineering – University/College Preparation Appendix 4.2.2 (Continued) 8085 assembler code MVI C 0A INR C HLT Documentation: Line 1: The value of 10, 0A in hex, is moved into the C register. INR is the mnemonic that increments by 1. The C register is being incremented. In a similar fashion, any of the registers can be incremented. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Example 4: Adding two variables. Solution (Turing): var total, number : int total :=3 number := 12 total := total + number Documentation: Initially, the variable total has a value of 3. After the variable number has been added to total, total has a value of 15. 8085 assembler code MVI A 03 ADI 0C HLT Documentation: Line 1: The value of 3 is moved into the accumulator. Line 2: ADI adds the immediate value (0C in hex equals 12 in base 10) to the accumulator. The accumulator now contains 0F (0F equals 15 in base 10). Line 3: HLT is the op-code to tell the CPU that this is the end of the program. Assignment: Comparing High-Level and Low-Level Programming Language Complete the programs in the chart. Documentation should include the meaning of each command as well as the context of the command in the complete program. Add this work to your portfolio. Question High-Level Program Low-Level Program Documentation var counter : int 1 counter := 32 counter := counter / 2 var total, count : int 2 total :=3count := 12 total := total + count 3 MVI A 05HLT 4 MVI C 18DCR CHLT 5 MVI A 03ADI 0CHLT var initial: int 6 initial := 52 initial := initial - 2 Unit 4 – Page 12 Computer Engineering – University/College Preparation Activity 4.3: Addressing Techniques Time: 2 hours Description Several low-level constructs, such as assigning numbers to variables and performing arithmetic operations, were introduced in Activity 4.2. A further important construct needed to write low-level programs is addressing. Addressing techniques that students use to write low-level programs include direct, indirect, and immediate addressing. Documenting the addressing techniques is introduced. Students examine problem-solving techniques with the view of applying Christian values. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE4f - apply effective communication, decision-making, problem-solving, time, and resource management skills; CGE7e - witness Catholic social teaching by promoting equality, democracy, and solidarity for a just, peaceful, and compassionate society. Strand(s): Theory and Foundation Specific Expectations TF3.01 - describe the constructs of a simple assembly or machine-level language; TF3.02 - identify similarities and differences among memory addressing techniques. Prior Knowledge & Skills Programming in a high-level language; Familiarity with the registers in a microprocessor (from Unit 1); Understanding of basic low-level constructs of Activity 4.2. Planning Notes Develop the addressing concepts in the context that they will be used to write complete programs in Activity 4.5. Use the assembler/ simulator chosen in Activity 4.2 to test all concepts. Teaching/Learning Strategies 1. Students are asked to consider the role they will play as Catholic leaders in promoting social values. Students add to their journals by correlating the issues already listed with how they, as computer engineers, could promote a just and compassionate society. 2. Students then group to discuss the need and possible methods to identify memory addresses 3. The teacher develops a chart to differentiate between the four main addressing techniques. For example: Direct addressing puts the contents of an address in a register: LDA 1234 (puts the contents of address 1234 in the accumulator). Indirect addressing puts the contents of the address of two related registers in the accumulator: LDAX B (loads the accumulator with the contents of the address stored by registers B and C). Immediate addressing stores pairs of registers with immediate values: LXI B 1234 (loads the B register with 12 and the C register with 34). Unit 4 – Page 13 Computer Engineering – University/College Preparation 4. Students pair up to discuss the fundamental difference between the address of a byte of information and the contents of an address. 5. Students practise addressing techniques. Assessment & Evaluation of Student Achievement Students complete and the teacher evaluates addressing chart (Appendix 4.3.1 – Memory Addressing Techniques). Resources Print Brey, Barry B. Intel Microprocessors: Architecture, Programming and Interfacing. Prentice Hall, 2000. ISBN 0-13-995408-2 Gaonkar, Ramesh S. Microprocessor Architecture, Programming, and Applications with the 8085. Toronto: Collier Macmillan Canada Inc., 1999. ISBN 0-13-901257-5 Haskell, Richard E. Introduction to Computer Engineering: Logic Design and the 8086 Microprocessor. Prentice Hall, 1993. ISBN 0-13-489436-7 Smyth, Graham and Christine Stephenson. Computer Engineering: An Activity-Based Approach. Toronto: Holt Software Associates, 2000. ISBN 0-921598-36-X Unit 4 – Page 14 Computer Engineering – University/College Preparation Appendix 4.3.1 Memory Addressing Techniques One of the principle functions of the CPU is to communicate with memory. This communication is a bidirectional operation (i.e., the CPU must be able to send information to memory and also retrieve information from memory). To carry out this communication, the CPU must be able to locate the required piece of information. The location of a specific byte of information is called the address of the byte. There are several different techniques that can be used to locate a memory address. Memory addressing commands include Immediate Addressing, Direct Addressing, and Indirect Addressing. Immediate Addressing Immediate addressing involves storing data pairs of registers with immediate values. Registers that can act in pairs in immediate addressing are: B and C; D and E; and H and L. Example 1: Load the B register with 12 and the C register with 34. Solution: LXI B 1234 HLT Documentation: Line 1: Register B stores the byte 12 and the C register stores the byte 34. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Example 2: Load the H register with 45 and the L register with 67. Solution: LXI H 4567 HLT Documentation: Line 1: Similar to example 1, register H stores the byte 45 and the L register stores the byte 67. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Direct Addressing Direct Addressing assigns the contents of a memory location to a register. Each byte has an address (location) and a value (the number stored in the location). In our 64K environment, 65 536 different addresses must be assigned; this requires two bytes. Addresses are therefore two bytes in length. Example 1: Load the accumulator with the contents of address 1234. Solution: LDA 1234 HLT Documentation: Line 1: LDA causes the assembler to load the accumulator with the contents of address 1234. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Example 2: Store the contents of the accumulator at address ABCD. Solution: STA ABCD HLT Documentation: Line 1: The contents of the accumulator are stored at address ABCD in memory. The accumulator still contains the value stored at location ABCD. A copy has been now placed in memory location ABCD. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Unit 4 – Page 15 Computer Engineering – University/College Preparation Appendix 4.3.1 (Continued) Indirect Addressing Indirect addressing involves loading and storing information into the accumulator. The information is received from register pairs. For example, the command LDAX B takes a total of two bytes information from the register pair B and C as an address and stores the contents of that address in the accumulator. Example 1: Store the contents of register B and C in the accumulator. Solution: LDAX B HLT Documentation: Line 1: Indirect loading command uses registers B and C. If B contains 23 and C contains 45, the address pointed to is 2345. If the address 2345 contains FD, then FD is loaded into the accumulator. Line 2: HLT is the op-code to tell the CPU that this is the end of the program. Example 2: Load the accumulator with FF. Store the contents of the accumulator at memory location 2040. Solution: MVI A FF MVI B 20 MVI C 40 STAX B HLT Documentation: Line 1 will move the hex value FF into the accumulator. Line 2: MVI B will store the first half of the 2040 address, the 20, into the B register. Line 3: MVI C will move the second half of the 2040 address, namely the 40, into the C register. Line 4: STAX will store the FF from the accumulator into address 2040 in memory. Line 5: HLT is the op-code to tell the CPU that this is the end of the program. Assignment: Memory Addressing Techniques For each question, identify the type of addressing, the registers involved with the type of addressing, and an explanation of the function of the addressing technique. Add this work to your portfolio. Question Construct Addressing Type Registers Involved Documentation 1 STA 2040 2 STAX B 3 LXI H 4567 4 LDA A345 5 LDAX B 6 LXI D 5432 Unit 4 – Page 16 Computer Engineering – University/College Preparation Activity 4.4: Tracing Low-Level Programs Time: 5 hours Description The low-level structures developed in Activities 4.1, 4.2, and 4.3 are extended to include repetition and decision. By tracing existing programs, students examine and explain these structures through documentation. Students list the moral and ethical importance of proper documentation. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE2b - read, understand, and use written materials effectively; CGE 3c - think reflectively and creatively to evaluate situations and solve problems. Strand(s): Theory and Foundation, Skills and Processes Specific Expectations TF3.01 - describe the constructs of a simple assembly or machine-level language; SP3.02 - trace the execution of simple machine-level programs; SP3.04 - document all programs to a specified standard. Prior Knowledge & Skills Familiarity with the registers in a microprocessor (from Unit 1); Understanding of basic low-level constructs from Activity 4.2 and addressing techniques from Activity 4.3; Tracing low-level programs from Activity 4.4. Planning Notes Use the assembler/simulator chosen in Activity 4.2 to trace the execution of all programs. Examples are demonstrated using an 8085 assembler. The same assembler should be used for Activity 4.5. Check the execution of the programs using the assembler’s STEP as well as RUN function. Review op codes, operands, and mnemonics. Select simple low- and high-level constructs for comparison. Write several programs for the students in both high- and low-level languages so they can compare the two types of programming. Teaching/Learning Strategies 1. Students list the reasons why it would be important to provide proper and accurate documentation in all their projects and the consequences for improper or inaccurate documentation. These ideas are added to their journals. 2. The teacher reviews the registers introduced in Unit 1 3. The teacher relates these registers to simple assembly-level constructs, such as: MVI A F3 (moves the number F3 into the accumulator) STA 2AC4 (stores the contents of the accumulator at address 2AC4) STAX B (stores the accumulators contents at the stored in registers B and C) LHLD 1234 (loads the contents of location 1234 into L and loads the contents of location 1235 into register H) SBI 05 (subtracts 05 from the accumulator) ADI 0C (adds the number 0C to the accumulator) LDA 1234 (loads the accumulator with the contents of address 1234) Unit 4 – Page 17 Computer Engineering – University/College Preparation INC C (increments register C by 1) MOV A B (transfers the contents of register B into A) CPI 04 (compares the value in the accumulator with 4) CMP M (compares the memory location M, which is stored in registers H and L, with the accumulator) JM 8002. JM is used in conjunction with the comparison command CPI. If the comparison is true the next command is executed. If the comparison is false the execution jumps to address 8002. JC 8011 can be used with the CMP M command. If the contents of the accumulator is greater than the contents of memory location M then execution jumps to 8011. JNZ 8002 will jump to the next line if the previous instruction equalled 0. If it is not 0 then the program jumps to 8002. 4. Students pair up to discuss how the jump and compare commands are related. 5. The teacher demonstrates the use of the step and run features to trace low level programs using the assembler/simulator in Activity 4.2. Students practise tracing the execution of low level programs one step at a time (Appendix 4.4.1 – Tracing Low-Level Programs). Assessment & Evaluation of Student Achievement In pairs, students exchange and assess the documentation of a program based on completeness, clarity of expression, and exactness when explaining the purpose of the entire program and of each component Resources Print Brey, Barry B. Intel Microprocessors: Architecture, Programming and Interfacing. Prentice Hall, 2000. ISBN 0-13-995408-2 Gaonkar, Ramesh S. Microprocessor Architecture, Programming, and Applications with the 8085. Toronto: Collier Macmillan Canada Inc., 1999. ISBN 0-13-901257-5 Haskell, Richard E. Introduction to Computer Engineering: Logic Design and the 8086 Microprocessor. Prentice Hall, 1993. ISBN 0-13-489436-7 Smyth, Graham and Christine Stephenson. Computer Engineering: An Activity-Based Approach. Toronto: Holt Software Associates, 2000. ISBN 0-921598-36-X Websites Microprocessor Simulator 8085 Ver3.2 – http://www.insoluz.com Unit 4 – Page 18 Computer Engineering – University/College Preparation Appendix 4.4.1 Tracing Low-Level Programs Tracing low-level programs requires communicating directly with the CPU through an assembler. The exact assembler environment depends on the particular assembler being used; the syntax used is the standard 8085 instruction set. Each low-level program should be traced line by line. The function of each op code and operand as well as the purpose of the line in the context of the program should be explained through documentation. Also, the overall purpose of the program should be stated at the conclusion of the program. Documentation habits developed here should be included in all programs being written. Example 1: Write a low-level program that will subtract 23 from FF. Solution: MVI A FF SBI 23 HLT Documentation: Line 1: MVI moves the immediate value given, here FF, into the accumulator. This value of FF will be used in the next operation. Line 2: SBI subtracts the immediate value, here 23, from the accumulator. Line 3: HLT halts the program, indicating the end of the program. The value in the accumulator is now DC. Note: All low or high are always assembled somewhere in memory. In the previous examples the exact address in memory has not been stated. Question 3 starts with, 8000 MVI A 00. Address 8000 has been selected as the staring address to assemble the program. The other addresses may be calculated manually but the assembler being used will do the counting of bytes for you. The addresses must be stated explicitly in programs that require decision or repetition structures. The addresses have been left off in programs not requiring repetition or decision for ease of reading. Trace the program by writing complete documentation for each of the following. Question 1: Load the accumulator with 5510. Add 5 to this number and store it at location 4556. Solution: MVI A 37 ADI 05 STA 4556 HLT Documentation: Unit 4 – Page 19 Computer Engineering – University/College Preparation Appendix 4.4.1 (Continued) Question 2: Load the contents of two memory locations into registers C and D. Add the contents of these registers and store the answer at address 9ABC. Solution: LDA 1234 MOV C A LDA 5678 MOV D A ADD C STA 9ABC HLT Documentation: Question 3: Document each line of the program and then state the overall purpose of the program. 8000 MVI A 00 8002 INR A 8003 CPI 05 8005 JM 8002 8008 HLT Documentation: Question 4: Document each line of the program and then state the overall purpose of the program. 8000 MVI A 01 8002 MVI B 20 8004 MVI C 30 8006 STAX B 8007 INX B 8008 INR A 8009 CPI 06 800B JM 8006 800E HLT Documentation: Question 5: Document each line of the program and then state the overall purpose of the program. 8000 MVI A 00 8002 MVI B 08 8004 MVI C 06 8006 ADD B 8007 INR B 8008 DCR C 8009 JP 8006 800C STA 8100 800F HLT Documentation: Unit 4 – Page 20 Computer Engineering – University/College Preparation Appendix 4.4.1 (Continued) Question 6: Document each line of the program and then state the overall purpose of the program. LHLD 1234 MVI A 00 ADD H SUB L HLT Question 7: The numbers presently stored in memory locations 0251 to 025B are sorted in ascending order. Document the program. 8000 MVI B 0A 8002 LXI H 0251 8005 MOV C B 8006 MOV A M 8007 INX H 8008 CMP M 8009 JC 8011 800C MOV D M 800D MOV M A 800E DCX H 800F MOV M D 8010 INX H 8011 DCR C 8012 JNZ 8006 8015 DCR B 8016 JNZ 8002 8019 HLT Documentation: Unit 4 – Page 21 Computer Engineering – University/College Preparation Activity 4.5: Writing Low-Level Programs Time: 9 hours Description After examining and tracing many structures, students write low-level programs. The structures that are included in their programs include register commands, arithmetic operations, addressing techniques, repetition, and comparison. Unit 4 concludes with a summative assignment in which students write lowlevel programs. Students complete a personal Code of Ethics based on their journal entries in the previous activities. Strand(s) & Learning Expectations Ontario Catholic School Graduate Expectations CGE 2c - present information and ideas clearly and honestly and with sensitivity to others; CGE4g - examine and reflect on one’s personal values, abilities, and aspirations influencing life’s choices and opportunities; CGE7j - contribute to the common good. Strand(s): Theory and Foundation, Skills and Processes Specific Expectations TF3.01 - describe the constructs of a simple assembly or machine-level language; TF3.02 - identify similarities and differences among memory addressing techniques; SP3.03 - write low-level programs; IC1.05 - communicate the results of projects effectively both orally and in writing. Prior Knowledge & Skills Understanding of basic low-level constructs from Activity 4.2 and addressing techniques from Activity 4.3; Tracing low-level programs from Activity 4.4. Planning Notes Review all low-level constructs from Activities 4.1 to 4.4. Select questions for summative assignment using the low-level constructs from Activities 4.1 through 4.4. Teaching/Learning Strategies 1. Students collate the journal entries from the previous activities into a personal Code of Ethics. This Code of Ethics is word processed and included in their portfolio. 2. Students group to summarize the low-level commands from the previous activities and include an example for each command. Students include the summaries in their student portfolios. 3. Students write several low-level programs by using the above structures as guides. 4. Students work in pairs to discuss and write a brief report on the advantages and disadvantages of low-level programming. Unit 4 – Page 22 Computer Engineering – University/College Preparation Assessment & Evaluation of Student Achievement Students write and then submit complete programs, including documentation, for the questions in Appendix 4.5.1 – Writing Low-Level Programs. Assessment could be split 20% design, 50% content, and 30% documentation. Grouped in pairs, students design their own low-level programming question and exchange with a partner who will develop a complete solution. Accommodations Include enrichment-type assessment, such as questions 10 and 11 from Appendix 4.5.1 – Writing Low-Level Programs. Resources Print Brey, Barry B. Intel Microprocessors: Architecture, Programming and Interfacing. Prentice Hall, 2000. ISBN 0-13-995408-2 Gaonkar, Ramesh S. Microprocessor Architecture, Programming, and Applications with the 8085. Toronto: Collier Macmillan Canada Inc., 1999. ISBN 0-13-901257-5 Haskell, Richard E. Introduction to Computer Engineering: Logic Design and the 8086 Microprocessor. Prentice Hall, 1993. ISBN 0-13-489436-7 Smyth, Graham and Christine Stephenson. Computer Engineering: An Activity-Based Approach. Toronto: Holt Software Associates, 2000. ISBN 0-921598-36-X Unit 4 – Page 23 Computer Engineering – University/College Preparation Appendix 4.5.1 Writing Low-Level Programs Writing low-level programs (e.g., Intel 8085) requires communicating directly with the CPU through an assembler. Write complete programs with documentation to answer the following questions. The documentation should be written in sentence form where the commands themselves are clearly explained. As well the documentation should explain the context of the commands in the overall program. Add this work to your portfolio. 1. Add the hex number AB with 12. 2. Load the accumulator with 84 and then move that value to the B register. 3. Load registers L and H with two numbers. Subtract the contents of register L from H and store the answer in the accumulator. 4. Load the accumulator with base 10 number 55. Add 5 to this number and store it at location 4556. 5. Load the contents of two memory locations into registers C and D. Add the contents of these registers and store the answer at address 9ABC. 6. Add the hex values from 8 through E. Store the answer at memory location 8100. 7. Add the 10 numbers that are stored in 10 consecutive memory locations starting at location 3000. Store the answer at memory location 4000. 8. Move the 5 bytes that are stored at memory location 0250 through 0254 to memory location 0300 through 0304. 9. Write a program that will store two hundred and fifty-six Fs in 256 consecutive memory locations. 10. Take the numbers presently stored in memory locations 0251 to 025B and sort these values in ascending order 11. Take the numbers presently stored in memory locations 0251 to 025B and sort these values in descending order. Unit 4 – Page 24 Computer Engineering – University/College Preparation