P A R S I P P A N Y - T R O Y H I L L S T O W N S H I P S C H O O L S
AC O U R S E O F S T U D
Y F O R
I N T R O D U C T I O N T O C O M P U T E R P R O G R A M M I N G I N C A N D A P P S D E V E L O P M E N T M T H 5 1 7
APPROVED BYTHE BOARD OF EDUCATION
January 24, 2013
Approved: January 2001Revised: August 2009
September 2009October 2012
2MTH 517 Introduction to Computer Programming
STATEMENT OF PURPOSE
Introduction to Computer Programming in C and Apps Development is a course designed for the student who wants an introduction to the program- ming process. This is the first course in a three-year sequence. Students who wish to complete the computer science sequence should elect AP Com- puter Science A in their second year and Data Structures and Advanced Programming in year three. Students electing this course should have com- pleted Algebra I or Sequential Algebra I as a prerequisite, therefore students who had algebra in grade eight may plan to take Introduction to Computer Programming in grade nine. Other students will have to elect this course in a subsequent year after completing Algebra I or Sequential Algebra I.
Students are expected to apply problem-solving skills, mathematical reasoning and written communication skills to the solution of problems in many application areas.
In addition to demonstrating the ability to design, implement and test solutions to computer problems; students will understand hardware and soft- ware terms as well as the responsible use of computer systems.
Separately we assess students to gauge progress and inform instruction. Benchmark assessments for students in grades 9 through 12 are administered in the form of a midterm and final exam for full year courses. *Special Note: Only final exams are administered at the end of quarter courses and semester courses.
This course offers students the opportunity to:
1. develop and increase logical thinking skills.2. learn a variety of programming concepts.3. expand problem-solving skills.
GOALS
4. acquire a broad understanding of the basic components of computer programming.5. apply programming techniques to the solution of “real-world” problems.6. acquire the confidence and experience necessary to successfully apply higher-level thinking skills to the exploration of new programming situ-
ations.7. apply mathematical skills necessary for the solution of programming problems.8. expand and increase oral and written communication skills.9. acquire an appreciation of responsible computer usage.
3MTH 517 Introduction to Computer Programming
METHODA variety of teaching techniques will provide the student with the opportunities to discuss, share, exchange and consolidate ideas related to pro- gramming concepts. Students will explore concepts and techniques of programming by means of teacher-led demonstrations and explanations, in- class discussions and practical lab activities.
THE LIVING CURRICULUMCurriculum guides are designed to be working documents. Teachers are encouraged to make notes in the margins. Written comments can serve as the basis for future revisions. In addition, the teachers and administrators are invited to discuss elements of the guides as implemented in the class- room and to work collaboratively to develop recommendations for curriculum reforms as needed.
AFFIRMATIVE ACTIONDuring the development of this course of study, particular attention was paid to material which might discriminate on the basis of sex, race, religion, national origin, or creed. Every effort has been made to uphold both the letter and spirit of affirmative action mandates as applied to the content, the texts and the instruction inherent in this course.
MODIFICATIONS AND ADAPTATIONS
For guidelines on how to modify and adapt curricula to best meet the needs of all students, instructional staff should refer to the Curriculum Modifications and Adaptations included as an Appendix in this curriculum. Instructional staff of students with Individualized Education Plans (IEPs) must adhere to the recommended modifications outlined in each individual plan.
4MTH 517 Introduction to Computer Programming
P A R S I P P A N Y - T R O Y H I L L S T O W N S H I P S C H O O L S
C O U R S E P R O F I C I E N C I E S A N D G R A D I N G P R O C E D U R E S
COURSE PROFICIENCIES AND GRADING PROCEDURES
COURSE NO.: MTH 517 TITLE: COMPUTER PROGRAMMING IN C AND APP DEVELOPMENT
IN ACCORDANCE WITH DISTRICT POLICY AS MANDATED BY THE NEW JERSEY ADMINISTRATIVE CODE, THE NEW JERSEY STUDENT LEARNING STANDARDS FOR TECHNOLOGICAL LITERACY AND THE 21ST CENTURY LIFE AND CAREER STANDARDS. THE FOLLOWING ARE PROFICIENCIES REQUIRED FOR THE SUCCESSFUL COMPLETION OF THE ABOVE NAMED COURSE.
The student will demonstrate proficiency in the following areas:1. describe the history of computer development2. demonstrate knowledge of ethical and responsible use of computers3. identify the major components of a computer system4. convert values between number systems5. enter, edit, compile and execute programs on the computer6. design a program based on given specifications7. design and write programs using correct structure and syntax8. recognize, categorize and correct syntax and logic errors9. declare, recognize and use identifiers, constants and keywords10. use typecasting appropriately in numeric calculations11. input and output data values12. declare, initialize and use strings13. use and evaluate statements containing Boolean and logical operators and expressions14. implement decisions using IF statements15. implement multiple branching and nesting16. use pre-defined methods17. write methods18. write count-controlled loops19. write event-controlled loops
5MTH 517 Introduction to Computer Programming
20. write a nested loop21. define, declare, and use a structure22. define, declare and process a one-dimensional array23. define, declare and process a two-dimensional array24. understand and use pointers25. use a pre-defined class.26. design and implement a class.27. define, initialize, and use objects.28. assign values to objects.29. create and deploy apps in a simulated environment.
6MTH 517 Introduction to Computer Programming
GRADING PROCEDURES
Marking period grade:Assessments (quizzes, tests, student demonstrations, classroom discussion, projects) 60%Labs 30%Assignments 10%
Final Grade – Full Year Course
Full Year Course Each marking period shall count as 20%
of the final grade
The midterm assessment will count as 10% of the final grade, and the final assessment will count as 10% of the final grade.
7MTH 517 Introduction to Computer Programming
Proficiencies (Objectives) CONTENT OUTLINE
(Proficiency numbers in parenthesis)STANDARDS SUGGESTED ACTIVITIES EVALUATION/ASSESSMENT TEACHER
NOTESStudent will be able to: Students will:
Proficiencies 5, 6, 7, & 8 are usedthroughout the entire course
I. History and Development of Com- puters
A. Hardware Development (3) B. Software Development (1)
1. Languages2. Applications
C. Ethics and Responsible Use ofComputers (2)
8.2A Grade 8CPI 019.4K Grade 12CPI 68
• view video on history of com- puters, and answer questions based on the video
As appropriate, tests and quizzesmay be open notebook
Quiz: answer questions about his- tory and the people involved in the development of computers
II. Number Systems (4)A. Binary, Octal,
HexadecimalB. Conversion between bases
8.2A Grade 8CPI 019.4K Grade 12CPI 68
• practice conversions betweennumber systems
Quiz: convert numbers betweenbases
III. Introduction to ProjectDevelopment Environment (5)
9.4K Grade 12CPI 069.4K Grade 12CPI 07
• examine and modify a sampleexisting project
Given a project, modify accordingto teacher specifications
Incorporatethroughout course
8MTH 517 Introduction to Computer Programming
Proficiencies (Objectives) CONTENT OUTLINE
(Proficiency numbers in parenthesis)STANDARDS SUGGESTED ACTIVITIES EVALUATION/ASSESSMENT TEACHER
NOTESStudent will be able to: Students will:
IV. Calculations and DataA. Mathematical Operations
(10, 16)1. Standard Operations(9)2. Order of Operations3. Random Numbers (16)
B. Data Types and Variables (9) C. Strings (12, 16)D. Pseudocode
9.4K Grade 12CPI 069.4K Grade 12CPI 07
9.4K Grade 12CPI 069.4K Grade 12CPI 07
• practice calculations and conver-sions using language-specific operators
• write a program to convert Fahr-enheit to Celsius
• convert an amount of money intoquantity of bills & coins
• write code to produce random number generators
• write a program to simulate toss-ing a coin or die
• determine the value of a black-jack hand –
• examine and modify existing projects
• Write program to find bride’smarried name, both traditional and modern
Test/quiz
Given a project, modify according to teacher specifications
• Quiz: write and analyze code to produce random number gener- ators
Given a code segment:a. predict the outputb. find and correct errors
V. Methods (17)A. void methodsB. value-returning methodsC. arguments and parameters
9.4K Grade 12CPI 069.4K Grade 12CPI 07
Convert change lab to have a genericmethod to find the quantity of a par- ticular coin and remaining amountof money
Explain how parameters and argu-ments are used in programming
9MTH 517 Introduction to Computer ProgrammingProficiencies (Objectives)
CONTENT OUTLINE(Proficiency numbers in parenthesis)
STANDARDS SUGGESTED ACTIVITIES EVALUATION/ASSESSMENT TEACHER NOTES
Student will be able to: Students will:VI. Decisions (13, 14, 15)
A. Logic1. Truth tables2. Boolean Algebra3. Logical operators4. Relational operators
B. If statementsC. If…Else statementsD. Nested IfE. Multi-way decisions
VII. Repetition (18, 19, 20)A. Count-controlled loopsB. Event-controlled loops
VIII. Arrays (21, 22)A. One-dimensional B. Two dimensional C. Searching
1. highest/lowest value2. specific value
9.4K Grade 12CPI 069.4K Grade 12CPI 07
9.4K Grade 12CPI 069.4K Grade 12CPI 07
9.4K Grade 12CPI 069.4K Grade 12CPI 07
• practice evaluating Boolean ex-pressions to simplify logical statements and discover equiva- lent statements
• examine and modify existingprojects
• determine letter grade based onnumber grade
• given a number for suit and val-ue of a card, display the correct name for the card.
• examine and modify existing projects.
• write a program to simulate toss-ing a die and tally the results. Show counts in a table.
• write a program to find the fac-tors of a number input by the user.
• examine and modify existing projects
• write a program to simulate toss-ing a die using an array to store the tallies (modify loop lab)
Quiz: Evaluate statements usingrelational and logical operators
Test: write code involving deci- sions and evaluate statements using relational and logical operators
Given a project, modify according to teacher specifications
Given a code segment:1. predict the output2. find and correct
errors3.
Test/quiz: write and trace code us- ing loopsGiven a project, modify according to teacher specifications.Given a code segment:
1. predict the output2. find and correct
errors.
Given a project, modify according to teacher specificationsGiven a code segment:
1. predict the output2. find and correct
errors
10MTH 517 Introduction to Computer Programming
11MTH 517 Introduction to Computer ProgrammingProficiencies (Objectives)
CONTENT OUTLINE(Proficiency numbers in parenthesis)
STANDARDS SUGGESTED ACTIVITIES EVALUATION/ASSESSMENT TEACHER NOTES
Student will be able to: Students will:IX. Classes and Objects
(25, 26, 27, 28)A. Introduce Objective-C
1. Objective-C syntax2. data types and expressions3. repetition4. decisions5. arrays6. methods7. blocks8. structures9. pointers
B. User-defined classes1. interface and2. implementation files3. access properties using dot
operator
9.4K Grade 12CPI 069.4K Grade 12CPI 07
• convert existing C projects toObjective-C.
• write a program using a class to store and reduce a fraction.
Given a project, modify accordingto teacher specifications using clas- ses.
Given a code segment with classes, predict the output and find and correct errors.
X. Develop AppsA. Basic objects for designing
interfaces1. buttons2. labels3. text boxes
B. ViewController C. AppDelegateD. Handling basic interactions
between objects and codeE. Additional Objects
1. image view2. slider3. segmented control4. switches5. keyboard/keypad
9.4K Grade 12CPI 069.4K Grade 12CPI 07
Exs: put text in a label when a but- ton is pressed, temp converter, ge- ometric calculations (ie – rectan- gle: enter L and W, begin with one button to find area, perimeter, and diagonal, extend to one button for each calculation)
Use chapter 21 from Objective-Cbook
Sample: temp converter
12MTH 517 Introduction to Computer Programming
13MTH 517 Introduction to Computer ProgrammingF. Optional topics
1. autorotation/autosizing2. multiview applications3. bars and pickers4. table views5. taps, touches, and
gestures
Beginning ideas: fraction calculator (use and modify existing fraction class), change lab, factors of a num- ber
Optional TopicsA. RecursionB. InheritanceC. Polymorphism D. Selection Sort E. Binary Search F. File I/O
X. Optional TopicsA. GraphicsB. Searching and sorting
14MTH 517 Introduction to Computer Programming
BIBLIOGRAPHY
RESOURC ES
Kochan, Stephen; Programming in Objective-C - Fourth Edition; Sam’s Publishing (c) 2005Kochan, Stephen; Programming in C - Third Edition; Pearson Education (c) 2012
Mark, Dave/Nutting, Jack/LaMarche, Jeff; Beginning iOS 5 Development; APress (c) 2011
VIDEO
“Thinking Machines: The History of the Computer”, A&E Television Networks. ©1996.
15MTH 517 Introduction to Computer Programming
APPENDIX ASAMPLE AUTHENTIC ASSESMENTS
16MTH 517 Introduction to Computer Programming
SAMPLE AUTHENTIC ASSESSMENTS
1. You have just graduated from college and are looking for your “Dream Job”. Two different companies offer you similar positions but they offer different salary options:OPTION 1 - $100 per dayOPTION 2 - $1 the first day, $2 the second day, $4 the third day and so on with the amount doubling each dayWrite a program to determine which option pays better after 10 days.
2. As Sr. Sales Representative for Standard Chemical Corporation, your new boss wants you to set up a program to calculate profit and loss giv- en revenue and expenses for the last quarter of the year. Your boss wants to be able to enter the revenue and expenses (including rent, pay- roll, utilities, supplies and other expenses). He also wants the program to calculate profit and/or loss. In addition, you need to have the pro- gram calculate the total percent for each expense. (NOTE: This real-life, authentic task will be used to assess student’s ability to write code.)
17MTH 517 Introduction to Computer Programming
APPENDIX BGENERAL GRADING GUIDE FOR ASSESSMENTS
18MTH 517 Introduction to Computer Programming
GENERAL GRADING GUIDE FOR ASSESSMENTS
C o ding St y l e : 4. appropriate and well worded comments
proper indentingcorrect use of whitespace appropriate use of modularization
3. good but incomplete comments some indentingsome use of whitespace some use of modularization
2. limited comments limited indentinglimited use of whitespace limited use of modularization
1. minimal comments minimal indentingminimal use of whitespace minimal use of modularization
Pr og r a m D e si g n/D o cum e nt a ti o n: 4. complete program description
complete interface specificationscomplete description of algorithm(s)
3. partial program description partial interface specifications partial description of algorithm(s)
2. limited program description limited interface specifications limited description of algorithm(s)
1. minimal program description minimal interface specifications minimal description of algorithms(s)
19MTH 517 Introduction to Computer Programming
Interfa c e Design: 4. clear directions for user
completely user-friendlyappropriately formatted and labeled output uses appropriate objects
3. limited directions for user somewhat user-friendlyappropriately formatted or labeled output uses appropriate objects most of the time
2. minimal directions for user minimally user-friendlyoutput neither formatted nor labeleduses appropriate objects some of the time
1. confusing directions for user program difficult to useno output displayedrarely uses appropriate objects
Program Execution:4. produces correct output for all inputs
conforms to all instructor’s specifications and requirements, i.e. use of specific language constructs and/or algorithms
turned in on timeturned in with all supporting documentation (design, code and interface)
3. produces correct output for most inputsconforms to most instructor’s specifications and requirements turned in up to two school days lateturned in with some supporting documentation
20MTH 517 Introduction to Computer Programming
Pr o g r a m E x e c ut i o n (continued)2. produces correct output for some inputs
conforms to some instructor’s specifications and requirements turned in up to four school days lateturned in with limited supporting documentation
1. rarely produces correct outputconforms to few instructor’s specifications and requirements turned in up to six school days lateturned in with no supporting documentation
21MTH 517 Introduction to Computer Programming
GRADING SHEET
Name: Period:
Lab: Due Date: Date Submitted:
GRADIN G : Coding:
comments indenting whitespace modularization
Design/Documentation:description interfacealgorithm(s)
Interface:directions user-friendly outputobjects
Execution:outputspecs/requirements on timedocumentation
TOTAL:
22MTH 517 Introduction to Computer Programming
APPENDIX CSOLUTIONS TO ASSESSMENTS 1 AND 2
23MTH 517 Introduction to Computer Programming
SAMPLE SOLUTION TO AUTHENTIC ASSESSMENT #1
1. Title:Determine Better Pay
PROGRAM SPECIFICATION AND DESIGN SHEET
2. Description:You are offered two salary options for 10 days of work. Option 1: $100 per dayOption 2: $1.00 the first day, $2.00 the second day, $4.00 the third day, and so on with the amount doubling each dayWrite a program to determine which option pays better.
3. Interface Specifications:Labels: 1. program description
2. explanation of each method3. salary earned by each method4. which method produces better pay
Buttons: 1. run – executes code2. end
4. Special Requirements:For loop to compute method 2
5. Algorithm(s):Set Salary 1 to 100 x 10Set Salary 2 to 0Loop 0 9
Salary 2 = Salary 2 + 2 ^ loop indexCompare Salary 1 to Salary 2Output both salaries and “Method One” or “Method Two”
24MTH 517 Introduction to Computer Programming
Forml l
• NAME:•Period 6'Title: Determine better pay'Due: Today
Pri ate Sub cmdEnd Click(} End
End Sub
Pri ate Sub cmdRun Click(}'DeclareDim Sall
ariablesAs Double 'constant pay rate
Dim Sal2 As Double
Dim index As Single
'changing pay rate'loop ariable
•calculateSall - lOO
first payrate* 10
•calculate second pay rateSal2 - 0For index
Sal2Next index
0 To 9Sal2 + 2 index
'Output salarieslblOutOne - FormatCurrency(Sall,2)lblOutTwo - FormatCurrency(Sal2, 2)
'Determine better salaryIf Sall > Sal2 Then
lblOutThree - ..Method One...Else
lblOutThreeEnd If
End Sub
"Method Two""
23
24MTH 510 Introduction to Computer ProgrammingProgrammingG
Bonnie Sturm
Programming
trmProtitLoss - 1‘Name:‘Date; Today‘Title: Profit and Loss
SAMPLE SOLUTION TO AUTHENTIC ASSESSMENT #2
‘Description: to calculate the profit and loss based on revenue and expenses.‘ will also calculate the percentage each expense is of total‘ expenses.
Private Sub cmdCalculate Clicko‘Calculate total ExpenseslbITotalExp.Caption = Val(txtRent.Text) + Val(txtPayroll.Text) + -Val(txtUtil.Text) + Val(txtSupp.Text) + Val(txt0ther.Text)‘Calculate Profit lblProfit.Caption = Val(txtRev.Text) - Val(lblTotalExp.Caption)‘Calculate LosslblLoss.Caption = -Val(lblProfit.Caption)
‘Calculate Expense Percentages lblRentPerc.Caption = Fix(Val(txtRent.Text) /-
Val(lblTotalExp.Caption) * 100)lblPayrollPerc.Caption = Fix(Val(txtPayroll.Text) /-
Val(lblTotalExp.Caption) * 100)lblUtilPerc.Caption = Fix(Val(txtUtil.Text) /-
Val(lblTotalExp.Caption) * 100)lblSuppPerc.Caption = Fix(Val(txtSupp.Text) /-
Val(lblTotalExp.Caption) * 100)lblOtherPerc.Caption = Fix(Val(txt0ther.Text) /-
Val(lblTotalExp.Caption) * 100)End SubPrivate Sub cmdExit Click()
EndEnd Sub
25MTH 510 Introduction to Computer ProgrammingProgrammingG
Programming
26MTH 510 Introduction to Computer ProgrammingProgrammingG
Programming
AP P E N DI X D
P ROGR AM S P E CI F I CAT I ON AND DE S I GN S H E E T (S tu de n t O ut l i ne of P r ogr am D e si gn )
27MTH 510 Introduction to Computer ProgrammingProgrammingG
Programming
PROGRAM SPECIFICATION AND DESIGN SHEET
1. Title:
2. Description:
3. Interface Specifications:
4. Special Requirements:
5. Algorithm(s):
28MTH 510 Introduction to Computer ProgrammingProgrammingG
Programming
AP P E N DI X E
NEW JERSEY STUDENT LEARNING STANDARDS
29MTH 510 Introduction to Computer ProgrammingProgrammingG
Programming
NEW JERSEY STUDENT LEARNING STANDARDS
4 - Mathematics
8 - Technology
9 - 21st Century Life and Careers
31MTH 510 Introduction to Computer ProgrammingProgrammingG
Programming
APPENDIX F CURRICULUM MODIFICATIONS & ADAPTATIONS
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming
MTH 510 Introduction to Computer Programming