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: MR. ROBERT GLEN MARTIN EMAIL: [email protected]
OFFICE: 311
COSC 2436
PROGRAMMING FUNDMENTALS III
FALL 2012 - SPRING, 2013
COURSE DESCRIPTION
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.
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.
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,
Learning Outcomes Evaluation Object Oriented Program design
Specify the purpose and goals for a problem.
Decompose a problem into classes. Define relationships and responsibilities of those classes.
Group discussion and lab assignments
Homework, group discussion, lab assignments, objective tests
Object Oriented Class design
Design and implement a set of interacting classes.
Choose appropriate advanced data structures and algorithms.
Utilize design patterns.
Homework, and lab assignments
Homework, group discussion, lab assignments, objective tests
Program Implementation
Utilize the advanced Java library classes appropriately.
Throw runtime exceptions; Utilize try-catch blocks
Homework, group discussion, lab assignments, objective tests
Homework, lab assignments, objective tests
Program Analysis
Identify invariants
Apply fundamental discrete mathematics
Analyze algorithms (Big-, Big-, Big-)
Analyze worst case and average-case time and space efficiency
Homework, group discussion, objective tests Homework, group discussion, objective tests Homework, group discussion, lab assignments,
objective tests
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)
Homework, group discussion, lab assignments, objective tests
Standard Algorithms
Implement and utilize iterators Implement and utilize hashing Implement and utilize advanced
sorting (Quicksort, Heapsort)
Homework, group discussion, lab assignments, objective tests
Homework, group discussion, lab assignments, objective tests
Homework, group discussion, lab assignments, objective tests
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:
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.
Course Category Course Weight
Homework 10% Daily Work (Labs, Classroom Work, TREK, TAG-IT) 40%
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.
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.
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
Weeks Topic Lab Assignment
1–2 Classes and Interfaces
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.
Welcome
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-).
Weeks 6–11
Weeks Topic Lab Assignment
6 Lists and Iterators
Implementation (using ListNode) and use of linked lists (singly, doubly, and circular); Traversals, insertions, deletions, iterators. Singly Linked List 7 TREK TAG Trek 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
Weeks Topic Lab Assignment
12 Recursion
Understanding and implementing structural and procedural recursion.
Recursive Sorted Linked List 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
Weeks 18–24
Weeks Topic Lab Assignment
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.
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
Weeks Topic Lab Assignment
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
Weeks Topic Lab Assignment
32-33 Graphs (cont) N/A
34-35 AP Examinations N/A
36-37 Big-O Analysis Revisited and Sorting Review
Review and analysis of sorts.
Sort Detective 38 Semester Finals N/A