Late Submission Policy

The general policy for late submissions is that 5% of your achieved mark will be deducted per day to a maximum of 15% for grades 9-10 and a maximum of 25% for grades 11-12 (DSBN policy). There may be exceptions to this, depending on the specific circumstances.

If assignments are posted online and can be done from home, absence due to a school activity does not extend the deadline.

If the situation warrants that an assignment can no longer be handed in, the mark will be a zero beyond that.

(You will only be given a reasonable amount of time to submit a late assignment. Don’t expect to be handing in assignments two or three weeks after they are due!)

ICS3U Expectations

ICS3U — Introduction to Computer Science, Grade 11, University Preparation

Note: a printable copy of this page is available here.

A. Programming Concepts and Skills

Overall Expectations

A1. demonstrate the ability to use different data types, including one-dimensional arrays, in computer programs;

A2. demonstrate the ability to use control structures and simple algorithms in computer programs;

A3. demonstrate the ability to use subprograms within computer programs;

A4. use proper code maintenance techniques and conventions when creating computer programs.

Specific Expectations

A1. Data Types and Expressions

A1.1 use constants and variables, including integers, floating points, strings, and Boolean values, correctly in computer programs;

A1.2 demonstrate an understanding of how a computer uses various systems (e.g., binary, hexadecimal, ASCII, Unicode) to internally represent data and store information;

A1.3 use assignment statements correctly with both arithmetic and string expressions in computer programs;

A1.4 demonstrate the ability to use Boolean operators (e.g., AND, OR, NOT), comparison operators (i.e., equal to, not equal to, greater than, less than, greater than or equal to, less than or equal to), arithmetic operators (e.g., addition, subtraction, multiplication, division, exponentiation, parentheses), and order of operations correctly in computer programs;

A1.5 describe the structure of one-dimensional arrays and related concepts, including elements, indexes, and bounds;

A1.6 write programs that declare, initialize, modify, and access one-dimensional arrays.

A2. Control Structures and Simple Algorithms

A2.1 write programs that incorporate user input, processing, and screen output;

A2.2 use sequence, selection, and repetition control structures to create programming solutions;

A2.3 write algorithms with nested structures (e.g., to count elements in an array, calculate a total, find highest or lowest value, or perform a linear search).

A 3. Subprograms

A3.1 demonstrate the ability to use existing subprograms (e.g., random number generator, substring, absolute value) within computer programs;

A3.2 write subprograms (e.g., functions, procedures) that use parameter passing and appropriate variable scope (e.g., local, global), to perform tasks within programs.

A4. Code Maintenance

A4.1 demonstrate the ability to identify and correct syntax, logic, and run-time errors in computer programs;

A4.2 use workplace and professional conventions (e.g., naming, indenting, commenting) correctly to write programs and internal documentation;

A4.3 demonstrate the ability to interpret error messages displayed by programming tools (e.g., compiler, debugging tool), at different times during the software development process (e.g., writing, compilation, testing);

A4.4 use a tracing technique to understand program flow and to identify and correct logic and run-time errors in computer programs;

A4.5 demonstrate the ability to validate a program using a full range of test cases.

B. Software development

Overall Expectations

B1. use a variety of problem-solving strategies to solve different types of problems independently and as part of a team;

B2. design software solutions to meet a variety of challenges;

B3. design algorithms according to specifications;

B4. apply a software development life-cycle model to a software development project.

Specific Expectations

B1. Problem-solving Strategies

B1.1 use various problem-solving strategies (e.g., stepwise refinement, divide and conquer, working backwards, examples, extreme cases, tables and charts, trial and error) when solving different types of problems;

B1.2 demonstrate the ability to solve problems independently and as part of a team;

B1.3 use the input-process-output model to solve problems.

B2. Designing Software Solutions

B2.1 design programs from a program template or skeleton (e.g., teacher-supplied skeleton, Help facility code snippet);

B2.2 use appropriate vocabulary and mode of expression (i.e., written, oral, diagrammatic) to describe alternative program designs, and to explain the structure of a program;

B2.3 apply the principle of modularity to design reusable code (e.g., subprograms, classes) in computer programs;

B2.4 represent the structure and components of a program using industry-standard programming tools (e.g., structure chart, flow chart,UML [Unified Modeling Language], data flow diagram, pseudocode);

B2.5 design user-friendly software interfaces (e.g., prompts, messages, screens, forms).

B3. Designing Algorithms

B3.1 design simple algorithms (e.g., add data to a sorted array, delete a datum from the middle of an array) according to specifications;

