2007 final exam - university of...

27
Department of Electrical and Computer Engineering, University of Calgary ENCM415 FINAL EXAM DECEMBER 17 th , 2007 3 HOURS PLEASE WRITE CLEARLY. USE AN HB GRADE OR SOFTER (DARKER) PENCIL! WHAT CAN’T BE READ WILL MARKED WRONG. CLOSED BOOK EXAM DO NOT BRING ANY UNAUTHORIZED MATERIAL INTO THE EXAM ROOM The student is provided with a copy of the Blackfin reference sheet as part of the exam handout. This sheet includes some 68K code examples NO CALCULATORS ARE ALLOWED IN THIS EXAM Attempt all SIX questions from SECTION A and ONLY ONE question from SECTION B. The questions have different marks and difficulty associated with them IF YOU ANSWER MORE THAN ONE QUESTION FROM SECTION B, ONLY THE FIRST QUESTION WILL BE MARKED A hint of the time to spend on each part of a question is given by the relative number of marks associated with that question part. Answer the questions in the space provided on the exam sheet. The space and marks allocated are an indication of the depth of the answer expected. If you were an engineer at work, you would be expected to answer questions by coming quickly to the point. The same is true in this exam. Be careful that you don’t unintentionally waste time writing an extremely lengthy answer giving every known detail about a concept when a short precise answer, PREFERABLE IN POINT FORM, is what is required to fill the 2 or 3 lines provided for the answer. Make sure that you PROVIDE ADEQUATE DOCUMENTATION of code and answers as marks are allocated for this documentation. Follow standard VisualDSP++ compiler / assembler conventions used in this class and recommended safe practices in your coding. Some of the concepts in this course are subjective – meaning that there may be more than one valid answer. Make sure that you support your answer. If the question says – which processor is better Blackfin or 68K in this situation, then answering Blackfin will give you no marks, even if true. Support why that answer is true, preferably with examples in point form. SECTION A ALL Q1 Q2 Q3 Q4 Q5 Q6 SECTION B ANY ONE Q7 Q8 Q9

Upload: others

Post on 24-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Department of Electrical and Computer Engineering,University of Calgary

ENCM415 FINAL EXAM DECEMBER 17th, 2007 3 HOURS

PLEASE WRITE CLEARLY. USE AN HB GRADE OR SOFTER (DARKER) PENCIL! WHAT CAN’T BE READ WILL MARKED WRONG.

CLOSED BOOK EXAMDO NOT BRING ANY UNAUTHORIZED MATERIAL

INTO THE EXAM ROOMThe student is provided with a copy of the Blackfin reference sheet as

part of the exam handout. This sheet includes some 68K code examples

NO CALCULATORS ARE ALLOWED IN THIS EXAM

Attempt all SIX questions from SECTION Aand ONLY ONE question from SECTION B.

The questions have different marks and difficulty associated with them

IF YOU ANSWER MORE THAN ONE QUESTION FROM SECTION B, ONLY THE FIRST QUESTION WILL BE MARKED

A hint of the time to spend on each part of a question is given by the relative number of marks associated with that question part. Answer the questions in the space provided on the exam sheet. The space and marks allocated are an indication of the depth of the answer expected.

If you were an engineer at work, you would be expected to answer questions by coming quickly to the point. The same is true in this exam. Be careful that you don’t unintentionally waste time writing an extremely lengthy answer giving every known detail about a concept when a short precise answer, PREFERABLE IN POINT FORM, is what is required to fill the 2 or 3 lines provided for the answer.

Make sure that you PROVIDE ADEQUATE DOCUMENTATION of code and answers as marks are allocated for this documentation. Follow standard VisualDSP++ compiler / assembler conventions used in this class and recommended safe practices in your coding.

Some of the concepts in this course are subjective – meaning that there may be more than one valid answer. Make sure that you support your answer. If the question says – which processor is better Blackfin or 68K in this situation, then answering Blackfin will give you no marks, even if true. Support why that answer is true, preferably with examples in point form.

Section AAttempt all questions

Section BAttempt any ONE question

