Course Profile   Computer and Information Science, Grade 11, University/College Preparation, Catholic and Public

 

Unit 3:  Problem Solving with Procedures and Functions

Time:  18 hours

 

Activity 1 | Activity 2 | Activity 3 | Activity 4 | Activity 5 | Activity 6

 

Unit Description

This unit focuses on program modularity and career exploration. Students write programs using existing sub-programs and then progress to writing programs including their own sub-programs. They also explore careers in computer studies and develop skills in program modularity (e.g., a program to encrypt/decrypt a passage of text using substitution encoding). Students complete a reflection on work and on the Laborem Exercens encyclical.

Unit Synopsis Chart

Activity

Time

Expectations

Assessment

Tasks

1.   The Software Development Process

1 hour

TFV.02, TF1.03

CGE7a

K

In-class discussion

Homework

2.   Investigating Math and Text Subroutines

3 hours

TF2.07, SP2.05

CGE2b

K; I

Lab exercises

Quiz

3.   Defining Our Own Subroutines

2 hours

SP2.06, SP1.09, TF2.08, TF2.09

K; I; A

Lab exercises

Homework

Quiz

4.   Exploring Careers in Computing

3 hours

ICV.03, IC1.06, IC2.01, IC2.02, IC2.03; CGE5b

K; I

Research

Presentation

5.   Programming with Subroutines

7 hours

SPV.01, SP2.06

CGE2b, 5a

I; C; A

Assignment

Test

6.   Reflecting on Work

2 hours

CGE1g, CGE2b, CGE4g, CGE5b, CGE5d

K;I; C; A

Research

In-class discussion

Reflection paper

 

Activity 1:  The Software Development Process

Time:  60 minutes

Description

Students are introduced to the software development process. They learn the different stages of the process and the important considerations at each stage. Students compare the software development process with other development processes in other industries and other educational areas. They look at how development processes are applied in large-scale projects.

Strand(s) & Learning Expectations

Ontario Catholic School Graduate Expectations

CGE7a - acts morally and legally as a person formed in Catholic tradition.

Strand(s):  Theory and Foundation

Overall Expectations

TFV.02 - identify the stages in the software development process (problem definition, analysis, design, implementation, testing, and maintenance).

Specific Expectations

TF1.03 - describe the steps in the software development process and their importance in the development of large programs or applications.

Prior Knowledge & Skills

Students:

·         have written several programs;

·         have used several large and complex application programs (such as a word processor or spreadsheet).

Planning Notes

·         Select from the following possible preparations for this activity:

·         Gather examples (possibly from videos, articles, or web sites) of development processes in other industries (e.g., auto industry and food industry).

·         Consult with broad-base technology teachers about development processes used in their courses and relevant industries.

·         Inventory the programs or applications used by students and staff in the school.

·         Gather examples of the software development process in the creation/production of large programs.

·         Contact a computer professional (programmer, analyst, or project manager) at a local company and inquire about the use of the software development process within the company.

·         Prepare a handout, overhead presentation, multimedia presentation, or web page on the software development process.

·         Prepare in-class task to help students understand different steps in the software development process.

·         Prepare a homework assignment to help students understand the software development process.

Teaching/Learning Strategies

·         Introduce the concept of a development process and present examples of how products are created.

·         Introduce the concept of the software development process and stages of this process.

·         Present a development process from another industry and compare it to the software development process.

·         Discuss how needs of various industries shape their design processes.

·         Students participate in a class discussion about the development process.

·         Facilitate discussion on students’ programming experience and how they have carried out programming tasks.

·         Query students about the programs they have used at school, at home, or at work.

·         Facilitate discussion regarding the creation of large programs or applications (e.g., word processor, spreadsheet, photo-editing tools, web browser, and operating system).

·         Present examples of the use of the software development process in the software industry.

·         Discuss the ethical implications of the design process.

Assessment & Evaluation of Student Achievement

The teacher and students gather assessment information based on specific expectations outlined for this activity, including:

·         a formative assessment of the assigned work in the form of roving conferences as students work on in-class task (a checklist, based on Appendix 3.1.1, could be used).

Accommodations

The following are ways in which the activity can be adapted to accommodate exceptional students’ needs:

·         outline on overhead and/or print a list of programs used and the software development process to assist in focus on the task and discussion.

Resources

Website Development Process – http://www.stratfordinternet.com/process.htm

Product Development Process – http://www.rt66.com/~korteng/plan.htm

Angotti Product Development Page – http://www.angotti.com/#4

Business Technology Associates, Software Development Cycle – http://www.biztechwiz.com/btasdlc.html

The Product Development Cycle – http://www.xed.co.uk/design.htm

 

Activity 2:  Investigating Math and Text Subroutines

Time:  180 minutes

Description

Students explore pre-defined mathematical and text subroutines made available by their programming software. Through a series of lab exercises, students practise using these pre-defined subroutines and reflect on how they could be used to help solve a larger programming problem.

Strand(s) & Learning Expectations

Ontario Catholic School Graduate Expectations

CGE2b - reads, understands, and uses written materials effectively.

Strand(s):  Theory and Foundation, Skills and Processes

Specific Expectations

TF2.07 - describe the purpose of functions and procedures, and how they are expressed in a
programming language;

SP2.05 - manipulate numbers and text using built-in subroutines.

Prior Knowledge & Skills

Students:

·         are aware of mathematical functions (round, sqrt, sin, cos, tan, etc.);

·         are aware of spreadsheet applications;

·         write programs that accept input from users, process data using formulas, and display results;

·         are able to debug programs containing syntax and logic errors;

·         identify string as a variable data type;

·         recognize the ASCII table of values representing keyboard characters.

Planning Notes

·         Make connections to problem-solving strategies previously introduced.

·         Provide on-line and/or print resources for shared use by students.

·         Gather material about mathematical functions and built-in functions in items such as calculators, spreadsheets, and word processors for comparison.

Teaching/Learning Strategies

