Course Syllabus JAVA Programming 2015 Fall First semester course Instructor: Email: Mrs. Susie Cunningham susie.a.cunningham@gmail.com or scunningham@bsu.edu Office Hours Monday Noon – 3:00 p.m. Wednesday Noon – 3:00 p.m. Friday 1:00 – 3:00 p.m. Other times for Office Hours may be arranged by appointment. Description: This course uses a high level, object oriented programming language. Students will learn syntax and the development of algorithms. The emphasis is on developing problem-solving skills and programming techniques. This course is designed for students with a computer programming background who desire a more challenging programming course. Semester 1 topics will include defining variables, primitive data types, objects, methods, strings, if/else conditionals, loops (for, while, and do while), one and two dimensional arrays, arraylists, inheritance, interfaces, abstract classes, basic input/output files and using applets, error handling, testing and debugging. Semester 2 topics will include using data structures such as linked lists, stacks, queues, binary trees, sequential and binary searching, sorting, traversing trees, hashing and Big O Notation. Laboratory activities include the required NEW AP Computer Science A lab exercises. A new fourth day has been added to the AP Computer Science A course to allow students to work on projects/labs in class. Successful completion of this course will prepare the student for the Advanced Placement Computer Science A exam. *Ball State University offers 4 college credit hours in CS121 (semester 2) to students who complete this course and next semester. Refer to the Dual Credit section of course catalog for details on enrollment and fees. Text: JAVA Software Solutions for AP Computer Science, Lewis, Loftus, and Cocking, Addison Wesley, 2004. JAVA Programming Complete Concepts and Techniques, Shelly, Cashman, and Thomson Learning, 2001. Starks, JAVA Concepts, Horstmann, Wiley, 2005. Barron’s How to Prepare for the AP Computer Science Advanced Placement Java Version, Teukolsky, Barron’s Educational Series, Inc., 2003. Examination The NEW College Board’s AP Computer Science A lab exercises in Java Course Methodology: Course methodology will include hands-on and group activities, lectures, outside readings, classroom discussion, and programming projects. Student Evaluation: There will be 3 tests, 13 homework assignments (including Lab Homework), 3 sets Sample Test Questions, and a major final programming project. Method of Grading: Grades will be based on a point system. Points Tests 1 - 3 Final Project Practice Questions Homework Assignments Total Points 300 100 30 120 550 Accumulated totals are then distributed into letter grades as follows: A (93% - 100%) A(90% - 92.9%) B+ (87% - 89.9%) B (84% - 86.9%) B(80% - 83.9%) C+ (77% - 79.9%) C (73% - 76.9%) C(70% - 72.9%) D* (69% and below) Classroom Policies: Homework Assignments: Homework assignments must be turned in by the due date. Assignments may be turned in earlier than the due date. Any late homework will result in a reduced grade. (25% off for each day late.) Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday all count as days. A timeframe for a day constitutes from 12:01 a.m. – Midnight. Absence prior to due Date: Missing class (excused or not) prior to a test, or other due dates for homework assignments does not exempt the student from preparing and taking the test and/or submitting the required homework assignment on the due date. Exceptions may be granted in advance of class time and must be discussed with the instructor. Tardiness: Students arriving more than 5 minutes late to class are marked tardy. Academic Dishonesty: (Refer to the Indiana Academy Handbook.) In the event, a student turns in a computer program for a homework assignment or test that was not originally written by the student, the homework or test will fall under the category of plagiarism. This will be considered a serious offense. Students will be allowed to ask for help from other students if they are working on a preannounce group project or the student needs assistance finding a syntax error or minor errors. If a student does use code in a programming homework assignment or project that was obtained from the Internet, another programming source, or writing code that is similar in nature, the student must put in a comment in the computer program with the source of where the code was obtained, otherwise this will be considered under the category of plagiarism. Furthermore, if a student writes a computer program for another student, the student “knowingly permitting one’s work to be submitted by another person as if it were the submitter’s original work” will also be penalized. Penalties will be assessed in accordance to the Indiana Academy Handbook. Work on classroom homework during class time: Unless instructed otherwise, students need to be working on items relating to the classroom homework/topic during the class time. 5 points will be deducted from the student’s total score for each violation. Examples of violations would include the following: Chatting online, Instant Messenging, sending email during class, Facebooking and playing games that are not related to class work, etc. Class Activity and Assignments Java Programming Course Week of August 12, 2015: Students will be introduced to information based systems, history of computers, and language translation. Students will open personal computers, take out basic computer parts and put personal computers back together. During this hands-on process, students will learn how basic components and how they interact. Students will begin to work with data on a binary level (base 2 and hexadecimal) and will convert data to ASCII and EBCDIC formats. HW #1 (10 pts.) – Convert decimal to ASCII and vice versa. Students will be provided Java code and through a multiple choice matching will need to identify the various parts of a Java program. Due: August 19, 2015 (by midnight) Complete reading assignment: Chapters #1 - 2 (LLC) Students will actually begin programming basics and learn how to use variables, objects, primitive data, basic concepts of methods, “is a”-“has a” relationships and graphics using object-oriented programming. Students will be introduced to how the Java classes are imported and where the actual classes and methods are located in the corresponding directories on a personal computer. Students will actually write a basic Java program. HW #2 (5 pts.) – Program first Java program. Students will program an ASCII Art picture. Due: August 19, 2015 (by midnight) Complete reading assignment: Chapters #3 - 4 (LLC) Week of August 19, 2015: Students will be introduced to the different Java components, loops (for, while, and do/while), if/else and switch statements, math functions, the random generator and methods. The minimum and maximum values will be discussed. HW #3 (15 pts.) – Students will program the dice game Bunco. Students will be expected to incorporate the different Java components, loops (for, while, and do/while), if/else statements, math functions, and create their own methods in the homework project. Due: August 26, 2015 (by midnight) Complete reading assignment: Chapter #3 (LLC) Chapters #6 & 7 (Horstmann) (With all programming projects, students will be expected to check for invalid data input and handle c orresponding exceptions. Students will need to try and throw exceptions. Students are challenged to see if they can turn in a project for a first pass that the instructor cannot break through a data entry. Also, students are encouraged to test each other’s projects to find computer bugs or logic errors.) Week of August 26, 2015: Students will be introduced to passing variables and objects to methods, using global variables (along with a discussion of the advantages and disadvantages of using global variables), and the static modifier. Students will study how information is physically stored in memory and on a hard drive. Students will be introduced to inheritance and polymorphorism, class hierarchies and creating their own classes. Students will be introduced to a discussion about maintaining computer programs. Also, topics of ethics and how students would handle different business situations will be presented. HW #4 (15 pts.) – Students will program a Virtual Pet program. A group discussion will be encouraged as to what a general pet would do (i.e. eats, sleeps, etc.). From this discussion a general Pet class is created with suggested methods. Then, the students will need to discuss what kind of pet (dog, cat, cow, etc.) to create, the specific actions their pet will do and which ones can be used (inherited) from the main Pet class. Due: September 2, 2015 Complete reading assignment: Chapter #4, Chapter #5 and Chapter #7 (LLC) Chapter #9 (Horstmann) Chapter #13 (Horstmann) Chapter #15 (Horstmann) Practice Questions Set #1 (10 pts.) Week of September 2, 2015: Students will be given a set of AP Questions based on the concepts that have been presented. Due: September 2, 2015 (by midnight) Will go over answers for Practice Questions Set #1. – September 2, 2015 Will review for first test. Week of September 9, 2015: Test #1 – September 9, 2015 - Multiple Choice Section (100 pts.) Weeks of September 16, 2015: Students will learn how to read and write to a file and work with string manipulation. The topic of encryption will be discussed and using csv files. Students will also learn about sequential and binary searching techniques. A topic of converting data files from one computer system to another computer system will be presented. HW #5 (10 pts.) – Students will be asked to design their own encryption algorithm. The students will then write a program to encrypt a login and password. Save the encrypted login and password to a csv file. Write another program to have a user type in a login and password. This login and password will then be compared to the decrypted login and password from the csv file. Due: September 23, 2015 (by midnight) Complete reading assignment: Chapter #16 (Horstmann) Weeks of September 23rd and 30th , 2015: Students will be introduced to Arrays and ArrayLists and iteration. Students will be introduced to how items are stored, searched, and deleted in an actual memory location. Students will begin the first NEW AP Computer Science A lab exercises for Magpie. Activities #1 – 3. HW #6 (10 pts.) – Students will create a Yahtzee program using the concept of Arrays. Due: September 30, 2015 (by midnight) HW #7 (5 pts.) – Students will take HW #9 and reprogram the Yahtzee program using ArrayLists. Due: October 7, 2015 (by midnight) HW #8 (5 pts.) – Complete Magpie Student Activity #4. Due: October 7, 2015 Week of October 7, 2015: Questions Set #2 (10 pts.) Students will be given a set of practice Questions based on the concepts that have been presented. Due: October 7, 2015 (by midnight) Will go over answers for Practice Set Questions Set #2. Students will work on the second NEW AP Computer Science A lab exercises for the Picture Lab. Activities A1 – A5. Weeks of October 14th and 21st, 2015: Students will be introduced to using and creating interfaces and abstract classes. Students will be asked investigate the differences between interfaces and abstract classes and when would be the best to use if different system designs. Polygons and polylines using graphics and more advanced GUI features using mouse events. HW #9 (10 pts.) – Students will be asked to create an object like a universal remote control using the interface and abstract class concepts. Due: October 21, 2015 (by midnight) HW #10 (10 pts.) – Students will need to create/program a graphical picture and animate one of the objects in the picture. Students will be asked to visit the Sun-Java website and will learn how to discover how to use methods through their own initiative using the various graphic methods for applets. Due: October 28, 2015 (by midnight) HW #11 (5 pts.) - Complete Picture Lab Student Activity #6 and #7. Due: October 28, 2015 A review of material will be made at this point. Complete reading assignment: Chapter #6 (LLC) Week of October 28, 2015: Test #2 – October 28, 2015 (Multiple Choice section) (100 pts. total) Week of November 4, 2015: Students will learn be introduced to sorting (Bubble, Selection, Insertion, Mergesort, and Quicksort) and the Big-O Notation. Students will manually sort themselves in various configurations before learning the actual computer sorting algorithms. Students will then come up with various ways of sorting themselves. Then, based on their different ideas the actual labels for bubble, selection, etc. will be given to their ideas. Through various experiments in a classroom settings, students will be asked to come to various conclusions. Students will compare their conclusions with the Big-O Notation results. Students will work on the third NEW AP Computer Science A lab exercises for the Elevens Lab. Activities A1 – A11. Students will be introduced to recursion. Students will try out various “mystery” recursion questions. HW #12 (10 pts.) – Students will be asked to program various sequences for counting boxes. Due: November 11, 2015 (by midnight) Complete reading assignment: Chapter #6 – sorting section (LLC) Chapter #19 (Horstmann) Additional handouts – Wiki for sorting and other Internet sites which visually demonstrate the various sorting notations. Week of November 11, 2015: Practice Questions Set #3 (10 pts.) Students will be given a set of practice Questions based on the concepts that have been presented. This set of questions will include the “mystery” questions. Due: November 11, 2015 Will go over answers for practice Questions Set #3. A review of material will be made at this point. Complete reading assignment: Chapter #8 (LLC) Chapter #18 (Horstmann) Week of November 18, 2015: Test #3 – November 18, 2015 (Multiple Choice section) (100 pts. total) Weeks of November 4 through December 8, 2015: Students will work on programming major project for class. Final Programming project for class will be presented. Students will need to make a formal presentation. All final project are due by December 9, 2015!!