1 Blackfin knowledge (12 marks) 7 C++ Design question (15 marks)2 Hardware interface (11 marks) 8 Motorola 68K (15 marks)3 Subroutine Development (15 marks) 9 Design own question (15 marks)4 Software Processes / Testing (10 marks)5 Blackfin Knowledge (10 marks)6 C++ ISR translation (15 marks)

MAXIMUM MARKS AVAILABLE – 90

PROBABLY MARKED OUT OF 80. MEANING 100% POSSIBLE ON ROUGHLY 6 QUESTIONS ANSWERED

SECTION AALL

Q1

Q2

Q3

Q4

Q5

Q6

SECTION BANY ONEQ7

Q8

Q9

PAGE 1 OF 14

Page 2: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

EXTRA PAGE IF NEEDED

PAGE 2 OF 14

Page 3: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

ATTEMPT ALL QUESTIONS IN SECTION A Q1 A) Explain what the acronym EBIU means for the Blackfin microcontroller 1 mark

B) The Blackfin should be described as a “microcontroller” rather than a “microprocessor”. Give two main differences between a microcontroller and a microprocessor. 2 marks

C) Provide the Blackfin assembly CODE SEGMENT that adds the value 24 to the contents of memory location 0xFF00C00. Assume memory location 0xFF00C00 contains an unsigned short int. 2 marks .section program; // Provide code here

// This is a code segment // 2 to 7 lines of code is needed

// NOT a subroutine call

D) Write the Blackfin assembly CODE SEGMENT that turns “powers up” and “turns on” the Blackfin CORE TIMER .section L1_data; 2 marks .byte2 _thisVariable; // Provide code here

// This is a code segment // 2 to 7 lines of code is needed

// NOT a subroutine call

E) In Lab. 4 Task 3, part of the hardware did not work until you had performed the following operation Download the code and start it running. Select DEBUG | HALT to stop the running code Use the menu option  REGISTER | EXTERNAL PERIPHERALS | SPI CONTROLLER to bring up the registers for the SPI

controller. Highlight the 0x5901 in the SPI_CNTRL register and change to 0x5101. Restart the code

When you changed the SPI_CNTRL register value, certain bit or bits was / were changed.i) What bit was changed and what SPI functionality (give name) was changed. 2 marks

Assume that the SPI interface is continually outputting the 16 bit value 0x00FF (before and after changing the SP_CNTRL register from 0x5901 to 0x5101)

ii) There are four key SPI signals (MOSI, MISO, SCK and SLAVE_SELECT (PF5)). The characteristics (how it looks) of ONE of those four key SPI signals is changed when the SPI_CNTRL register was changed from 0x5901 to 0x5101. Show that signal BEFORE the SPI_CNTRL register was changed and AFTER the SPI_CNTRL register was changed. Makes sure it is obvious how this signal was changed. 3 marksSIGNAL NAME IS

BEFORE SPI_CNTRL WAS CHANGED THE SIGNAL LOOKED LIKE THIS

AFTER SPI_CNTRL WAS CHANGED THE SIGNAL LOOKED LIKE THIS

There are 12 marks available on this page PAGE 3 OF 14

Page 4: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q2) We can use the Blackfin GPIO interface to control two light sensors (See figure below). Blackfin is powered up Pin PF7 is connected to the output enable line on light sensor 1. Pin PF4 is connected to the output enable line on light sensor 2. The output signals of BOTH sensors are connected to a SINGLE GPIO input pin PF6. ALL OTHER GPIO pins are to be disabled. When the GPIO interface is not activated, it is possible that the output enable lines of the light sensors will “float”

and both sensors will try to output a signal to the GPIO PF6 causing the sensor output pins to “burn out”. To avoid this happening pull-up / pull down resistors are connected to the output enable pins of the light sensors

A) Draw in the wires and pull up / pull down resistors to correctly connect the light sensors and the Blackfin to meet the design requirements described above. 5 marks

B) What does “to float” mean? 1 mark

C) What does to “burn out” mean, and what is the physical reason behind the “burn out” occurring? 2 marksUSE POINT FORM