·         Introduce/review the “divide and conquer” problem-solving strategy; brainstorm large problems currently facing students (e.g., ISU completion) and how this task could be divided into smaller, more manageable sub-problems.

·         Facilitate discussion on how this strategy can be applied to programming (e.g., how it may help to tackle the daunting task of creating a major programming solution such as a spreadsheet application).

·         Present examples (in the form of handouts, overheads, or web-based presentation) of pre-defined subroutines provided in the programming language used.

·         Emphasize the important task of the programmer to research built-in tools available to them.

·         Students use on-line help and/or print resources to find and investigate usefulness of pre-defined mathematical subroutines, e.g., a pre-defined subroutine written to perform any/all of these tasks:

a)   round any value to a specified number of decimal places;

b)   find the square root of a value;

c)   generate a random integer between any lower/upper parameters specified;

d)   calculate payment for a bank loan (given the interest rate, term of loan, and principal amount).

e)   count the length of a string;

f)    produce a string of repeating characters (e.g., ten asterisks);

g)   change the case of characters in a string (lowercase/uppercase/proper);

h)   find the position of a specified character within a string;

i)    return a substring of a specified length from the beginning, end, or specified starting position of a longer string;

j)    return the position of a specified substring from within a longer string.

·         Demonstrate built-in subroutines of type function and subroutines of type procedure; ask students to identify differences between the two types of subroutines,

e.g.,

sqr(variable)

vs.

Circle (x, y), radius

 

length(variable)

 

Line (x, y)

·         Solicit responses from students and verify that functions return a value vs. procedures, which perform a series of steps but do not return a value. Demonstrate the use of variable tracking or desk tracing.

·         Students record new tools and strategies in a journal or notes.

·         Students complete as many lab exercises as possible in time allotted. (See Appendix 3.2.1.)

Assessment & Evaluation of Student Achievement

The teacher and students gather assessment information based on specific expectations outlined for this activity, including:

·         a formative assessment of the assigned work in the form of roving conferences;

·         a peer and self-evaluation of the students’ work, using a checklist of criteria created by the teacher and/or students (Appendix 3.2.2);

·         a summative assessment in the form of a quiz.

Accommodations

The following are ways in which the activity can be adapted to accommodate exceptional students’ needs:

·         provide print copies of subroutines and specific vocabulary new to students;

·         draw/chart investigation findings to assist students in multi-faceted task;

·         selectively pair/group students to assist with recording results (i.e., classifying and investigating);

·         provide “scaffolded” programs (i.e., program listings with subroutine headings, loop structures, etc. already included) to help struggling students;

·         use peer/mentor support for recording results and journal entries.

Resources

Installed help files and/or manuals for the programming language in use.

Turing programming language information and resources
http://www.holtsoft.com
http://rs6000.georgianc.on.ca/~rodrigo/turing/

Visual Basic language information and resources
http://www.dcs.napier.ac.uk/hci/VB50/home.html
http://www.vbexplorer.com/

Pascal programming language information and resources
http://www8.silversand.net/techdoc/pascal/paslist.htm

Qbasic programming language information and resources
http://www.astentech.com/tutorials/QBasic.html

 

Activity 3:  Defining Our Own Subroutines

Time:  120 minutes

Description

This activity builds on students’ knowledge of variables and subroutines. Through a series of discussions, demonstrations, and lab exercises, students learn to make the distinction between local and global variables as they relate to variable parameters in programmer-defined subroutines.

Strand(s) and Learning Expectations

Strand(s):  Theory and Foundation

Specific Expectations

TF2.07 - describe the purpose of functions and procedures, and how they are expressed in a programming language;

TF2.08 - describe parameter passing and scope;

TF2.09 - identify differences between local and global variables.

Planning Notes

·         Gather samples of built-in subroutines for identification of functions vs. procedures and for identification of parameters.

·         Provide and demonstrate syntax required for writing programmer-defined subroutines in the language of choice.

·         Provide on-line and/or print resources for shared use by students.

·         Provide examples that help students understand variable scope and the passing of parameters as information to parts of the program. Students often have difficulty with variable scope and parameter passing.

·         Review variable naming conventions and/or adopt conventions that identify the scope of a variable.

Prior Knowledge & Skills

Students:

·         can demonstrate appropriate use of built-in subroutines;

·         are able to debug programs containing syntax and logic errors.

Teaching/Learning Strategies

·         Discuss with students the concept that a subroutine (function or procedure) often needs data in order to complete its task. Data is given (passed) to a procedure by enclosing it in parentheses in the procedure call.

e.g.,

in order for the sqrt function to produce the desired result, a number (parameter) must first be passed to the sqr subroutine:      sqrt(36)

 

and a value is returned:

6

·         Assign students the task of identifying the required parameters for a series of selected functions and procedures, making connections to math and text subroutines explored in Activities 2 and 3.

·         Discuss the concept of variable scope and the need for parameters to pass information from one component to another.

·         Facilitate a brainstorming session to write an algorithm for a modular program that reads (input) a customer’s bank balance then, if the balance is less than zero, prints an “Overdraft” notice, or else interest is calculated (based on current rate) and added to the original balance.

·         Promote use of subroutines to divide tasks, identifying required parameters for each subroutine.

·         Introduce the concept that the parameters for balance and interest are considered variable parameters because their values are changed by the Calculate subroutine, while the rate parameter is not a variable parameter because its value is not changed by the Calculate subroutine.

·         Demonstrate the syntax for defining a custom subroutine in your programming language.

·         Student record new tools and strategies in a journal or notes.

·         Student complete as many lab exercises as possible in time allotted. (See Appendices 3.3.1, 3.3.2, and 3.3.3)

Assessment & Evaluation of Student Achievement

The teacher and students gather assessment information based on specific expectations outlined for this activity, including:

·         a formative assessment of the assigned work in the form of roving conferences;

·         a formative assessment of the journal/notebook (checking for inclusion of tools/strategies presented);

