CMPE2300 – Lab01 - Defrag-o-maticIn this lab you will create a simulator to implement a file system defragmentation. Prior toSSDs, file systems benefited from ensuring files that were comprised of m

COURSE OUTLINE 2018/2019 COURSE NAME: Object-Oriented Programming COURSE CODE: CMPE2300 COURSE DESCRIPTION Creating sophisticated programs requires advanced techniques in programming. This course provides detailed coverage of the C#implementation of object oriented programming. Students will create extensible class hierarchies that employ inheritance,polymorphism, and interfaces. Topics such as delegates, threading, and reflection will be explored in the application of moreadvanced algorithms. Course Credits: 6.00 Pre-requisites: CMPE1600, CMPE1700 Equivalent Courses: CNT2300 LEARNING OUTCOMES OUTCOME Upon successful completion of this course, you will be able to 1 Design and code C# classes using multiple assemblies.

The following concepts, skills, and issues are used to support this Outcome: Complete applications using multiple assorted external assemblies integrated with internal application classes.

• Create solutions that contain separate projects as type libraries.• 2 Incorporate static and instance properties, methods and members in a C# class.

The following concepts, skills, and issues are used to support this Outcome: Implement proper canonical form with respect to member access protection and form.• 3 Design and implement interfaces for C# classes.

The following concepts, skills, and issues are used to support this Outcome: Create class hierarchies that incorporate user-defined interface types.• 4 Design and implement polymorphic types that participate in inheritance hierarchies.

The following concepts, skills, and issues are used to support this Outcome: Using abstract, virtual, and override keywords, correctly implement complex class hierarchies leveraging polymorphic behaviour.

• Create class hierarchies that contain abstract classes.• A NAIT COMMUNITY ENGAGED IN ALL THINGS SUSTAINABLE 1 | CMPE2300 5 Design and implement predicates and extensions with reference to framework interfaces and generics.

The following concepts, skills, and issues are used to support this Outcome: Using the currently available .NET generic containers, implement data storage management using extension methods ( with available delegate types ) • Create and implement lambda expressions in place of explicit predicate, function, filter and selection method references.

• Implement a code block as a lambda expression, anonymous method, or full method appropriately when applied to a given situation.

• 6 Design and implement multi-threaded projects in C#.

The following concepts, skills, and issues are used to support this Outcome: Create worker methods using explicit Thread instances.• Implement inter-thread communication using flags, delegates and semaphore constructs.• Implement threads appropriately to balance performance and resource utilization.• STUDENT EVALUATION OUTCOME ACTIVITY DESCRIPTION MARK DISTRIBUTION 1, 2, 3, 4, 5 and 6 Assignments 10% 1, 2, 3, 4, 5 and 6 Labs 20% 1, 2, 3, 4, 5 and 6 Practical Exams 40% 1, 2, 3, 4, 5 and 6 Theory Exams 30% TOTAL 100% COURSE COMPLETION REQUIREMENTS No less than 50% is required to successfully complete this course.

STUDENT EQUIPMENT AND SUPPLIES Please refer to course syllabus.

DELIVERY METHOD This course will be taught using a variety of delivery methods which may include face-to-face, online, or blended teaching platforms. Collaborative exercises/assignments, seminars, labs, discussion, audio/visual presentations, case studies, and other such activities may be used to support learning. A NAIT COMMUNITY ENGAGED IN ALL THINGS SUSTAINABLE 2 | CMPE2300 ADDITIONAL INFORMATION Students are expected to spend a significant amount of time out-of-class working on lab material.

STUDENT RESPONSIBILITY Enrolment at NAIT assumes that the student will become a responsible citizen of the Institute. As such, each student will display a positive work ethic, assist in the preservation of Institute property, and assume responsibility for his/her education by researching academic requirements and policies; demonstrating courtesy and respect toward others; and respecting expectations concerning attendance, assignments, deadlines, and appointments.

EQUITY STATEMENT NAIT is committed to providing an environment of equality and respect for all people within the learning community, and toeducating faculty, staff, and students in developing inclusive teaching and learning contexts that are welcoming to all.

Leadership Review Date: June 05, 2017 Curriculum Committee Review Date: June 05, 2017 Changes to This Course Outline: Every effort has been made to ensure that information in this course outline is accurate at the time of publication. The Institutereserves the right to change courses if it becomes necessary so that course content remains relevant. In such cases, the instructor will give the students clear andtimely notice of the changes.

All Rights Reserved: No part of this course outline may be reproduced in any form or resold without written permission from NAIT. Copyright 2017. A NAIT COMMUNITY ENGAGED IN ALL THINGS SUSTAINABLE 3 | CMPE2300