D) Explain why your (pull-up / pull down) resistors stop the burn out occurring when the GPIO outputs are not active as output but WILL NOT stop the burn out occurring when the GPIO outputs are active and have been mis-programmed 3 marks

USE POINT FORM

There are 11 marks available on this page PAGE 4 OF 14

Page 5: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q3. Design and code a Blackfin Assembly code subroutine unsigned short int AllLab1(unsigned int whichLightSensor) which performs the following operations (question is based on Q2) AllLab1( ) sets the GPIO direction register so that the Blackfin pins can be used (as per Q2) to control the light sensors without burning out

the light sensors AllLab1( ) calls the subroutine void FixEveryThingElse(void) which correctly sets all the other Blackfin registers (except the data and

direction registers) so that the Blackfin pins can be used (as per Q2) to control the light sensors. POLAR register is set to all 0x0000 during FixEveryThingElse( )

o REPEAT The routine FixEveryThingElse ( ) does NOT change the data and direction registers Output enables the required light sensor and then returns the current state of the output pin from the light sensor described by the input

parameter whichLightSensor The design requirements are

o If light sensor 1 output = high then AllLab1(LIGHT1) returns 1 where LIGHT1 = 0x1o If light sensor 2 output = high then AllLab1(LIGHT2) returns 1 where LIGHT2 = 0x2o If light sensor 1 output = low then AllLab1(LIGHT1) returns 0 o If light sensor 2 output = low then AllLab1(LIGHT2) returns 0

To indicate that a request has been made that might burn out the light sensors, then if the subroutine is called usingAllLab1(LIGHT1 | LIGHT2) it returns 0xFFFF (an error has occurred) and NO SENSORS ARE ACTIVATED

WARNING: I know right now what design defect most people will make. Don’t make that mistake, or will your face burn with embarrassment. 15 marks – First two translation errors “free” Not answering or designing a section does not count as “a free error”

Blackfin code C code design#include “all necessary files” #include “all necessary files” .section program; .global _AllLab1__Fu;_AllLab1__Fu:

_AllLab1__Fu.END: RTS PAGE 5 OF 14

Page 6: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q4. In this class we have discussed two software life-cycles – “The waterfall lifecycle” and the “Agile life cycle” involving test driven development.

A) Draw and label pictures of these two lifecycles 3 marks

B) In your opinion, what are the major advantages / disadvantages / differences between these two software development life-cycles when used for embedded systems. Support your opinion,Not having a reasoned opinion does not get you any marks 4 marks

ANSWER IN POINT FORM

C) Design “tests” for a subroutine int CountValues(int thisValue, int thisArray[ ], int arrayLength) that counts the number of times that the value “thisValue” is present in the array thisArray[ ] of length arrayLength. It guaranteed (by other tests) that arrayLength will never be negative. Use the EmbeddedUnit syntax 3 marks CONNECT_TEST(Q4C);

LINK_TEST(Q4C, TEST_STUFF);

Page 7: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

THERE ARE 10 MARKS AVAILABLE ON THIS PAGE PAGE 6 OF 14

Page 8: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q5) Look at the code associated with the interrupt service routine in Q6. The pseudo-code (right-hand side) was designed for you by a fellow developer, who is now off-work (has the mumps). Perform a code-review. Based on Assignment 3 / Lab. 3, you will recognize that there is a mistake in the pseudo-code with the way that the memory mapped registers are accessed.

ANSWER IN POINT FORM

1) What is a “code review” and what are you looking for during a code review? 2 marks

2) What is meant by a memory mapped register and provide two different reasons for why (or how) memory mapped registers are different than data registers 3 marksANSWER IN POINT FORM

3) Explain the meaning of these terms -- “a linker error”, “a code error”, “a code defect” or “a design defect”. Which of those four terms best describes the mistake in the pseudo code in Q6. Explain 5 marks

ANSWER IN POINT FORM

THERE ARE 10 MARKS AVAILABLE WITH THIS QUESTION PAGE 7 OF 14

Page 9: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q6. This C++ code is an interrupt service routine which places values from the CYCLES / CYCLES2 counter into an array each time a PF11 interrupt occurs. When 200 values are placed in the array, the interrupts service routine uses