·         a summative assessment of the student’s ability to describe parameter passing and scope and identify differences between local and global variables. Students break down computer tasks into specific functions and define the modules, parameters, and variables used.

Accommodations

The following are ways in which the activity can be adapted to accommodate the exceptional students’ needs:

·         support brainstorming activity through use of web or mapping chart with print copy;

·         provide support through one-to-one teacher-directed conferencing to ensure understanding;

·         provide “scaffolded” programs (program listings with subroutine headings, loop structures, etc., already included) to help struggling students.

Resources

Installed help files and/or manuals for the programming language in use.

See Resources in Activity 2.

 

Activity 4:  Exploring Careers in Computing

Time:  180 minutes

Description

Students investigate career paths leading to information systems and computer science careers. They research the educational requirements of a chosen career and look into the availability of programs in colleges, universities, and private institutions that will help them meet those requirements. Students also investigate apprenticeship and co-op programs.

Strand(s) & Learning Expectations

Ontario Catholic School Graduate Expectations

CGE5b - thinks critically about the meaning and purpose of work.

Strand(s):  Impact and Consequences

Overall Expectations

ICV.03 - identify information systems and computer science career paths, and their educational requirements.

Specific Expectations

IC1.06 - explain the importance to identifying career paths of keeping up to date on current articles and thought on computer technology;

IC2.01 - identify postsecondary educational opportunities leading to careers in information systems and computer science, and report on their entry requirements;

IC2.02 - identify which careers require computer expertise, using local or national media;

IC2.03 - identify opportunities for apprenticeship training and co-op programs.

Planning Notes

·         Obtain a list of different computer-related careers.

·         Gather articles from newspapers, magazines, and the Web that relate to computer technology and computer-related careers (with some emphasis on trends).

·         Research the different programs available in community colleges, universities, and private institutions (with emphasis on the entry requirements to these programs).

·         Research apprenticeship training opportunities and co-op programs for computer-related careers.

·         Gather material, with assistance from the Guidance/Student Services Department, regarding different career paths leading to careers in information systems and computer science.

·         Contact the Guidance/Student Services Department to make a presentation to the class regarding computer-related programs in community colleges, universities, and private institutions.

·         Contact the Co-op Department to make a presentation to the class regarding apprenticeship opportunities and co-op programs.

Prior Knowledge & Skills

Students:

·         are aware of some computer-related careers;

·         are able to use a web browser;

·         are aware of the services provided by the Guidance/Student Services Department;

·         are aware of the services provided by the Co-op Department.

Teaching/Learning Strategies

·         Present material (from books, newspapers, magazines, web pages, or short video) on computer-related careers.

·         Students investigate current trends in computer-related careers through the use of print material (books, newspaper, magazines) and/or online resources.

·         Facilitate discussion of the ethical considerations of computer careers (e.g., how they may be asked to develop technology that effects privacy or copyright).

·         Facilitate discussion on the importance of having computer skills (e.g., ask students about the skills that their parents are required to have at their workplace).

·         The teacher discusses various strategies for keeping up-to-date on current computer technology.

·         Introduce computer-related programs in community colleges, universities, and private institutions (possibly with the help of the Guidance/Student Services representative).

·         Students compare the entry requirements to computer-related programs in community colleges, universities, and private institutions.

·         Discuss computer-related apprenticeship opportunities and co-op programs (possibly with the help of the Co-op Department).

·         Students distinguish between and compare apprenticeship and co-op programs.

·         Students complete an assessment task (possibly one from the list in Assessment & Evaluation of Student Achievement) demonstrating their knowledge of the material presented in this section. (See Appendix 3.4.1.)

Assessment & Evaluation of Student Achievement

The teacher and students gather assessment information based on specific expectations outlined for this activity including:

·         a summative assessment of the assigned work in the form of one the following:

·         bulletin board project that shows trends in computer-related careers;

·         a radio advertisement from a fictional company seeking candidates for a computer-related job;

·         a print advertisement on a possible future computer-related career;

·         a private detective’s report regarding an investigation into entry requirements to computer-related programs at a chosen college, university, or private institution;

·         a web page that has links to the different colleges, universities, and private institutions and their computer-related programs.

See Appendix 3.4.2.

Accommodations

The following are ways in which the activity can be adapted to accommodate the student’s needs:

·         use mapping and/or flowcharts to assist students in recording information;

·         conference with different individuals/groups to ensure “on-task” focus re: data collection;

·         provide outline in print for entry of information on comparisons (i.e., various school programs);

·         group students who are new to the country with other students so they are not held back by language or lack of cultural experiences.

Resources

Careers and Career Planning

Human Resources Development Canada – http://www.hrdc-drhc.gc.ca/common/home.shtml

Career Planning from Yahoo! Canada – http://ca.yahoo.com/Regional/Countries/Canada/Education/Career_and_Vocational/Career_Planning/

Monster.ca – http://www.monster.ca

Workopolis (Globe and Mail Careers) – http://globecareers.workopolis.com/

Government of Ontario Training and Jobs website – http://www.edu.gov.on.ca/eng/training/training.html

Sympatico.ca’s Careers page – http://www1.sympatico.ca/Contents/Careers/

htc Canada’s HiTech Career Journal – http://www.kaplancareers.com/htc/

Computer Technology News

Wired News – http://www.wired.com

ZDNet – http://www.zdnet.com

TechWeb – http://www.techweb.com

Canada Computes – http://www.canadacomputes.com

cnet – http://news.cnet.com

Postsecondary education

Canadian Universities and Colleges from Yahoo! Canada – http://ca.yahoo.com/Regional/Countries/Canada/Education/Higher_Education/Colleges_and_Universities

Government of Ontario Post-secondary website – http://www.edu.gov.on.ca/eng/general/postsec/postsec.html

Local Chamber of Commerce

 

Activity 5:  Programming with Subroutines

Time:  420 minutes

Description

