2014-2015 Course Syllabus Introductory Programming Teacher: Mr. Marty Lawless Room Number: Hongqiao Campus A305 Office Hours: Mondays - Friday 7:30-3:30 E-Mail Address: mlawless@scischina.org Course Website: https://teachersh.scis-his.net/mlawless School Website: www.scischina.org Course Description Introductory Programming introduces students to the fundamentals of software programming. Students will learn to create responsive applications and understand the foundations of software engineering. The course uses the Java programming language and will involve the student creating a variety of applications including graphical ones. Learning Resources JAVA TUTORIAL, Simply Easy Learning by tutorialspoint.com, various websites discussing Java implementation techniques Student Supplies Students are expected to have the following each class: Laptop, writing utensil, productive attitude. Students are also expected to bring any materials specific to the unit of study to class as per teacher's instructions. Classroom Expectations Homework/Late Work/Missing Work/Absences Homework: Homework is given as a means to support the learning happening in the classroom. The amount of homework will vary depending on the unit of study as well as each student's ability to utilize class time efficiently. Late Work/Missing Work: Students should hand in assignments on the date they are due. In the event an assignment is turned in late, the student may turn it in within twenty-four hours for a one grade deduction. Work will not be accepted after that and missing work (unless there are exceptional circumstances) will be assessed a grade of zero. Absences: Work missed during an unexcused absence will result in a zero grade. After an excused absence, it is the student’s responsibility to find out what s/he missed and turn it in according to SCIS policy found in the student handbook. Plagiarism: Plagiarism occurs when one uses the work or ideas of another without giving the source credit, or when the work or ideas of another are not put into the student’s own words and style. Please refer to the student handbook for greater detail. Any student who plagiarizes an assignment will be given a zero for that assignment Miscellaneous Eating in Class: Students may eat healthy snacks and have water bottles in class provided they are not disruptive to their peers, themselves, or the teacher. Extra Help: Should a student need extra help, s/he is encouraged to make an appointment for a meeting with me either before or after school. Classroom Norms (as determined by the class): The following behaviors have been drafted and voted on by the student body as the norm to be expected by all members of the classroom. We will continue to improve beyond the first attempt of an idea. We will stay positive and energetic. We will maintain academic integrity. We will respect others and the materials with which we work. We will help others when they need it. Assessment 30% - Summative Tests: Each semester the student will take at least 3 tests which will cover Computer Science terminology and present free response questions in which the student will be expected to solve a problem presented. 20% - Formative Quizzes: Each cycle a short quiz reviewing topics assigned is given. Small Programming Exercises: Students will be given small, targeted programming exercises to practice and develop skills and experience with concepts introduced. In these, students will be encouraged to collaborate and help each other succeed. 30% - Labs: Lab Assignment: Each major unit will involve one or more larger lab assignments in which students will use the concepts taught in a larger program. Students will work on these lab assignments in class and individually. The teacher will be available to give limited feedback. 20% - Final Project: Final Project: Each semester a pair of students will develop a more complicated and larger application than the pre-designed labs. Year Plan 1. Introduction to Programming a. What is a Programming Language b. How Java Works c. Setting up student computers for programming Java Application 2. Basic Input & Output & Variables a. Basic Input & Output b. The concept of an Object c. Variables 3. Control Structures a. If Statements b. Looping 4. Basic Graphics a. Drawing Items on the Screen b. Combined with Loops 5. Introduction to Objects a. Have-a & Is-a relationships b. Methods & Variables c. Creating “Geometric Shape” objects 6. Semester 1 Project – The Pole Position Racecar a. Students develop a racecar object that will animate across the screen controlled by the keyboard and potentially crash into obstacles. 7. Arrays & The concept of a Data Structure a. Introduction to Arrays b. Arrays with Graphics & Loops c. Reading information from a file 8. Recursion a. Introduction to Searching b. Introduction to Sorting c. Knight’s Pass Lab 9. Animation a. Animation Concepts b. Using Arrays with Animation c. “Sprite” objects 10. Object Oriented Graphic Design a. Designing reusable objects b. Inheritance in Animation c. Space Invaders Project i. Students will create a “Space Invaders” style game. 11. Advanced Topics a. Android Applications – Introduction b. TBD 12. Final Project – Animated Computer Game Acknowledgement of Receipt and Understanding Students will receive an Acknowledgement Receipt via their school email account. It is each student's responsibility to read the contents of that email and reply according to the instructions contained therein.