ics 4c: grade 12 college course plan · 2017. 1. 14. · understand the difference between client-...
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/1.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/2.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/3.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/4.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/5.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/6.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/7.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/8.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/9.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/10.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/11.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/12.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022052105/6040bb4f3f704f4d9f11cabc/html5/thumbnails/13.jpg)
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.