Students demonstrate an understanding of predefined and user-defined subroutines. They work in small groups to accomplish a programming task that requires the use of several user-defined subroutines. Students document their use of the software development process to solve their problem.

Strand(s) & Learning Expectations

Ontario Catholic School Graduate Expectations

CGE2b - reads, understands, and uses written materials effectively;

CGE5a - works effectively as an interdependent team member.

Strand(s):  Skills and Processes

Overall Expectations

SPV.01 - develop effective programs by following the steps in the software design process.

Specific Expectations

SP2.06 - write subroutines that pass parameters and use local and global variables.

Planning Notes

·         Prepare a programming problem for students to solve. This problem must have a solution that requires the definition of several subroutines. (See Appendix 3.5.1 for a sample problem.)

·         Prepare a test to evaluate students’ understanding of the concepts presented during this unit.

·         Review Programming with Subroutine notes (Appendix 3.5.2).

Prior Knowledge & Skills

Students:

·         have used predefined subroutines;

·         have created several subroutines.

Teaching/Learning Strategies

·         Review the software development process.

·         Divide the class into groups of two or three students.

·         Remind students of the importance of respect for all group members and responsibility of all group members.

·         Facilitate discussion about the programming problem (problem definition stage).

·         Lead students in analysing the problem (analysis stage).

·         Students participate in small-group discussion to design possible solutions to the programming problem (design stage).

·         Students examine and assess each of the possible solutions (design stage).

·         Students select the best solution (design stage).

·         Students describe and define the subroutines required to solve the problem (design stage).

·         Students participate in a group decision-making process to assign the creation of subroutines to different group members (implementation stage).

·         Students create, program, and document a subroutine (implementation stage).

·         Students test the subroutine (testing stage).

·         Students combine their subroutine with the other group members’ subroutines to create a solution to the problem (implementation stage).

·         Students participate in the documentation of the solution (implementation stage).

·         Assess the students’ progress regularly as they create a solution to the problem.

·         Students test the group’s solution (testing stage).

·         Students assess and analyse the group’s solution (maintenance stage).

·         Administer a test to assess students’ understanding of concepts presented in this unit.

Assessment & Evaluation of Student Achievement

The teacher and students gather assessment information based on specific expectations outlined for this activity, including:

·         a summative assessment of the assigned work in the form of a group assignment to combine and consolidate the concepts presented during this unit (see Appendix 3.5.3 for an example of a rubric that might be used);

·         a summative assessment of the assigned work in the form of a test to assess students’ understanding of the concepts presented during this unit.

Accommodations

The following are ways in which the activity can be adapted to accommodate the student’s needs:

·         select groups to allow for both remediation and enrichment;

·         encourage sharing of individual data;

·         provide parts of subroutines or parts of code to aid struggling groups (see Appendix 3.5.2).

Resources

Installed help files and/or manuals for the programming language in use.

See Resources in Activity 2.

 

Activity 6:  Reflecting on Work

Time:  120 minutes

Description

Students think critically about the meaning and purpose of work. They explore the Catholic Church’s view on work and its importance to human life or those held by other groups in our society. Students examine and reflect on their personal attitude towards work. They reflect on the relationship between technology and work and how both can be used for the greater good.

Strand(s) & Learning Expectations

Ontario Catholic School Graduate Expectations

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;

CGE2b - reads, understands, and uses written materials effectively;

CGE4g - examines and reflects on one’s personal values, abilities, and aspirations influencing life’s choices and opportunities;

CGE5b - thinks critically about the meaning and purpose of work;

CGE5d - finds meaning, dignity, fulfillment, and vocation in work which contributes to the
common good.

Planning Notes

·         Read the Catholic Church’s encyclical on the dignity of work – Laborem Exercens
(see Appendix 3.6.1). This is available in print and on various websites.

·         Reflect on what is stated in the encyclical.

·         Select parts of the encyclical to present to students (see Appendix 3.6.1).

·         Prepare a handout that can be used during an in-class discussion (see Appendix 3.6.2).

·         Prepare an assignment to help students further reflect on the contents of the encyclical
(see Appendix 3.6.2).

Prior Knowledge & Skills

Students:

·         are aware of the increasing use of computer technology in the workplace;

·         are aware that computer technology may displace workers.

Teaching/Learning Strategies

·         Facilitate discussion on the meaning of work and students’ personal attitudes towards work.

·         Facilitate discussion on students’ ambitions and aspirations.

·         Students participate in a small group discussion regarding the meaning of work.

·         Introduce the Catholic Church’s view of work and present selected text from the Laborem Exercens encyclical.

·         Solicit students’ reaction to the encyclical.

·         Students explore and reflect on the Catholic Church’s view on the relationship of technology and work in a written reflection paper (see Appendix 3.6.2).

Assessment & Evaluation of Student Achievement

The teacher and students gather assessment information based on specific expectations outlined for this activity, including:

·         a summative assessment of the assigned work in the form of a reflection paper based on the contents of the encyclical presented during this unit or other positions on this issue that have been considered.

Accommodations

The following are ways in which the activity can be adapted to accommodate exceptional students’ needs:

·         clarify language through print form and simplify meaning of terms for understanding of Church views;

·         allow for sharing of reflection as appropriate to support thoughts and/or emotional response of individual students;

·         adjust length and/or scope of reflection paper to enrich or remediate as appropriate.

Resources

Laborem Exercens (full text – from a Vatican website) – http://www.vatican.va/holy_father/john_paul_ii/encyclicals/documents/hf_jp-ii_enc_14091981_laborem-exercens_en.html

Laborem Exercens (full text – alternate site) - http://www.osjspm.org/cst/le.htm

Laborem Exercens (in everyday language) - http://www.osjspm.org/cst/le_el.htm

Catholic Social Teaching: John Paul II, Laborem Exercens – http://catholiceducation.org/articles/religion/re0286.html

 


Appendix 3.1.1

The Software Development Process – Assignment Rubric

 

