ics 4c: grade 12 college course plan · 2017. 1. 14. · understand the difference between client-...

13
ICS 4C: Grade 12 College Course Plan Erik Koopmans, 10093543 Katherine Muir, 10086253 PART 1 Units Unit Description and Objectives Weight Intro September 3 – 9 Beginning of the course Reminds students of programming basics and orients them with Python Covers tracing for testing/debugging purposes By the end of this unit, students will be able to: Read and write simple programs in Python Trace Python code Define object-oriented programming 5% Python September 10 – October 31 Designed to cover many curriculum programming expectations 6 major topics: o Reading and writing o 1D Arrays o 2D arrays o Object-oriented programming o Data conversions and working with strings o GUIs Introduction to course routines such as Friday assessments, stepwise refinement and CVS By the end of this unit, students will be able to: Understand and convert data types Manipulate strings Use CVS to keep track of versions of their programs Use pseudocode and stepwise refinement to develop projects Read from and write to files Use and apply 1D and 2D arrays using loops and nested loops Use methods and objects Create GUIs 30% Web November 1 – 22 HTML, JavaScript and CSS Covers data validation and GUI design standards and user- friendliness By the end of this unit, students will be able to: Discuss design standards for accessibility 15%

Upload: others

Post on 10-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

ICS 4C: Grade 12 College Course Plan

Erik Koopmans, 10093543 Katherine Muir, 10086253

PART 1

Units

Unit Description and Objectives Weight Intro September 3 – 9

Beginning of the course Reminds students of programming basics and orients them

with Python Covers tracing for testing/debugging purposes By the end of this unit, students will be able to: Read and write simple programs in Python Trace Python code Define object-oriented programming

5%

Python September 10 – October 31

Designed to cover many curriculum programming expectations 6 major topics:

o Reading and writing o 1D Arrays o 2D arrays o Object-oriented programming o Data conversions and working with strings o GUIs

Introduction to course routines such as Friday assessments, stepwise refinement and CVS

By the end of this unit, students will be able to: Understand and convert data types Manipulate strings Use CVS to keep track of versions of their programs Use pseudocode and stepwise refinement to develop projects Read from and write to files Use and apply 1D and 2D arrays using loops and nested loops Use methods and objects Create GUIs

30%

Web November 1 – 22

HTML, JavaScript and CSS Covers data validation and GUI design standards and user-

friendliness By the end of this unit, students will be able to: Discuss design standards for accessibility

15%

Page 2: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

Design user-friendly interfaces Use HTML and CSS to create GUIs Use JavaScript to create web programs Understand the difference between client- and server-side

scripting Use JavaScript to validate data

Computers and Society November 25 – 29, January 13 – 24

Covers the environment, careers, ethics, emerging technologies, and skills evaluation sections of the curriculum

Split up throughout term

By the end of this unit, students will be able to: Research and present ethical issues in computing Research and present an emerging technology Discuss ethical issues and emerging technologies presented by

peers Evaluate the skills they have built over the term Discover fields and explore possible careers in computing Understand environmental concerns related to computing Describe government and local initiatives to reduce the

environmental impact of computing

20%

Summative December 2 – January 10

See Assessment Description Summative assessment will encompass all topics covered in the course up to December 2. In addition, we will introduce some project management tools which will also be assessed.

30%

Page 3: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

Assessments

Assessment Description Weight Weekly Assessments 1. Tracing Quiz

2. Python basics quiz (on the computer) 3. 3 day in class project teaching stepwise

refinement 4. 1D arrays assignment 5. 2D arrays assessment 6. Objects analogy unplugged assessment 7. Object-oriented 2 day assignment 8. 2 day create a GUI 9. HTML assignment 10. Validation assignment (tested by teacher made

PHP) (Builds on HTML assignment) 11. Polishing the HTML/Validation assignment with

CSS and knowledge of accessibility standards 12. Paragraph on government initiative research 13. Careers/fields presentations

