COURSE OUTLINE SCHOOL: School of Engineering Technology and Applied Science DEPARTMENT: Information and Communication Engineering Technology (ICET) PROGRAM: COURSE TITLE: Bachelor of Applied Information Sciences- Software Systems: Design, Development and Management Software Development: Applications Programming II COURSE CODE: SWS-210 TOTAL COURSE HOURS: 60 hrs PRE-REQUISITES/CO-REQUISITES: SWS-120 COURSE ELIGIBILITY FOR PRIOR LEARNING ASSESSMENT AND RECOGNITION (PLAR): NO ORIGINATED BY: ILIA NIKA REVISED BY: ILIA NIKA DATE: August 2007 APPROVED BY: Semester: Fall 2007 Chairperson/Dean Students should keep all course outlines for each course taken at Centennial College. These may be used to apply for transfer of credit to other educational institutions. A fee may be charged for additional or replacement copies. 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page 1
Course Title: Software Development: Applications Programming II CENTENNIAL COLLEGE Course Code: SWS-210 COURSE DESCRIPTION: Building on the object-oriented concepts covered in SWS-120, this course exposes the students to algorithms and data structures. Students will explore the classical data structures and will be able to understand, analyze, and intelligently select and use the most appropriate data structures to solve a given problem. Coursework emphasizes the behavior and best- and worst-case performance characteristics of the various data structures. The language of instruction is Java. COURSE LEARNING OUTCOMES: Upon successfully completing this course, the student will be able to: 1. Demonstrate good understanding of object-oriented design and programming using Java. 2. Demonstrate good understanding of generic types in Java. 3. Demonstrate good understanding of various mathematical tools needed to analyze the performance of the algorithms and data structures. 4. Design, code and test Java programs that use linear data structures, such as lists, stacks, and queues. 5. Design, code and test Java programs that use hierarchical data structures, such as binary trees, binary search trees, and heaps. 6. Design, code and test Java programs that use set and graph data structures. 7. Demonstrate good understanding of basic algorithms, such as linear search, binary search, standard sorting algorithms, hashing, and tree traversal. ESSENTIAL EMPLOYABILITY SKILLS (EES): This course supports the students ability to: Communicate clearly, concisely, and correctly in the written, spoken, and visual form that fulfills the purpose and meets the needs of the audience. Respond to written, spoken, or visual messages in a manner that ensures effective communication. Apply a systematic approach to solve problems. Locate, select, organize, and document information using appropriate technology and information systems. Analyze, evaluate, and apply relevant information from a variety of sources. Show respect for the diverse opinions, values, belief systems, and contributions of others. Interact with others in groups or teams in ways that contribute to effective working relationships and the achievement of goals. Manage the use of time and other resources to complete projects. Take responsibility for one s own actions, decisions, and consequences. PRIOR LEARNING ASSESSMENT AND RECOGNITION PROCESS(ES): This course is not eligible for PLAR. 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page 2
Course Title: Software Development: Applications Programming II CENTENNIAL COLLEGE Course Code: SWS-210 EVALUATION AND GRADING SYSTEM: In order to pass this course a student must achieve: a) A minimum of 50% on the entire course, based on the weighted grading system summarized below, and b) A minimum mark of 50% in the test component of the course, and c) a minimum of 50% on the Comprehensive Final Test Assignments, Quizzes, Class Participation, etc. 30% Mid-Term Test 30% Comprehensive Final Test 40% 100% STUDENT ACCOMMODATION: All students have the right to study in an environment that is free from discrimination and/or harassment. It is College Policy to provide accommodation based on grounds defined in the Ontario Human Rights Code. Accommodation may include changes or modifications to standard practices. Students with disabilities who require academic accommodations must register with the Centre for Student with Disabilities. Please see the Centre for Students with Disabilities for details. Students requiring accommodation based on human rights grounds should talk with their professors as early as possible. Details are available on the Centennial College website (www.centennialcollege.ca ). If students are unable to write an examination due to a medical problem or unforeseen family problems, they should immediately contact their professor or program Chair for advice. In exceptional and well documented circumstances (e.g. unexpected family problems, serious illness, or death of a close family member), students should be able to write a make-up examination to replace an examination missed. Text and Other Instructional/ Learning Materials: Required Text: Modern Software Development using Java, second edition, Paul T. Tymann & G. Michael Schneider, ISBN: 978-1-4239-0123-5, published by Thomson, Course Technology, 2008. Reference Books (Purchase not required): Data Structures in Java, Simon Gray, ISBN: 0-321-39279-5, published by Addison Wesley, 2007. Data Structures And Algorithms in Java, Michael T. Goodrich, Roberto Tamassia, ISBN: 978-0-471-73884-8, published by Wiley, 2005. Data Structures using Java, Malik D.S., ISBN: 978-0-619-15950-4, published by Course Technology, 2003. USE OF DICTIONARIES Dictionaries may be used in tests and examinations, or in portions of tests and examinations, as long as they are non-electronic (not capable of storing information) and hard copy (reviewed by the invigilator to ensure notes are not incorporated that would affect test or examination integrity). 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page 3
Course Title: Software Development: Applications Programming II CENTENNIAL COLLEGE Course Code: SWS-210 College Policies POLICY STATEMENTS The following statements are selected from Centennial College policies approved by the Board of Governors. Student Responsibilities Students are expected to know the contents of the course outline and to discuss with the professor any areas where clarification is required. Students should keep all course outlines for each course taken at Centennial College. These may be used to apply for transfer of credit to other educational institutions. A fee may be charged for additional or replacement copies. Other Policies Students should familiarize themselves with all College Policies that cover students rights, responsibilities, and the Academic Appeal process. For further information, consult the Academic Matters Section in the full-time and Continuing Education calendars. The Academic Appeal Application form is available from any Enrolment Services Office. Proof of Student Status Students must produce official photo identification at any time during the semester when requested to do so by any professor. (The official piece is the Centennial Student Card.) Continuing Education students do not have Centennial Student Cards, and so they may use other forms of photo identification, such as a driver s license, health card, or other government-issued photo identification. Final Examinations When writing a test or examination, students must put their official photo-id cards in full view for review by the invigilator. Students who do not have official photo-id will be permitted to write the examination with a substitute photo-id, but they will be required to produce photo-id at the program or department office within 24 hours or the next business day following the examination, or else the examination results will be void. More Final Examination Policies are available at http://my.centennialcollege.ca. Academic Progression Policy for Diploma and Certificate Programs: College Academic Standings will be applied. Please see Academic Policies and Procedures, Full-Time Calendar. Faculty Consultation Professors are available to see students outside of class time. Students can contact professors via voice mail, email, or through their program or department office. Information regarding how to contact teachers will be provided at the beginning of the course and is also available in the program or department office. Human Rights Statement It is the policy of the College that all programs will strive for a learning, teaching, and working environment that promotes inclusion, understanding, and respect for all students and employees, consistent with the Ontario Human Rights Code and Centennial College's Statement of Diversity. 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page 4
Course Title: Software Development: Applications Programming I I Centennial College Course Code: SWS-210 Note: This outline contains the essential elements that must be covered in the course, but the sequence and time allocated to topics is suggested, and may be altered by the teaching professor. In addition, the teaching professor may alter the timing of assignments. Week Topic/Content Readings Instructional Objectives 1 Introduction to Java Programming Language 2 3 Object Oriented Programming using Java Handout, Chapter 1 Chapter 2, 3 understanding of Java programming environment and Java applications. The anatomy of Java applications is examined. The student should be able to write simple Java applications using Eclipse IDE. Upon the completion of this work the student will have a good understanding of Java classes, interfaces, inheritance and polymorphism. The student will be able to write Java applications that use inheritance and polymorphism. Generics in Java Chapter 3 Upon the completion of this work the student will have a good understanding of generic types. The student will be able to parameterize the types used in a class in the same way as formal parameters are used in methods. Instructional Strategies/ Tests and Assignments Assignment 1: Using Inheritance and Polymorphism in Java 4 The analysis of Algorithms Chapter 5 understanding of mathematical tools needed to analyse the performance of the algorithms and data structures. Students will explore the asymptotic analyses technique for studying the efficiency of algorithms. They will analyse sequential search, binary search, and bubble sort algorithms. 5 Recursion and the Analyses of Recursive Algorithms Chapter 5 understanding of the recursive algorithm. The student will be able to analyse recursive algorithms using 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page No. 5
Course Title: Software Development: Applications Programming I I Centennial College Course Code: SWS-210 6 Linear data structures and Lists Chapter 6 the recurrence relation method and perform a recursive implementation of binary search and merge sort algorithms. understanding of lists. The student should be capable of implementing an array-based list, a reference-based list, doubly linked lists and circular lists. Assignment 2: Implementing and analysing binary search and sort algorithms 7 Stacks and Queues 8 Midterm Exam Chapter 6 understanding of the stack and queue data structures. The student should be able to implement array-based and linked list-based stacks and queues. Assignment 3: Using linked lists Assignment 4: Using stacks and queues 9 Hierarchical data structures and Trees 10 Binary search trees and heaps 11 Set and Map data structures Chapter 7 Chapter 7 Chapter 8 understanding of the trees and binary trees. Anatomy of a tree will be fully examined. The student should be able to implement operations on binary trees, such as tree traversal, etc. Both array-based and reference based implementation of binary trees will be examined. Upon the completion of this work the learner shall be capable of using binary search trees for carrying out search operations. The student will learn about balanced binary search trees, redblack trees and heaps. Implementation of heaps using one-dimensional arrays and heap sort will be fully examined. understanding of sets and maps. Assignment 5: Using Binary trees Assignment 5: Using Binary search trees and heaps 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page No. 6
Course Title: Software Development: Applications Programming I I Centennial College Course Code: SWS-210 The student should be capable of implementing array-based and link list based maps. Hashing and implementation of hashing using open addressing will be explored. 12 Graph data structure Chapter 8 Upon the completion of this work the learner shall be capable of writing code that handles various operations on graphs. The student will be introduced to graph traversal operation and the shortest path algorithm. Assignment 6: Maps Assignment 7: Graphs 13 Java Collection Framework Chapter 9 understanding of the JCF. The student will become familiar with JCF interfaces, such as Collection, Set, List, Map, as well as implementation classes, such as HashSet, TreeSet, ArrayList, LinkedList, and HashMap. Assignment 8: Using JCF classes and interfaces 14 Final review 15 FINAL EXAM 9/6/2007 THIS COURSE ADHERES TO ALL COLLEGE POLICIES (See College Calendar) Page No. 7