Criteria

Level 1

(50 – 59%)

Level 2

(60 – 60%)

Level 3

(70 – 79%)

Level 4

(80 – 100%)

Identify the stages of the development process

TFV.02

- demonstrates limited knowledge of the stages in the software development process

- demonstrates some knowledge of the stages in the software development process

- demonstrates considerable knowledge of the stages in the software development process

- demonstrates thorough knowledge of the stages in the software development process

Describe the steps in the development process

TF1.03

- demonstrates limited ability to describe the steps in the development process

- demonstrates some ability to describe the steps in the development process

- demonstrates considerable ability to describe the steps in the development process

- demonstrates a high level of ability to describe the steps in the development process

Explain the importance of the steps in the development process in the development of large programs

TF1.03

- uses thinking skills with limited effectiveness to explain the importance of the steps in the development process in the development of large programs

- uses thinking skills with moderate effectiveness to explain the importance of the steps in the development process in the development of large programs

- uses thinking skills with considerable effectiveness to explain the importance of the steps in the development process in the development of large programs

- uses thinking skills with a high degree of effectiveness to explain the importance of the steps in the development process in the development of large programs

Note: A student whose achievement is below level 1 (50%) has not met the expectations for this assignment or activity.

 


Appendix 3.2.1

Investigating Math and Text Subroutines – Sample Lab Exercises

 

Utilize pre-defined mathematical subroutines available in your programming environment to solve the following problems:

1.   Input any real number and output:

a)   the number rounded to a whole number;

b)   its square root.

2.   Input any two numbers and output the positive difference between them.

3.   Create a program that calculates and outputs the trigonometric functions sine, cosine, and tangent of any angle input by the user (expressed in radians). The result is rounded to a whole number.

Note:          to convert degrees to radians: radians = (pi / 180) * degrees         (pi = 3.14)

Challenge: output results in degrees (degrees = radians * (180 / pi) )

4.   Create a Payment Calculator program to determine monthly payments for a car loan. Input the current interest rate, term of the loan (expressed in years), and principal amount.

5.   Input two words and store each in memory as a separate variable. Determine the length of each of the words and output the longer of the two.

6.   Input two words and store each in memory as a separate variable. Determine the ASCII value of the first letter of each word. Output the word that begins with the highest ASCII value first, followed by the word that begins with the lower ASCII value.

E.g.,

Sample Input:

berry

 

 

apple

 

Sample Output:

apple comes before berry

Test your program again, inputting the following data: apple                Berry

What were the results? Why do you think it is important to make connections to ASCII table values?

7.   Input a string. Convert to all CAPS (uppercase) and output.

8.   Input a word. Isolate the first letter and output it as a capital. Concatenate (join) with the remainder of the word.

9.   Ask the user to input his or her name. Output the letters in the name in reverse order (e.g., Lucy becomes ycuL).

10.  Input a sentence. Count the number of spaces in order to determine the number of words in the sentence. Output the result. (Was your count accurate?)

11.  Input a word. Output the first vowel found and its position within the string.

E.g.,

Sample Input:

VISUAL

 

Sample Output:

A(n) i was found at position 2.

 


Appendix 3.2.2

Subroutine Usage Checklist

 

1.   Subroutines are selected for appropriate tasks.

Yes

No

2.   Correct information is passed to subroutines.

Yes

No

3.   Information is submitted to subroutines in the correct sequence.

Yes

No

4.   Correct variables are selected in the calling program.

Yes

No

5.   Information from subroutines is used correctly.

Yes

No

 

Appendix 3.3.1

Defining Our Own Subroutines – Sample Lab Exercises

 

Write a programmer-defined subroutine for the following:

1.   Function CelsiusToFahrenheit (degrees as real) returns real

return ((degrees * (9 / 5)) + 32)

end Function

2.   Function FahrenheitToCelsius (degrees as real) returns real

return ((degrees - 32) * (5 / 9))

endFunction

3.   Function MilesToKms (miles as real) returns real

return (miles * 1.6)

end Function

4.   Function KilobytesToBits (k as real) returns real

return(k * 1024 * 8)

end Function

 

Create a bank balance program, based on the algorithm created earlier in this activity, defining programmer-defined subroutines as appropriate.

 

Appendix 3.3.2

Creating Subroutines – Sample Assignment

 

A program is required to calculate the average of four mid-term marks for a secondary school student. The average should include decimals; the four marks are integers. Describe a subroutine that could be used to calculate the average. Identify the parameters, subroutine task, and return value. List local and global variables and indicate how they would match up between the subroutine and main program.

 


Appendix 3.3.3

Creating Subroutines – Sample Rubric

 

Criteria

Level 1

(50 – 59%)

Level 2

(60 – 60%)

Level 3

(70 – 79%)

Level 4

(80 – 100%)

Describe the purpose of functions and procedures, and how they are expressed in a programming language

TF2.07

- demonstrates limited ability to describe the purpose of the functions and procedures

- demonstrates some ability to describe the purpose of the functions and procedures

- demonstrates considerable ability to describe the purpose of the functions and procedures

- demonstrates thorough ability to describe the purpose of the functions and procedures

Describe the purpose of functions and procedures, and how they are expressed in a programming language

TF2.07

- demonstrates limited ability to express the subroutine in a programming language

- demonstrates some ability to express the subroutine in a programming language

- demonstrates considerable ability to express the subroutine in a programming language

- demonstrates thorough ability to express the subroutine in a programming language

Describe parameter passing and scope and local and global variables.

TF2.08, TF2.09

- demonstrates limited knowledge of use of parameters

- demonstrates some knowledge of use of parameters

- demonstrates considerable knowledge of use of parameters

- demonstrates thorough knowledge of use of parameters

Note: A student whose achievement is below level 1 (50%) has not met the expectations for this assignment or activity.

 


Appendix 3.4.1

Exploring Careers in Computing – Sample Assignments

 

Radio Ad I