a semaphore to signal “main( )” that values are ready for data processing. Translate into “efficient” assembly code using the coding conventions established in this course 15 marks

BLACKFIN ASSEMBLY CODE C++ CODE // Pseudo code#include “all necessary Blackfin files” to define MMR

volatile unsigned long long int time[201];volatile unsigned int timeValuesReady = 0;volatile unsigned short int nextElement = 0;

EX_INTERRUPT_HANDLER(Q3ISR) {

ASSUME THAT THIS CODE BLOCKIS WRITTEN FOR YOU

AND THAT AT THE END OF THIS CODE BLOCK

YOU HAVE the 64 bit value timeNow_R6_R7made up of R6 (low 32-bits) and R7 (high 32-bits)

R7 contains CYCLES2 register valueR6 contains CYCLES register value

unsigned long long int timeNow_R6_R7 ; // timeNow variable is made up of two register // R7 for high 32 word and R6 for low 32 bit word // There is not need to call subroutine – read CYCLES // registers directly in this order // Place CYCLES2 register value into R7 // Place CYCLES register value into R6 Fill timeNow variable with CYCLES2 and CYCLES// Check if ISR is waiting for main( ) to process the data// if waiting (timeValueReady = 1) then exit ISR

if (timeValuesReady ! = 1) {

time[nextElement] = timeNow_R6_R7;

nextElement++;

if (nextElement == 200) {

timesValueReady = 1;

}

} // end if *pFIO_FLAG_C = 0x0800;

} 15 MARKS AVAILABLE ON THIS PAGE PAGE 8 OF 14

Page 10: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

SECTION B -- ATTEMPT NO MORE THAN 1 QUESTION

These are open-ended questions and you may be required to make some educated, engineering relevant, design decisions. Only the first answer will be marked. Any other answers will remain unmarked.

Q7. C++ DESIGN QUESTION -- CONTINUES ACROSS 2 PAGES

BURGLAR ALARM -- SEE FIGURE BELOW

When an intruder steps on the button marked 4, a connection is made between line BB and line WW.

If line WW is connected to a Blackfin GPIO output, and that output is HIGH (+5V), and button 4 is stepped on. Then a HIGH value will appear on line WW. If line BB is connected to a GPIO input pin, then the Blackfin GPIO interface can detect that line BB is high and send an alarm signal

A) On this figure, draw the necessary connections (wires) between the programmable flag PF lines and a 16 button interface so that the following will occur. Draw arrows on the lines indicating the direction of current flow (away from the PF interface for outputs, towards the PF interface for inputs) 3 marks

A designer has designed the system so that lines PF0, PF1, PF2 and PF3 are configured as inputs and connected to lines AA, BB, CC, DD (but not necessarily in that order). Lines PF4, PF5, PF6 and PF7 are configured as outputs and connected to lines WW, XX, YY, ZZ (but not necessarily in that order). Here is additional connection information.o If an intruder steps on the button labelled with an A, and a value of 0x80 is being output by the PF interface, then

the line connected to PF1 goes high.o If an intruder steps on the button labelled with an F, and a value of 0x40 is being output by the PF interface, then

the line connected to PF3 goes high.o If an intruder steps on the button labelled with a 0, and a value of 0x20 is being output by the PF interface, then

the line connected to PF0 goes high.

BLACK FIN GPIO INTERFACE

QUESTION CONTINUED ON NEXT PAGE PAGE 9 OF 14

PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7

When the intruder steps on button 7, the two wires make contact, making a connection between lines BB and ZZ

0 1 2 3AA

4 5 6 7BB

8 9 A BCC

C D E F

DD

WW XX YY ZZ

Page 11: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

QUESTION 7 CONTINUED

B) You are provided with the following functions 7 markso void ActivateInterface(void); which configures lines PF0, PF1, PF2 and PF3 as inputs and configures line PF4,

PF5, PF6 and PF7 as outputo void WritePFInterface(short int value) which produces an output from the PF interface.

