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
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.
|
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 |
Time: 60 minutes
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.
CGE7a -
acts morally and legally as a person formed in Catholic tradition.
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.
Students:
·
have
written several programs;
·
have
used several large and complex application programs (such as a word processor
or spreadsheet).
·
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.
·
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.
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).
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.
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
Time: 180 minutes
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.
CGE2b -
reads, understands, and uses written materials effectively.
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.
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.
·
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.
·
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.)
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.
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.
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
Time: 120 minutes
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.
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.
·
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.
Students:
·
can
demonstrate appropriate use of built-in subroutines;
·
are
able to debug programs containing syntax and logic errors.
·
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)
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.
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.
Installed
help files and/or manuals for the programming language in use.
See
Resources in Activity 2.
Time: 180 minutes
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.
CGE5b -
thinks critically about the meaning and purpose of work.
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.
·
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.
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.
·
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.)
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.
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.
Careers
and Career Planning
Human
Resources Development
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
Computer
Technology News
Wired
News – http://www.wired.com
ZDNet
– http://www.zdnet.com
TechWeb
– http://www.techweb.com
cnet –
http://news.cnet.com
Postsecondary
education
Government
of Ontario Post-secondary website –
http://www.edu.gov.on.ca/eng/general/postsec/postsec.html
Local Chamber
of Commerce
Time: 420 minutes
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.
CGE2b -
reads, understands, and uses written materials effectively;
CGE5a -
works effectively as an interdependent team member.
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.
·
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).
Students:
·
have
used predefined subroutines;
·
have
created several subroutines.
·
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.
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.
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).
Installed
help files and/or manuals for the programming language in use.
See
Resources in Activity 2.
Time: 120 minutes
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.
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.
·
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).
Students:
·
are
aware of the increasing use of computer technology in the workplace;
·
are
aware that computer technology may displace workers.
·
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).
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.
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.
Laborem Exercens (full text – from a
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
|
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.
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. |
|
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 |
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.
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.
|
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.
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.
|
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.
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.
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
|
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 |
- demonstrates a high level of ability to use |
|
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.
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.
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.
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