Imagine that you are a member of an advertisement agency. Your agency has been asked to create a
30-second radio ad for a fictional company. The company is advertising openings in their Information Technology department. Mention some of the following points in your ad:

·         the job title associated with the job opening;

·         the duties associated with the job opening;

·         the minimum educational requirements for the job.

Choose an appropriate name for the company and suitable background music for the ad.

 

Radio Ad II

Imagine that you are a member of an advertisement agency. Your agency has been asked to create a
30-second radio ad for a college, university, or private institution. The institution is advertising its programs (including apprenticeship and co-op programs). Mention some of the following points in your ad:

·         features of the institution’s program;

·         the program’s entry requirements;

·         the skills that the graduate will possess at program completion.

Choose suitable background music for the ad.

 

Private Detective’s Report

Imagine that you are a private detective. You have just been chosen to investigate the entry requirements for a computer-related program at a college, university, or private institution. Choose a Canadian or International institution to investigate. Once your research is complete, create a report that is suitable for posting on a bulletin board. The report should mention the following:

·         the name of the institution;

·         the location of the institution;

·         the name of the computer-related program;

·         the entry requirements;

·         the cost of the program.

 

Magazine or Newspaper Ad

Imagine that you are a member of an advertisement agency. Your agency has been asked to create a one-page (8.5" x 11") ad for a fictional company. The company is advertising openings in their Information Technology department. Mention some of the following points in your ad:

·         the job title associated with the job opening;

·         the duties associated with the job opening;

·         the minimum educational requirements for the job.

 


Appendix 3.4.2

Exploring Careers in Computing – Formative Evaluation Rubric

 

Criteria

Level 1

(50 – 59%)

Level 2

(60 – 60%)

Level 3

(70 – 79%)

Level 4

(80 – 100%)

Identify computer-related careers and their educational requirements

ICV.03, IC2.02

- demonstrates limited knowledge of computer-related careers and their educational requirements

- demonstrates some knowledge of computer-related careers and their educational requirements

- demonstrates considerable knowledge of computer-related careers and their educational requirements

- demonstrates thorough knowledge of computer-related careers and their educational requirements

Identify postsecondary educational opportunities and their entry requirements

IC2.01

- demonstrates limited knowledge of postsecondary educational opportunities and their entry requirements

- demonstrates some knowledge of postsecondary educational opportunities and their entry requirements

- demonstrates considerable knowledge of postsecondary educational opportunities and their entry requirements

- demonstrates thorough knowledge of postsecondary educational opportunities and their entry requirements

Identify apprenticeship training and co-op programs

IC2.03

- demonstrates limited knowledge of apprenticeship training and co-op programs

- demonstrates some knowledge of apprenticeship training and co-op programs

- demonstrates considerable knowledge of apprenticeship training and co-op programs

- demonstrates thorough knowledge of apprenticeship training and co-op programs

Explain the importance of keeping up to date on computer technology

IC1.06

- uses thinking skills with limited effectiveness to explain the importance of keeping up-to-date on computer technology

- uses thinking skills with moderate effectiveness to explain the importance of keeping up-to-date on computer technology

- uses thinking skills with considerable effectiveness to explain the importance of keeping up-to-date on computer technology

- uses thinking skills with a high degree of effectiveness to explain the importance of keeping up-to-date on computer technology

Note: A student whose achievement is below level 1 (50%) has not met the expectations for this assignment or activity.

 


Appendix 3.5.1

Programming with Subroutines – Sample Assignment

 

Number system conversions

The purpose of this project is to combine and consolidate the programming concepts learned in this unit. The student must demonstrate an understanding of the following concepts:

·         proper definition of a subroutine;

·         parameters;

·         local and global variables;

·         use of predefined subroutines;

·         string concatenation;

·         remainder and integer division operator.

 

It is assumed that the language the student is using has the following predefined functions.

·         substring – to select parts of a string;

·         string to integer – to convert a string to an integer;

·         integer to string – to convert an integer to a string;

·         length – to find the length of a string.

 

If students are not familiar with number systems, a short introduction to binary (base 2) and hexadecimal (base 16) number systems is necessary. Algorithms for converting between binary, decimal, and hexadecimal number systems should be introduced and provided in a handout or a web page.

Students work in groups of two or three.

 

Programming Task

The binary and hexadecimal number systems are very important in Computer Science. A computing professional comes across these number systems over and over again in computer programming and networking (e.g., network card addresses are usually expressed as a series of hex digits, IP addresses are binary numbers usually expressed as decimal numbers). The ability to work in these number systems is an essential skill in computing.

Working in teams of two or three students, write a program that allows a user to specify a number (decimal, binary, or hexadecimal) and a base to convert to (decimal, binary, or hexadecimal). A subroutine must be written for each of the conversions (decimal to binary, decimal to hexadecimal, binary to decimal, binary to hexadecimal, hexadecimal to decimal, and hexadecimal to binary). The task of writing the subroutines is divided among the members of the group.


Appendix 3.5.2

Programming with Subroutines – Notes

Binary to Decimal

This function demonstrates the algorithm used for converting a binary number into a decimal number.

Function (BinaryNumber is String) returns Integer

            Var DecimalNumber is Integer initialized as 0

            Var Power is Integer initialized as 0

            Var BinaryDigit is Integer

            For (I (start value is length of BinaryNumber) to (end value is 1))

                        BinaryDigit = StringToInteger (BinaryNumber (I))

- BinaryNumber (I) represents the Ith character in the string – this is similar to the substring function

                        DecimalNumber = DecimalNumber + (BinaryDigit * 2 ** Power)

- ** is the “power of” operator

                        Power = Power + 1

            End for

            Return DecimalNumber

End Function

Decimal to Binary

This function demonstrates the algorithm used for converting a decimal number into a binary number.

Function DecimalToBinary (DecimalNumber is Integer) returns String

            Var BinaryString is String initialized as “”

            Var BinaryDigit is Integer

            Var DecimalN is Integer initialized as DecimalNumber

            Loop

                        BinaryDigit = DecimalN mod 2              - mod is the remainder function