Example WritePFInterface(0x30) causes PF4 and PF5 to go high, and PF6 and PF7 to go low, and has no effect on any other PF line

o short int ReadPFInterface(void) reads a value from the PF interface. If PF2 and PF3 are high and PF1 and PF0 are low, then ReadPFInterface(void) returns the value 12.

Design, write and document a C++ function void WaitForIntruder(void) that waits until the next time that either button “C” or button “B” are pressed and then exits (returns). Assume that no “de-bounce” of the button signal is necessary.

C ) The designer did not like the WaitForIntrude( ) way of waiting for an intruder. Instead the designer decides that working with PF interrupts would be a better solution. The designer develops a function void InitializePF_Registers(void) so that lines PF0, PF1, PF2 and PF3 are inputs, and lines PF4, PF5, PF6 and PF7 are outputs. This interface is needed for an intruder-location indicator (see figure above). For the first interrupt prototype test, the designer also uses the routine InitializePF_Registers( ) to configure all the necessary registers so that interrupts are to occur when lines PF0 and PF2 go from low_to_high, and interrupts occur when lines PF1 and PF3 go from high_to_low, but not for other signal transitions.

A separate function InitializeTimerRegisters(void) is used to initialize the core timer registers to cause interrupts every 0x2000 processor cycles

In the table below, show the values that must be placed into the registers during the function InitializePF_Registers( ) for the first interrupt prototype test. To discourage guessing, marks are given for correct answers and deducted for incorrect answers. No marks will be deducted for any answer left blank. 5 marks

IMASK FIO_FLAG_S FIO_DIR

SIC_IMASK FIO_EDGE FIO_POLAR

ILAT FIO_BOTH TCOUNT

TPERIOD TSCALE FIO_MASKA_D

FIO_FLAG_D FIO_INEN PF_STATUS_D

THERE ARE 15 MARKS AVAILABLE WITH THIS QUESTION PAGE 10 OF 14

Page 12: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in
Page 13: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q8. MOTOROLA QUESTION: This was a 68K final exam question in ENCM415 in 1999To make this question a little easier to answer, assume the following things Assume that you have a processor that behaves exactly like a Blackfin processor except that you have to program it

using Motorola assembly language syntax and coding conventions (e.g. NOT R1 = R2 but MOVE.L D2, D1) Assume that this “Motorola Blackfin” has 8-bit GPIO registers. This matches the behaviour of the Motorola

PI/T interface which works like a combination of the Blackfin GPIO registers and general purpose timers

We have discussed the concept of examining a bit in a device register using WAITS, POLLING and INTERRUPTS . In this question you are going to demonstrate your knowledge of the differences and relative advantages between waiting and polling for a bit to be ready.

Setting the scene. The Motorola GPIO interface has been initialized and is ready for use with all pins ready for input. Assume that you are provided (you don’t need to write) with a subroutine char ReadGPIO(void) which returns a value from the GPIO pins. Inside the routine ReadGPIO() the pin voltages are automatically reset to zero (cleared) after the value from the GPIO pins has been read. The subroutine void PF7Stuff(void) must be activated (called) when PF7 becomes set. The subroutine void PF0Stuff(void) must be activated (called) when PF0 becomes set.

A) Using the routines described above, write a “C-code” subroutine Wait( ) that demonstrates “waiting” for pins 0 and 7 to become set before calling the necessary routines Pin0Stuff() and Pin7Stuff(). Now translate the “C” code for Wait( ) into 68K assembly code

4 marks

B) Using the routines described above write the “C-code” subroutine Poll( ) that demonstrates “polling” for pins 0 and 7 to become set before calling the necessary routines PF7Stuff() and Pin0Stuff(). Now translate that code into 68K-assembly code. Explain how the “C” differs from the Waiting Code you wrote in part A)

6 marks

CONTINUED ON NEXT PAGE PAGE 11 of 14

Page 14: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

C) // Motorola “C” syntax for interrupt service routines does not use the same syntax (EX_INTERRUPT_HANDLER) as does the Blackfin. Instead you must place the words #pragma interrupt in front of a void function (see below). This tells the “C” compiler that this function must be treated as “interrupt service routine” (exiting with RTE) rather than a “subroutine” (exiting with RTS)