B3.2 solve common problems (e.g., calculation of hypotenuse, determination of primes, calculation of area and circumference) by applying mathematical equations or formulas in an algorithm;

B3.3 design algorithms to detect, intercept, and handle exceptions (e.g., division by zero, roots of negatives).

B4. The Software Development Life Cycle

B4.1 describe the phases (i.e., problem definition, analysis, design, writing code, testing, implementation, maintenance), milestones (e.g., date of completion of program specification), and products (e.g., specification, flow chart, program documentation, bug reports) of a software development life cycle;

B4.2 use a variety of techniques (e.g., dialogue, questionnaires, surveys, research) to clarify program specifications;

B4.3 use project management tools (e.g., Gantt chart, critical path diagram, PERT chart) to show tasks and milestones in a teacher-led project;

B4.4 use a test plan to test programs (i.e., identify test scenarios, identify suitable input data, calculate expected outcomes, record actual outcomes, and conclude ‘pass’ or ‘fail’) by comparing expected to actual outcomes;

B4.5 use a variety of methods to debug programs (e.g., manual code tracing, extra code to output the state of variables);

B4.6 communicate information about the status of a project (e.g., milestones, work completed, work outstanding) effectively in writing throughout the project.

C. Computer Environments and Systems

Overall Expectations

C1. relate the specifications of computer components to user requirements;

C2. use appropriate file maintenance practices to organize and safeguard data;

C3. demonstrate an understanding of the software development process.

Specific Expectations

C1. Computer Components

C1.1 relate the specifications of the internal components of a computer (e.g., CPU, RAM, ROM, cache, hard drive, motherboard, power supply, video card, sound card) to user requirements;

C1.2 relate computer specifications (e.g., processor type, bus speed, storage capacity, amount of memory) to user requirements, using correct terminology;

C1.3 relate the specifications of common computer peripheral devices (e.g., printer, monitor, scanner, keyboard, mouse, speakers, USB flash drive) to user requirements;

C1.4 identify the computer components involved in executing programming operations (e.g., assignment statements store a value in RAM, arithmetic operations are performed in the CPU).

C2. File Maintenance

C2.1 use an operating system to organize computer programs and files logically on local and shared drives;

C2.2 describe procedures to safeguard data and programs from malware (e.g., viruses, Trojan horses, worms, spyware, adware, malevolent macros), and devise a thorough system protection plan;

C2.3 use standard procedures to back up and archive user files.

C3. Software Development

C3.1 demonstrate an understanding of an integrated software development environment and its main components (e.g., source code editor, compiler, debugger);

C3.2 work independently, using support documentation (e.g., IDE Help, tutorials, websites, user manuals), to design and write functioning computer programs;

C3.3 explain the difference between source code and machine code;

C3.4 explain the difference between an interpreter and a compiler;

C3.5 explain the difference between the functions of applications, programming languages, and operating systems.

D. Topics in Computer Science

Overall Expectations

D1. describe policies on computer use that promote environmental stewardship and sustainability;

D2. demonstrate an understanding of emerging areas of computer science research;

D3. describe postsecondary education and career prospects related to computer studies.

Specific Expectations

D1. Environmental Stewardship and Sustainability

D1.1 describe the negative effects of computer use on the environment (e.g., creation of e-waste, excessive use of paper resulting from unnecessary printing of files and emails, heavy power consumption) and on human health (e.g., exposure to radiation, musculoskeletal disorders, eye strain, mental health problems resulting from social isolation, various health consequences of reduced activity levels);

D1.2 identify measures that help reduce the impact of computers on the environment (e.g., lab regulations, school policies, corporate and government policies promoting paperless workplaces and computer recycling and reuse) and on human health (e.g., ergonomic standards);

D1.3 describe ways in which computers are or could be used to reduce resource use and to support environmental protection measures (e.g., computer modelling to reduce use of physical resources; management of natural resources);

D1.4 identify government agencies and community partners that provide resources and guidance for environmental stewardship (e.g., local community recycling centres, private companies that refurbish computers, printer cartridge recycling programs).

D2. Exploring Computer Science

D2.1 demonstrate an understanding of emerging areas of research in computer science (e.g., cryptography, parallel processing, distributed computing, data mining, artificial intelligence, robotics, computer vision, image processing, human–computer interaction, security, geographic information systems [GIS]);

D2.2 demonstrate an understanding of an area of collaborative research between computer science and another field (e.g., bioinformatics, geology, economics, linguistics, health informatics, climatology, sociology, art);