1. 3% 2. 2% 3. 4% 4. 3% 5. 3% 6. 3% 7. 4% 8. 3% 9. 5% 10. 5% 11. 5% 12. 3% 13. 5% Total: 48%

Emerging Technology Presentations

Three students will present on Fridays (first half of the semester). Individual. They will do research into an emerging technology (programming language, software or hardware) and report to the class about it.

6%

Ethics Presentations Three students will present on Fridays (second half of the semester). Individual. They will research an ethical issue, a code of ethics or strategies to encourage ethical and safe computer use, and present to the class.

6%

Cumulative python project

Business inventory database. This assignment will be much more structured than the summative, as we will have very specific expectations. The database needs to keep track of stock and allow the company to order and sell products. It will assess the entire Python unit, including 2D arrays, reading/writing, and string manipulation.

10%

Page 4: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

Summative project In groups of 3 or 4, students will brainstorm project ideas, plan them with timelines, and manage a large project. They can do anything they like, with teacher approval. They can use either python or web programming. Suggestions we will give include:

A game Personal use for another class Application around the school Application for a hypothetical business Something inspired by the environment unit

Included in this assessment will be many checkpoints of both formative and summative assessment. They are included in the calendar. Checkpoints:

Presentation of working ideas (formative) Time plan Pseudocode and stepwise refinement step 1. Reflection on problems Prototypes Polished project

30%

Technology Using provided Windows laptops, 1 per student

Installing Python, default IDE (IDLE), default GUI package (tkinter) as well as a few

other GUI packages to explore (pyside, enaml, wxpython)

Installing cx_Freeze for compiling Python code to executable

Simple text editor for HTML/JavaScript/CSS: Notepad++ or Sublime

Not using provided Lego robots (unless students make a convincing case to use them for

their summative project)

List of Resources First stop for any programming question: http://stackoverflow.com/

Python: https://www.python.org/

Learn Python the Hard Way: http://learnpythonthehardway.org/book/

Python GUI comparison: https://wiki.python.org/moin/GuiProgramming

Compiling Python using cx_Freeze: http://cx-freeze.sourceforge.net/

Create Python package for iOS: http://kivy.org/docs/guide/packaging-ios.html

w3schools (Learn web programming): http://www.w3schools.com/

jsFiddle (Web code snippet tool): http://jsfiddle.net/

Web standards: http://www.w3.org/

Web Accessibility Initiative: http://www.w3.org/WAI/

Ontario Accessibility Standard for Information and Communications:

http://www.mcss.gov.on.ca/en/mcss/programs/accessibility/info_comm/index.aspx

CS Unplugged: http://csunplugged.org/

Page 5: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

Curriculum Expectations

CURRICULUM EXPECTATIONS Overall Expectation Relevant Unit Dates

Programming Concepts and Skills A1 Data structures Python Sept. 10-Oct. 2 A2 Using standard algorithms Python Sept. 10-Oct. 2 A3 Object-oriented programming Python Oct. 3-17

A4 Code maintenance Intro Summative

Sept. 4-9 Dec. 9-Jan. 10

Software Development

B1 Designing standard algorithms Python, Web, Summative

Weekly assessments

B2 Object-oriented software solutions Python Oct. 3-17

B3 Graphical user interfaces Python Web

Oct. 28-Nov. 1 Nov. 4-22

B4 Student-managed project Summative Dec. 2-Jan. 10 Programming Environment

C1 Project management tools Summative Dec. 2-10

C2 Software development tools Python, Web, Summative

All programming tasks

Computers and Society

D1 Environmental stewardship and sustainability

Computers/Society Nov. 25-29

D2 Ethical practices Computers/Society Fridays Nov. 8-Jan. 10 D3 Emerging technologies Computers/Society Fridays Sept. 13-Nov. 1 D4 Computer-related careers Computers/Society Jan. 13-21

Page 6: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

September 2013 Grade 12 College Computer Studies

Monday Tuesday Wednesday Thursday Friday

2 3 4 5 6 LABOUR DAY

