DIVISION OF INFORMATION TECHNOLOGY PROGRAMS AND SYSTEMS SUPPORT FALL 2015 / Spring 2016 CLASS NUMBER/NAME: COSC 2436 PROGRAMMING FUNDAMENTALS III SECTION NUMBER: 5280 CLASS DAYS/HOURS: Period 5-9:15 10:50 (B day) COURSE PREREQUISITE: COSC 1437, AP COMPUTER SCIENCE A, OR INSTRUCTOR CONSENT BASIC SKILLS REQUIREMENTS: READING INSTRUCTOR: EMAIL: MR. ROBERT GLEN MARTIN gmart039@dallasisd.org OFFICE: 311 PHONE: 972 925 6311
COURSE DESCRIPTION COSC 2436 PROGRAMMING FUNDMENTALS III FALL 2012 - SPRING, 2013 Prerequisite: COSC 1437, AP Computer Science A, or instructor consent. Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. This course may use instructional examples and assignments from various programming languages, but will be taught using Java. Coordinating Board Academic Approval Number 1102015707 This course emphasizes programming methodology with a concentration on problem solving and algorithm development. It includes all the topics of AP Computer Science A as well as a more formal and in-depth study of algorithms, data structures, abstraction, and fundamental discrete mathematics. COSC 2436 is a computer science course. This indicates that this course is a disciplined approach to a more broadly conceived subject than computer programming. This is a 4 credit hour course. (3 Lec., 3 Lab.) COURSE MATERIALS Textbooks: Java Methods A and AB, Maria Litvin & Gary Litvin, 2006 (0-9727055-7-0) Mathematical Structures for Computer Science, Judith Gersting, 2007 (0-7167-6864-X) Barron s AP Computer Science Levels A and AB, Roselyn Teukolsky, 2007 (0-7641-3709-3) Your green quick reference packet should be available at all times during class, please bring it. FINANCIAL AID STATEMENT Students who are receiving any form of financial aid should check with the Financial Aid Office prior to withdrawing from classes. Withdrawals may affect your eligibility to receive further aid and could cause you to be in a position of repayment for the current semester. Students who fail to attend or participate after the drop date are also subject to this policy. COSC 2436 Syllabus -- 2 -- RGM - 8/23/2012
DROP PROCEDURE / ATTENDANCE If you are unable to complete the course or courses for which you have registered, it is your responsibility to withdraw formally from the course. You need to speak with and obtain the signature of the course instructor to drop the course. If the instructor is not available, a counselor, advisor, or dean may sign the drop form. Failure to drop will result in a performance grade, usually a grade of "F." THE LAST DAY TO DROP BY 7 P.M. 3/10/16. Students sometimes drop courses when help is available that would enable them to continue. I hope you will discuss your plans with me if you do feel the need to withdraw. There are many alternatives provided for you to complete this class instead of withdrawal. In Case You Are Late or Absent It is your responsibility to get the course notes, handouts, and lab assignments should you miss class or be late. STOP BEFORE YOU DROP For students who enrolled in college level courses for the first time in the fall of 2007, Texas Education Code 51.907 limits the number of courses a student may drop. You may drop no more than six (6) courses during your entire undergraduate career, unless the drop qualifies as an exception. Your campus counseling/advising center will give you more information on the allowable exceptions. Remember that once you have accumulated six non-exempt drops, you cannot drop any other courses with a W. Therefore, please exercise caution when dropping courses in any Texas public institution of higher learning, including all seven of the Dallas County Community Colleges. For more information, you may access: https://www1.dcccd.edu/coursedrops. ACADEMIC ETHICS Any violation of the Student Code of Conduct (as printed in the El Centro College Catalog and available at http://www1.dcccd.edu/catalog/about/standard.cfm) will be penalized accordingly. All matters of academic dishonesty (plagiarism, collusion, fabrication, cheating, etc.) will result in a failing grade for the assignment in question. All violations will be forwarded to the proper college authorities for review. The college may, at its discretion, impose additional penalties on the student including academic probation, suspension, or expulsion. ANY form of disruptive behavior will not be tolerated. COSC 2436 Syllabus -- 3 -- RGM - 8/23/2012
COURSE OUTCOME The student will utilize basic Java syntax, fundamental principles of Object-Oriented design and programming, API documentation, design patterns, and be able to design and code Java applications. Students will be become proficient in both implementing advanced data structures and utilizing the related Java library classes (Java Foundation Classes). The advanced data structures include Two-dimensional Arrays, Linked Lists (singly, doubly, circular), Stacks, Queues, Trees, Heaps, Priority Queues, Sets, Maps, and Graphs. Students will also understand and be able to apply fundamental discrete mathematics including symbolic representation, propositional logic, predicate logic, sets, relations, functions, algorithmic analysis (Big-Oh, Big-Theta, and Big-Omega), and graph theory. COSC 2436 Syllabus -- 4 -- RGM - 8/23/2012
Learning Outcomes Object Oriented Program design Specify the purpose and goals for a problem. Decompose a problem into classes. Define relationships and responsibilities of those classes. Object Oriented Class design Design and implement a set of interacting classes. Choose appropriate advanced data structures and algorithms. Utilize design patterns. Program Implementation Utilize the advanced Java library classes appropriately. Throw runtime exceptions; Utilize try-catch blocks Program Analysis Identify invariants Apply fundamental discrete mathematics Analyze algorithms (Big-, Big-, Big-) Analyze worst case and averagecase time and space efficiency Standard Data Structures Develop and utilize advanced data structures (2D Arrays, Linked Lists (singly, doubly, circular), Stacks, Queues, Trees, Heaps, Priority Queues, Sets, Maps, and Graphs) Standard Algorithms Implement and utilize iterators Implement and utilize hashing Implement and utilize advanced sorting (Quicksort, Heapsort) Evaluation Group discussion and lab assignments Homework, and lab assignments Homework, lab assignments, Homework, group discussion, Homework, group discussion, Homework, group discussion, lab assignments, COSC 2436 Syllabus -- 5 -- RGM - 8/23/2012
COMPUTATION OF FINAL GRADE In order to satisfy the curricular requirements of El Centro Community College and the Dallas Independent School District, student 6-week grading period progress will be evaluated and weighted as follows: Course Category Course Weight Homework 10% Daily Work (Labs, Classroom Work, TREK, TAG-IT) 40% Examinations 50% There will be a semester examination at the end of each semester. The semester examination will comprise 15% of the semester grade. Each of the three 6-week grades will be averaged and will comprise 85% of the semester grade. El Centro Grade Evaluation: A = 90-100 B = 80-89 C = 70-79 D = 60-69 F = 59-Below GRADING POLICY There will generally be at least one in-class examination per chapter of Methods A and AB. Any student may schedule an alternate examination with me to be taken before or after school within 5 school days (not class days) or no later than 10 days after the original test date. Students who received less than a 70 on the first test will receive the higher of the two grades. Students who received a grade greater than or equal to 70 will receive the second grade. This test retake policy does not apply to take-home examinations or end of semester examinations. There will be frequent homework. It is usually graded for effort (completion). The only way to get a 100 is by having your homework complete and on time. Late homework receives a maximum grade as follows: o One class day late 70% maximum grade o More than one class day late 0 maximum grade Your teacher will conduct ongoing formative assessments to keep track of your progress. These formative assessments will generally not be graded. They will be used for early identification of difficulties that you may be having. Extra credit assignments are often available for students who have completed their regularly assigned work. COSC 2436 Syllabus -- 6 -- RGM - 8/23/2012
LAB WORK Because the development of computer programs to solve problems is a skill fundamental to the study of computer science, a large part of the course is built around the development of computer programs or parts of programs that correctly solve a given problem. The course also emphasizes the design issues that make programs understandable, adaptable, and, when appropriate, reusable. At the same time, the development of useful computer programs and program modules is used as a context for introducing other important concepts in computer science, including the development and analysis of algorithms, the development and use of fundamental data structures, and the study of standard algorithms and typical applications. This course will be taught using the Java programming language. Java is the most used language for introductory computer science courses. Students have access to computers in room 311 during class as well as before and after school. These computers contain the Sun Java 8.0 JDK as well as the JCreator and jgrasp development environments, which is the software that we will be using. Students should be able to complete all assignments using TAG computers. However, students may find it useful to be able to do Java programming work on their computers at home. All the Java software we use can be downloaded from the internet for no additional charge. I will also make this software available on CD. CLASSROOM RULES AND EXPECTATIONS The entire TAG family works hard to provide you with an exemplary educational experience. We endeavor to provide a quality environment, instruction, equipment, and facilities. Be respectful of our commitment by honoring the following rules and responsibilities. Help your peers act appropriately as well. Rules Participate in computer science related activities for the entire class period. A maximum of one student initiated pass is allowed each 6-weeks. A doctor s note is required for additional bathroom or water fountain passes. Follow all school rules. I will take-up any and all electronic devices that I see in the classroom or lab during normal school hours. All work you submit must reflect your own understanding. Plagiarism or other cheating will have significant consequences including but not limited to zero grades and parent notification. TAG computers are for school related work only. Do not use them to play games, listen to music, watch videos, view social media, download or install software. Do not deface property, make any configuration changes, use proxies, or do anything to computers that might disrupt others use. Be in your seat with all materials ready when the tardy bell rings. COSC 2436 Syllabus -- 7 -- RGM - 8/23/2012
Do not eat or drink in the classroom or lab unless specifically permitted. Water is permitted except at computers. Wear your ID badge at all times. Responsibilities Participate in class and take notes. Complete your homework on time. Keep a notebook with your syllabus, notes, homework, and other handouts. Don t get behind. Leaving your reading and homework until the last minute is a big mistake. CELL PHONE I will take-up all cell phones that I see in my classroom during normal school hours. Students will have to pick them up in the TAG office after paying the applicable fee. GRIEVANCE PROCEDURES Students are expected to follow established procedures of the appropriate division in handling academic issues, such as grade appeals. El Centro College requires that other complaints and disputes (that cannot be resolved by the persons directly involved) be referred initially to the Ombudsman Office for informal, confidential resolution. Additional grievance procedures and the Student Code of conduct are outlined in the El Centro College Catalog, available in hard copy in advisement or on the web at www.elcentrocollege.edu. RELIGIOUS HOLY DAYS STATEMENT A student who is absent from classes for the observance of a religious holy day shall be allowed to take an examination or complete an assignment scheduled for that day within a reasonable time after the absence if, not later than the fifteenth day after the first day of the semester, the student notified the instructor of each class scheduled on the date that the student would be absent for a religious holy day. A religious holy day means a holy day observed by a religion whose places of worship are exempt from property taxation under Section 11.20, Tax Code. The notice shall be in writing and shall be delivered by the student personally to the instructor, with receipt acknowledged and dated by the instructor or by certified mail, return receipt requested, addressed to the instructor. A student who is excused under this section may not be penalized for the absence, but the instructor may appropriately respond if the student fails to satisfactorily complete the assignment or examination. COSC 2436 Syllabus -- 8 -- RGM - 8/23/2012
COMPUTER USE POLICY Access to school computers is critical in order to do your required work. I will expect absolute adherence to DISD, TAG, and classroom computer use policies. Do not do email, use MySpace, Facebook, Google+, play computer games, listen to music, watch videos, download or install software, make any configuration changes or use proxies. This policy also applies before and after school. SOFTWARE COPYING POLICY Copying computer software without the expressed written permission of the copyright holder may be unlawful and subject to civil and criminal penalties. To protect you, the college and the copyright holder, no software used to complete the lab exercises may be copied by students. DISABILITY ACCOMODATIONS Any student who may need accommodations due to a disability should contact the Disability Services Office, Room A110, phone number (214) 860-2411. COURSE OUTLINE Assignments and due dates are given in class and are posted on Google Classroom. There may be changes during the year, but this outline is presented so you can plan your work. The instructor may alter this course outline at any time due to time constraints, loss of school days, or unforeseen problems with computer equipment, labs, etc. The following is a breakdown of the week-by-week timeline for this course. Weeks 1 5 1 2 Classes and Interfaces Welcome Inheritance; Polymorphism using classes and interfaces; Specify the purpose and goals for a problem; Decompose a problem into classes, define relationships and responsibilities of those classes; Design and implement a set of interacting classes; Design an interface. 3-5 Discrete Mathematics and Algorithm Analysis (Efficiency) Discrete mathematics including symbolic representation, propositional logic, predicate logic, sets, relations, functions, algorithmic analysis (Big-, Big-, Big-). N/A COSC 2436 Syllabus -- 9 -- RGM - 8/23/2012
Weeks 6 11 6 Lists and Iterators Implementation (using ListNode) and use of linked lists (singly, doubly, and circular); Traversals, insertions, deletions, iterators. 7 TREK TAG Trek Singly Linked List N/A 8-9 Lists and Iterators (cont) (cont) 10-11 Stacks and Queues Implementation and use of stacks and queues (traversals, insertions, deletions, iterators); JCF (Java Foundation Classes) Stack and Queue. Browsing Weeks 12 17 12 Recursion Understanding and implementing structural and procedural recursion. 13 Recursion (cont) (cont) 14-16 Binary Search Trees Implementation (using TreeNode) and use of Binary Search Trees (traversals, insertions, deletions, iterators); JCF Set, Map, TreeSet, TreeMap. Morse 17 Semester Finals N/A Recursive Sorted Linked List Weeks 18 24 18-19 Look-up Tables and Hashing Implementation and use of look-up tables and hash tables (traversals, insertions, deletions, iterators); hashcode method; JCF Set, Map, HashSet, HashMap. Search Engine 20-21 Heaps and Priority Queues Implementation and use of heaps and priority queues (traversals, insertions, deletions, iterators); JCF Queue and PriorityQueue. Heapsort COSC 2436 Syllabus -- 10 -- RGM - 8/23/2012
22-24 Design Patterns Implementation of Object Oriented Programming utilizing design patterns (Façade, Singleton, Strategy, Decorator, Composite, Model View Controller). Easy Date Logger BeeperLayer Filter Temperature Weeks 25 31 25-31 Graphs Implementation and use of graphs and graph algorithms (Shortest Path algorithms including Dijkstra s Algorithm, Topological Sorting, Acylic Shortest Path, Critical Path Analysis Package (Dijkstra) Huffman Weeks 32 38 32-33 Graphs (cont) N/A 34-35 AP Examinations N/A 36-37 Big-O Analysis Revisited and Sorting Review Sort Detective Review and analysis of sorts. 38 Semester Finals N/A COSC 2436 Syllabus -- 11 -- RGM - 8/23/2012