D2.3 report on an area of research related to computer science, using an appropriate format (e.g., website, presentation software, video).

D3. Postsecondary Opportunities

D3.1 research and describe career choices and trends in computer science, at the local, national, and international levels;

D3.2 identify and report on opportunities for experiential learning (e.g., co-op programs, job shadowing, career fairs) in the field of computer science;

D3.3 research and report on postsecondary educational programs leading to careers in information systems and computer science (e.g., institutions offering relevant programs, industry certifications, courses of study, entrance requirements, length of programs, costs);

D3.4 identify groups and programs that are available to support students who are interested in pursuing non-traditional career choices related to information systems and computer science (e.g., mentoring programs, virtual networking/support groups, specialized postsecondary programs, relevant trade/industry associations);

D3.5 describe the Essential Skills and work habits that are important for success in computer studies, as identified in the Ontario Skills Passport.

Turtle Graphics Cheatsheet

Turtle Pen
turtle.pen(pencolor=”red”, pensize=10, fillcolor=”black”) Pens have attributes such as color, size, and fillcolor.
turtle.up() Sets the pen state to be up (not drawing).
turtle.down() Sets the pen state to be down (drawing).
turtle.color(r,g,b) See below
turtle.color(s) Sets the color that the pen will draw until the color is changed. It takes either 1) three arguments, each a floating point number between 0.0 — 1.0, where the first the amount of red, the second is the amount of green, and the third is the amount of blue, or 2) a “color string” the name of a TK color (e.g., “black”, “red”, “blue”, …)
turtle.begin_fill() See below
turtle.end_fill() To fill a figure, use turtle.begin_fill() before you start drawing the figure. Draw the figure. Then execute turtle.end_fill(). The figure drawn between the two fill commands will be filled with the present color setting.
turtle.hideturtle() See below
turtle.showturtle() Sets the state to hide / show the turtle. When shown, you see it as a small arrowhead pointed in the direction of the heading.
turtle.fill(True) To fill a figure, use turtle.fill(True) before you start drawing the figure. The figure drawn will be filled with the present color setting.
Turtle Draw
turtle.right(degrees) Turns the direction that the turtle is facing right (clockwise) by the amount indicated (in degrees).
turtle.left(degrees) Turns the direction that the turtle is facing left (counterclockwise) by the amount indicated (in degrees).
turtle.forward(distance) Moves the turtle forward (in the direction the turtle is facing) the distance indicated (in pixels). Draws a line if the pen is down, not if the pen is up.
turtle.backward(distance) Moves the turtle backward (in the direction opposite to how the turtle is facing) the distance indicated (in pixels). Draws a line if the pen is down, not if the pen is up.
turtle.setheading(angle) Sets the orientation of the turtle to angle. Here are some common directions in degrees: 0 (east) 90 (north) 180 (west) 270 (south)
turtle.goto(x,y) Moves the turtle to the specified coordinates, drawing a straight line to the destination (x,y) if the pen is down, and not drawing if the pen is up.
turtle.circle(radius) Draws a circle of the indicated radius. The turtle draws the circle tangent to the direction the turtle is facing.
Turtle other
turtle.xcor(),turtle.ycor() Returns the x – coordinate / y – coordinate of the current pen position.
x, y = turtle.pos() Sets the variables x and y to the turtle’s current position
turtle.exitonclick() or turtle.done() To prevent the screen from closing.
turtle.bye() Close the turtle drawing window
turtle.speed(integer) Set the animation speed of the turtle. 1 = slowest, 10 = fastest. 0 turns off animation completely
turtle.shape(‘turtle’) Set the shape. You can also choose from arrow, square, circle, triangle and classic
Compiled from: http://bit.ly/2J8Cj77
http://bit.ly/2kr4tMN
http://bit.ly/2krp7MJ

ICT Ethics Assignment

Create an infographic (Affinity Designer is recommended for this) or Google Doc or podcast or video that shows an ICT-related ethical issue which:

  • clearly defines what the issue is all about,
  • convincingly shows us how to resolve it, and
  • recommends alternatives/safeguards which exist to protect against such issues in the future (if applicable).

Topic Suggestions

  • Music and video file downloading
  • Spyware
  • Identity theft
  • Phishing
  • Keystroke logging
  • Packet sniffing
  • Biometric data
  • Effective passwords
  • Firewalls
  • Secure websites
  • Cyber bullying

Citations

Be sure to give credit to all your sources!


Inspiration and credit for this assignment:
https://github.com/mrseidel-classes/ICS2O/wiki/Ethics