Discussion of course syllabus and student expectations of course/objectives

Basic Python programming and using help

Tracing sample code to test/debug

More python basics; what is an object?

A Tracing Quiz 9 10 11 12 13 Tracing with a focus on documentation Remind about Friday assessments

Data conversion: strings, Booleans

More string manipulation

Read/write Emerging technology presentations

A Quiz on computer 16 17 18 19 20 More sophisticated reading/writing

Precision and accuracy (rounding)

First big program; CVS, algorithms -> pseudocode, modeling process with skeleton

Pseudocode -> stepwise refinement

Emerging technology presentations

A Programming assignment assessing first 2 weeks of material 23 24 25 26 27 Introduce 1D arrays 1D arrays and for

loops Applications of arrays Search and sort (how

to use them) Emerging technology presentations

A 1D arrays 30 2D arrays

Page 7: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

October 2013 Grade 12 College Computer Studies

Monday Tuesday Wednesday Thursday Friday

1 2 3 4 2D arrays and nested

for loops More 2D arrays Review basic object-

oriented principles in Python

Emerging technology presentations

A 2D arrays 7 8 9 10 11 Using objects in Python

Properties and methods – Interactive activity

Constructors, mutators, accessors

Emerging technology presentations

PA DAY

A Analogy unplugged 14 15 16 17 18 THANKSGIVING

Creating a base class with skeletons

Methods Work period Emerging technology presentations

A Object-oriented program 21 22 23 24 25 Introduce cumulative Python project

Work period Work period Work period Compiling Python code

Emerging technology presentations

A Cumulative Python project 28 29 30 31 Python GUI basics: What is a GUI?, tkinter, build GUIs together

Short GUI worksheet, free student exploration of GUIs

Advanced GUI techniques

Work on GUI assignment

A Create a GUI

Page 8: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

November 2013 Grade 12 College Computer Studies

Monday Tuesday Wednesday Thursday Friday

1 Emerging technology

presentations

A Create a GUI 4 5 6 7 8 The Internet Transition to HTML;

user friendliness HTML basics Exploring HTML Ethics presentations

A HTML assignment 11 12 13 14 15 JavaScript intro More JavaScript Forms and validation;

client-side vs. server-side scripting

Work on validation assignment

Ethics presentations

A Validation assignment 18 19 20 21 22 CSS Accessibility and

standards Polishing and putting it together

Work on polishing final web assignment

Ethics presentations

A Final web assignment 25 26 27 28 29 Introduce environment

Health impact FIELD TRIP Explore a local initiative

Field trip reflection and discussion

Ethics presentations Introduce upcoming project

A Government initiative research

Page 9: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

December 2013 Grade 12 College Computer Studies

Monday Tuesday Wednesday Thursday Friday

2 3 4 5 6 Introduce project. Create groups of 4, brainstorm project ideas

Recap stepwise refinement process; shared calendars

Gantt tables Project idea development

Ethics presentations

A Idea presentations 9 10 11 12 13 Choosing a project and planning

Project software (CVS sharing), communicating status

Work period Group communication discussion

Ethics presentations

A Time plan A Pseudo code/Step 1 A Problems reflection 16 17 18 19 20 Work period Problem discussion

Work period Planning for the break

Work period Ethics presentations PA DAY

A Prototype due 23 24 25 26 27 WINTER BREAK

WINTER BREAK

WINTER BREAK

WINTER BREAK

WINTER BREAK

30 31 WINTER BREAK

WINTER BREAK

Page 10: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

January 2014 Grade 12 College Computer Studies

Monday Tuesday Wednesday Thursday Friday

1 2 3

WINTER BREAK WINTER BREAK

WINTER BREAK

6 7 8 9 10 Refinement and polishing

Refinement and polishing

Refinement and polishing

Refinement and polishing

Ethics presentations

A Project due 13 14 15 16 17 Introduce careers and fields assignment

Work period Work period Careers and fields presentations

Careers and fields presentations