- the right-hand side will result in 0 or 1

                        BinaryNumber = IntegerToString (BinaryDigit) + BinaryNumber

- IntegerToString is a predefined function to convert an integer to a string

- The ‘+’ here is the concatenation operator

                        Exit when DecimanN is 0

                        DecimalN = DecimalN div 2                  - div is the integer division operator

- we want to divide DecimalN by 2 and “throw” away the fractional part

            End loop

            Return BinaryNumber

End Function

Additional Resources

Binary/Hexadecimal Tutorial – http://vwop.port5.com/beginner/bhextut.html

The Hexadecimal Number System – http://www.cths.nsw.edu.au/kla/IT/tutorial/hexadecimal.htm


Appendix 3.5.3

Programming with Subroutines – Summative Evaluation Rubric

 

Criteria

Level 1

(50 – 59%)

Level 2

(60 – 60%)

Level 3

(70 – 79%)

Level 4

(80 – 100%)

Follow the software design process

SPV.01

- demonstrates limited ability to effectively use the software design process to solve a computer programming problem

- demonstrates some ability to effectively use the software design process to solve a computer programming problem

- demonstrates considerable ability to effectively use the software design process to solve a computer programming problem

- demonstrates a high level of ability to effectively use the software design process to solve a computer programming problem

Describe the purpose of subroutines

TF2.07

- demonstrates limited ability to describe the purpose of subroutines used

- demonstrates some ability to describe the purpose of subroutines used

- demonstrates considerable ability to describe the purpose of subroutines used

- demonstrates a high level of ability to describe the purpose of subroutines used

Use built-in subroutines

SP2.05

- demonstrates limited ability to use built-in subroutines where appropriate

- demonstrates some ability to use built-in subroutines where appropriate

- demonstrates considerable ability to use
built-in subroutines where appropriate

- demonstrates a high level of ability to use
built-in subroutines where appropriate

Write subroutines that pass parameters and use local and global variables

SP2.06

- demonstrates limited ability to write subroutines that pass parameters and use local and global variables

- demonstrates some ability to write subroutines that pass parameters and use local and global variables

- demonstrates considerable ability to write subroutines that pass parameters and use local and global variables

- demonstrates a high level of ability to write subroutines that pass parameters and use local and global variables

Note: A student whose achievement is below level 1 (50%) has not met the expectations for this assignment or activity.


Appendix 3.6.1

Reflecting on Work – Notes on Laborem Exercens

 

The purpose of this activity is to give students an opportunity to reflect on their views about work and present the Church’s view. Another focus is to encourage discussion regarding the relationship of technology, work, and workers.

Laborem Exercens is an important document that talks about the Church’s social doctrine on human work. It is important for all of us (students and teachers) to understand the Church’s position on the dignity of human work. The encyclical is quoted in several places in the following paragraphs.

In Laborem Exercens, John Paul II talks about many different facets of work and comments on the value of work, the relationship between technology and work, unions, and the spirituality of work. The scope of the document is extensive and therefore we should try to focus our discussions to the sections on the relationship between technology and work.

Simply stated, the Church believes that work is important, that human work is “key, probably the essential key, to the whole social question...” John Paul II also differentiates between ‘objective’ and ‘subjective’ work. The objective aspect of work is “simply the external aspects of work, the actual job one does, with its necessary tools or machines.” “Work in the subjective sense is something different; it is man himself, man as a worker and the subject of work.”

The concern the Church has is that we, who are supposed to be the subject of work, have become simply another tool in the production of goods. It is important to note that the Church is not against technology or the use of technology in work. The difficulty arises when humankind is brought down to the level of the tools (i.e., labour is just another factor in the equation of profit). John Paul II “insists especially on human work as a sharing in the activity of God the Creator.”

This is foreign to the current way of thinking in the industrial world. This is a wonderful chance to expose students to another way of thinking, a healthier way of thinking, about the world. I think the key to this is the way students think of work – a way of making money. Whereas the Church says work is a way to fulfill our humanity and a way to share in the activity of God.

The use of technology becomes a problem when it is used as a means to displace workers, to increase efficiency and productivity to make more profit. The Church has no problem with the use of technology to increase efficiency and productivity as long as the workers share in the wealth (not just in the monetary sense) brought about by its use.

In the encyclical, John Paul comments on technology, ‘While it may seem that in the industrial process it is the machine that “works” and man merely supervises it, making it function and keeping it going in various ways, it is also true that for this very reason industrial development provides grounds for reproposing in new ways the question of human work.’ And it is this “reproprosing” that brings problems - there is a shift in the way we think of people and their relationship to work.

The Church sees technology as an ally, but adds, ‘However, it is also a fact that, in some instances, technology can cease to be man’s ally and become almost his enemy, as when the mechanization of work “supplants” him, taking away all personal satisfaction and the incentive to creativity and responsibility, when it deprives many workers of their previous employment, or when, through exalting the machine, it reduces man to the status of its slave.’

When we become “slaves” to technology, then we no longer are the subject of work. We are no longer that important - workers become expendable. However, it is not technology that is the problem, for technology is merely a tool. It is the placement of technology over humankind that is the root of the problem.

To prepare for this activity, the teacher must spend some time reflecting on and praying about the contents of the encyclical. This is key to making this an effective activity. It is important to challenge students’ thinking about work, about technology, and about the use of technology in work. However, it can only be achieved through a thoughtful and careful presentation of the issue.

 

Appendix 3.6.2

Reflecting on Work – Sample Assignment

 

Present the following text to students in the form of a handout. This text is borrowed from Laborem Exercens (in everyday language) by Joseph Donders - http://www.osjspm.org/cst/le_el.htm (the text can be found in Joseph Donders’ book entitled John Paul’s Encyclicals in Everyday Language).