// Another interesting thing about the Motorola processor is that you DON’T have to save the ASTAT condition code register to the stack and later recover ASTAT register from the stack. The Motorola hardware AUTOMATICALLY saves the ASTAT register for the programmer BEFORE calling the interrupt service routine and AUTOMATICALLY recovers the ASTS register for the programmer AFTER exiting the interrupt service routine

// The Motorola register A6 acts like the frame pointer// The Motorola register A7 acts like a stack pointer. Since A7 is always used as a stack pointer, the Motorola assembly language syntax allows you to use either SP or A7 – your choice. Most people use SP// Just as the Blackfin, the 68K has volatile and non-volatile registers. However that factis not important in this question

5 marks

Translate the following “C/C++ code” into 68K assembly language code.

Assume that the interrupt signal does not need acknowledging. (Actually, it takes about 25 lines of code to acknowledge the 68K interrupt – so it is easier to pretend (during an exam) that it is not needed

.section data ; You don’t need ; in Motorola syntax to show the end of an assembly code line ; You are only allowed to put 1 line of assembly code on each line

; Fortunately, any ; you do write get treated as “start of comment statements”

; meaning writing ; acts like writing the Blackfin // ; so it does not matter whether you put them in or not

// long int value.export Value ; the keyword “export” acts like “global”

Value DS.L 1 ; Define space (DS) in memory for 1 long int variable

// short int clockcount;

#pragma interrupt// void ClockSignal_ISR(void) {

// clockcount++;

// }

THERE ARE 15 MARKS AVAILABLE FOR THIS QUESTION PAGE 12 OF 14

Page 15: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

Q9) -- Don’t you just hate it when you have done research beyond the course content because that area interested you you have heavily reviewed one area you thought the instructor kept on deliberately emphasizing and then the examiner does not ask any questions in that area! As promised, here is a chance to overcome that problem and show your true knowledge of interfacing and embedded systems.

Make up a question related to this course AND answer it. (15 marks)

TO RECEIVE FULL MARKS the question should satisfy the following criteria

Be at a difficulty level appropriate for a final exam question in the 3rd year of an Electrical and Computer Engineering program. Quick test -- Would it be suitable for next year’s final?

The question should NOT be equivalent to any exam question already asked in this course or the current exam. Questions and answers that are a simple regurgitation of a concept handled in class or laboratory will receive a D

grade (3 -- 4 marks or less). Questions and answers that give a new insight into a concept handled in class or laboratory will receive a C or a B grade (5 – 10 marks). Questions that, under different circumstances, would present A CHALLENGE FOR YOU to answer in either Section A or Section B of a final exam will receive B or A grade (10 and up), if answered correctly. A good mark on this question would be 11 to 13 marks out of 15 (B+ / A-)

DO NOT WRITE QUESTIONS INVOLVING A LOT OF CODE TRANSLATION. Such questions and answer will be considered similar to questions Q1 to Q8, and therefore WILL NOT RECEIVE MANY MARKS.

Students who have spend time ahead of the exam planning questions that lead to answers that are clear and concise are more likely to receive higher marks. This means no long-winded answers that look like they have been thought up on the spur of the moment. PLEASE BRING THE QUESTIONS AND ANSWERS INTO THE EXAM IN YOUR HEAD AS NO ADDITIONAL MATERIALS ARE ALLOWED IN THIS EXAM!

Marking exams is normally as much fun as watching paint dry. Questions that entertain and give the impression – “that’s clever and well thought out” – or leave the instructor wanting to boast to other instructors about what you suggested -- are more likely to receive higher marks.

DO NOT SPEND SO MUCH TIME ON THIS QUESTION THAT YOU DO NOT HAVE TIME TO COMPLETE THE OTHER QUESTIONS

PAGE 13 OF 14

Page 16: 2007 Final exam - University of Calgarypeople.ucalgary.ca/~smithmr/2013webs/encm511_13/Assignment…  · Web viewBe at a difficulty level appropriate for a final exam question in

PAGE 13 OF 14