A Careers and fields presentations 20 21 22 23 24 Essential skills self-evaluation

Essential skills self-evaluation

EXAMS

EXAMS

EXAMS

27 28 29 30 31

Page 11: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

PART 2 ICS 4CI: Grade 12 College Computer Studies

Course Outline September 2013 – January 2014

Teachers: Mr. Koopmans and Miss Muir Room: 42 - Lab Textbook: None Course Breakdown:

Unit Length Weight

Intro 1 week 5%

Python 8 weeks 30%

Web Programming 3 weeks 15%

Computers and Society 2.5 weeks 20%

Summative Project 4 weeks 30%

Grading:

In this course, there will be assessments every Friday. There will be 13 such

assessments (not including the summative). They include quizzes, assignments,

paragraphs and other activities. Each has a rather small weight on its own, but together,

they account for 48% of your grade.

In addition, you are expected to give two presentations over the course of the term:

one on an emerging technology and one on ethics. These will be presented on Fridays.

Each Friday, three students will present.

Assessment Weight

Weekly Assessments 48%

Emerging Technology Presentation 6%

Ethics Presentation 6%

Python Project 10%

Cumulative Summative Project 30%

NOTE: If you know you will be absent on an assessment day, be sure to let your teacher

know in advance. If you are absent unexpectedly on an assessment day, remind your

teacher when you return. If you are unable to hand in an assignment on time, discuss the

situation with your teacher. You will be expected to complete all missed assessments.

Page 12: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

PART 3 Discussion of Choices

Language choices:

Python was chosen as the main language for nearly every group’s project in CURR 310.

It is easy to learn, powerful, and popular in the programming industry. The language is designed

to be read and understood easily, with a much gentler learning curve than languages like C and

Java. It also has a wealth of packages and pre-built routines available.

Specific to ICS 4C, Python is object-oriented, can support all of the algorithms required

in the curriculum, and offers a unique perspective on GUIs with the range of GUI packages

available. The program will focus on using tkinter, the default GUI package, but will explore the

other options as well, with a look at declarative (Enaml) vs. imperative (tkinter), providing a nice

segue into HTML’s declarative style.

Our choice of HTML, JavaScript, and CSS was motivated by two factors: preparing

students for the world of work, and giving a more modern context for GUIs and data validation.

The majority of programming work today is in web and app development. These students are

Grade 12 college students, and it’s important to prepare them for the next step in their careers.

Both languages are free, and we will use free IDEs and packages. They are also cross-

platform, so students should be able to access them from home.

Unit order/layout:

We are very excited about our course layout, particularly the idea of putting regular

assessments on every Friday. This accomplishes two things: it ensures that we, as teachers, are

assessing often enough and not forgetting, and it gives structure and effective consolidation of

learning to the students. The Fridays are also used for Computers & Society presentations

throughout the year, borrowing from the approach used in CURR 310.

There were three other key elements to our unit order and layout. We designed the Web

unit to follow Python, using GUI design as a segue: GUIs are much easier to design in HTML

than in most traditional languages. We planned the summative project to span the Winter Break,

providing a realistic scenario requiring effective scheduling. Finally, we split up the Computers

& Society unit (the Environment and Careers portions) around the summative project, to avoid

packing too much of it together and boring the students.

Assumptions about previous years:

Our assumptions were minimal: we expect that they have done some programming

before, in any language, so that the intro unit can go smoothly. The intro is designed to get

students up to speed, reviewing what they learned in previous years and transferring that

knowledge to the context of Python. By showing the students more complex programs in Python

early in the term, we acknowledge that they have some computational thinking knowledge

developed from their studies in grade 11.

Page 13: ICS 4C: Grade 12 College Course Plan · 2017. 1. 14. · Understand the difference between client- and server-side scripting Use JavaScript to validate data Computers and Society

Purchases necessary:

We require no purchases for our course; we designed it to only use free software and the

Windows computers that were provided for us. Because we have chosen only free software,

most students should be able to access them from home.