The class can be divided into small groups to facilitate discussion. The text can be divided into sections and each section treated separately. Each section should be read in class with some comments offered by the teacher. The section should then be discussed within the small groups. The teacher should prepare two or three questions for each section. These questions can then be used to direct the discussions in the small groups. The teacher leads class discussion regarding each section.

Some of the questions prepared by the teacher should solicit stories from students regarding their experience or their parents’ experience with the effects of the use of technology in the workplace.

This is followed by an assignment to write a reflection paper as homework. This gives students a chance to reflect on the encyclical at a personal level. The reflection paper may be based on one of the following questions and be at least 250 words (in essay format)

·         In light of the reading presented during class, has your view on our relationship to technology changed?

·         In light of the reading presented during class, has your view of work changed?

·         Do you agree with the Church’s view on the relationship of technology and work?

 

During the second hour of the activity (possibly the day after the homework question is assigned), the teacher can solicit contributions from students’ reflection papers to spark further discussion regarding this topic. The teacher can also present other material on the same topic.

There are obviously two sides to this topic. It might be useful and insightful to invite two people to speak on each side (possibly a union representative and a senior manager from a local company). They can talk about their views on the relationship between technology and work.

The following is the text borrowed from parts of Laborem Exercens (in everyday language). Note that this is not the actual text of Laborem Exercens, but a translation to everyday language. Furthermore, this does not represent the whole of the encyclical.

Preface

“Human beings earn their daily bread through work. Through work they contribute to science and technology and to the enrichment of the moral and cultural of their society. By work we mean any human activity, whether manual or intellectual. Made in the image of God, human beings are placed on earth to have power over it. From the beginning they have been called to work. It is work that distinguishes human beings from other creatures. They are the only ones capable of work. Work is something particularly human done in a community of persons, a characteristic that marks and, in a sense, constitutes the very nature of work.”

Work in the Objective Sense: Technology

“Work is – objectively – what a human being does when dominating the earth. Work has been changing during the ages, from domesticating animals and extracting resources from earth and sea, to cultivating the earth, transforming, changing, and using its produce. Agriculture remains vital to economic activity and production. Industry links the earth’s riches with human work, whether physical or intellectual. Today much human work has ceased to be manual; hands and muscles are helped by machinery, by electronics and micro-processing. It may seem that it is the machine that “works,” but it is the human being who works, and who remains the subject of work. Technology is humanity’s ally; it eases our work, it perfects, accelerates, and increases it.”

Technology sometimes becomes almost an enemy, supplanting workers, taking away personal satisfaction, creativity, and responsibility, causing unemployment, or making workers mere slaves of the machine. Technology is definitely covered by the biblical word “subdue the earth” and it has been correctly seen as a basic aid to economic progress, but it also raises many social and ethical questions on how to relate to work and even to each other - questions challenging states, governments, international organizations, and the church.”

Work in the Subjective Sense: The Worker as Subject

“We must pay more attention to the one who works than to what the worker does. The self-realization of the human person is the measure of what is right and wrong. This basic truth has always been the heart of Christian teaching on human work. The ancient world divided people into classes according to the type of work that people did. Manual work was done by slaves and considered to be unworthy of free people. Broadening what the Bible had said and seeing it in the light of the Gospel, Christianity changed this idea. The one who, while being God, became equal to us in all things spent most of his life at the carpenter’s bench, showing that the value of work does not depend on the type of work done, but on the person who is doing the work. Human persons and not what they do determine the dignity of work. This does away with the division of people into classes according to the work they do. Work can be classified and rated, but the measure of the value of any work remains the human being, who is its “subject.” Work is in the first place “for the worker” and not the worker “for work.” Work itself can have greater or lesser objective value, but all work should be judged by the measure of dignity given to the person who carries it out. Work has no meaning by itself; it is always the human being who counts, even if the work done is the most monotonous or alienating.”

A Threat to the Right Order of Values

“This Christian “gospel of work” had to oppose the materialistic and economist thought of the modern age. Work was understood as “merchandise” sold by the workers to their employer, the one who owned everything necessary for production. These nineteenth-century ideas have given way to a more human thinking about work, but the danger of treating work as “merchandise” - or as an impersonal “work force” - remains as long as economics is understood in a materialistic way. It is this one-sided approach that concentrates on work as the prime thing, leaving the worker in a secondary place. This is a reversal of the order laid down in the book of Genesis. The worker is treated as a tool whereas the worker ought to be treated as the subject of work, as its maker and creator. This reversal - whatever other name it gives itself - should be called “capitalism” - an economic and social system that historically has been known as opposed to “socialism” or “communism.” The error of early capitalism can be repeated wherever the worker is treated as a mere means of production, as a tool and not as a subject. To consider work and the worker in the light of humanity’s dominion over the earth goes to the very heart of the ethical and social question. It is in insight that should be applied to all social and economic policy, within each country, but also internationally, to the tensions between East and West, North and South.”

Abridged version (The Encyclicals in Everyday Language) - copyright © 1996 by Joseph G. Donders.


Appendix 3.6.2  (Continued)

Reflecting on Work – Reflection Career Assignment Assessment Tool

 

Use the following tool to self-assess your career assignment.

 

Criteria

High

Moderate

Needs Improvement

To what degree am I able to:

·         read, understand, and use written material from various sources and mediums such as books, magazines, CD-ROMs, and networked resources

 

 

 

·         examine and describe personal values, abilities and aspirations

 

 

 

·         describe  the meaning and purpose of work as a part of life

 

 

 

·         relate the concept of vocation to career choice

 

 

 

·         provide examples of how work can provide meaning, dignity, fulfillment to the individual and also contribute to the common good

 

 

 

What do you think went well in your career assignment?

 

 

 

 

 

 

 

 

What would you do differently in the next assignment?

 

 

 

 

 

 

 

 

What help do you need to improve your work?

 

 

 

 

 

 

 

 

 

 

Course Overview | Unit 5 | Course Profiles Main Menu