COMP 352, Summer 2017 Data Structures and Algorithms T/H, 18:30-21:00, FG C080 May 3rd till June 19th

Similar documents
Data Structures and Algorithms

Course Content Concepts

CS 101 Computer Science I Fall Instructor Muller. Syllabus

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

GACE Computer Science Assessment Test at a Glance

WSU Five-Year Program Review Self-Study Cover Page

IDS 240 Interdisciplinary Research Methods

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

Designing a Computer to Play Nim: A Mini-Capstone Project in Digital Design I

SYLLABUS. EC 322 Intermediate Macroeconomics Fall 2012

Android App Development for Beginners

Office Hours: Day Time Location TR 12:00pm - 2:00pm Main Campus Carl DeSantis Building 5136

Strategic Management (MBA 800-AE) Fall 2010

New Venture Financing

Foothill College Summer 2016

Syllabus Foundations of Finance Summer 2014 FINC-UB

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

FINN FINANCIAL MANAGEMENT Spring 2014

ENEE 302h: Digital Electronics, Fall 2005 Prof. Bruce Jacob

CHMB16H3 TECHNIQUES IN ANALYTICAL CHEMISTRY

Syllabus for ART 365 Digital Photography 3 Credit Hours Spring 2013

MAT 122 Intermediate Algebra Syllabus Summer 2016


Department of Anthropology ANTH 1027A/001: Introduction to Linguistics Dr. Olga Kharytonava Course Outline Fall 2017

Mktg 315 Marketing Research Spring 2015 Sec. 003 W 6:00-8:45 p.m. MBEB 1110

University of Waterloo School of Accountancy. AFM 102: Introductory Management Accounting. Fall Term 2004: Section 4

Texas A&M University-Central Texas CISK Comprehensive Networking C_SK Computer Networks Monday/Wednesday 5.

Physics XL 6B Reg# # Units: 5. Office Hour: Tuesday 5 pm to 7:30 pm; Wednesday 5 pm to 6:15 pm

BA 130 Introduction to International Business

ACTL5103 Stochastic Modelling For Actuaries. Course Outline Semester 2, 2014

BIODIVERSITY: CAUSES, CONSEQUENCES, AND CONSERVATION

Phone: Office Hours: 10:00-11:30 a.m. Mondays & Wednesdays

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS. POFI 1301: COMPUTER APPLICATIONS I (File Management/PowerPoint/Word/Excel)

Page 1 of 8 REQUIRED MATERIALS:

Class Mondays & Wednesdays 11:00 am - 12:15 pm Rowe 161. Office Mondays 9:30 am - 10:30 am, Friday 352-B (3 rd floor) or by appointment

(Sub)Gradient Descent

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

We are strong in research and particularly noted in software engineering, information security and privacy, and humane gaming.

Syllabus Fall 2014 Earth Science 130: Introduction to Oceanography

Software Maintenance

Class Tuesdays & Thursdays 12:30-1:45 pm Friday 107. Office Tuesdays 9:30 am - 10:30 am, Friday 352-B (3 rd floor) or by appointment

BUSI 2504 Business Finance I Spring 2014, Section A

On-Line Data Analytics

Computer Science 1015F ~ 2016 ~ Notes to Students

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

Course Policies and Syllabus BUL3130 The Legal, Ethical, and Social Aspects of Business Syllabus Spring A 2017 ONLINE

SAMPLE. PJM410: Assessing and Managing Risk. Course Description and Outcomes. Participation & Attendance. Credit Hours: 3

Astronomy/Physics 1404 Introductory Astronomy II Course Syllabus

Introduction to Psychology

Spring 2015 Natural Science I: Quarks to Cosmos CORE-UA 209. SYLLABUS and COURSE INFORMATION.

Course Syllabus for Calculus I (Summer 2017)

BUS Computer Concepts and Applications for Business Fall 2012

International Business BADM 455, Section 2 Spring 2008

Please read this entire syllabus, keep it as reference and is subject to change by the instructor.

STUDENT MOODLE ORIENTATION

ENG 111 Achievement Requirements Fall Semester 2007 MWF 10:30-11: OLSC

Statewide Framework Document for:

Tools and Techniques for Large-Scale Grading using Web-based Commercial Off-The-Shelf Software

POFI 1349 Spreadsheets ONLINE COURSE SYLLABUS

PSYCHOLOGY 353: SOCIAL AND PERSONALITY DEVELOPMENT IN CHILDREN SPRING 2006

Introduction to Information System

Spring Course Syllabus. Course Number and Title: SPCH 1318 Interpersonal Communication

Instructor: Matthew Wickes Kilgore Office: ES 310

Biology 10 - Introduction to the Principles of Biology Spring 2017

FIGURE IT OUT! MIDDLE SCHOOL TASKS. Texas Performance Standards Project

MASTER S THESIS GUIDE MASTER S PROGRAMME IN COMMUNICATION SCIENCE

EDU 614: Advanced Educational Psychology Online Course Dr. Jim McDonald

GEOG Introduction to GIS - Fall 2015

ASTR 102: Introduction to Astronomy: Stars, Galaxies, and Cosmology

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

General Microbiology (BIOL ) Course Syllabus

General Physics I Class Syllabus

Class meetings: Time: Monday & Wednesday 7:00 PM to 8:20 PM Place: TCC NTAB 2222

INTERMEDIATE ALGEBRA Course Syllabus

Spring 2014 SYLLABUS Michigan State University STT 430: Probability and Statistics for Engineering

Probability and Statistics Curriculum Pacing Guide

PH.D. IN COMPUTER SCIENCE PROGRAM (POST M.S.)

CS Course Missive

INDES 350 HISTORY OF INTERIORS AND FURNITURE WINTER 2017

Accounting 543 Taxation of Corporations Fall 2014

SPANISH 102, Basic Spanish, Second Semester, 4 Credit Hours Winter, 2013

Syllabus CHEM 2230L (Organic Chemistry I Laboratory) Fall Semester 2017, 1 semester hour (revised August 24, 2017)

ADMN-1311: MicroSoft Word I ( Online Fall 2017 )

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

Carolina Course Evaluation Item Bank Last Revised Fall 2009

Intensive English Program Southwest College

Department of Statistics. STAT399 Statistical Consulting. Semester 2, Unit Outline. Unit Convener: Dr Ayse Bilgin

MGMT 479 (Hybrid) Strategic Management

EECS 700: Computer Modeling, Simulation, and Visualization Fall 2014

ACADEMIC AFFAIRS GUIDELINES

ME 4495 Computational Heat Transfer and Fluid Flow M,W 4:00 5:15 (Eng 177)

Aerospace Engineering

Introduction to Personality-Social Psychology Proposed Model of a Syllabus for Psychology 1

Online Marking of Essay-type Assignments

Syllabus: INF382D Introduction to Information Resources & Services Spring 2013

Transcription:

COMP 352, Summer 2017 Data Structures and Algorithms T/H, 18:30-21:00, FG C080 May 3rd till June 19th Stuart Thiel stuart.thiel@concordia.ca http://www.encs.concordia.ca/~sthiel/comp352 EV 11.411 Office Hours: M-F 16:00-17:00 (514) 848-2424 x7211 Tutorial AAAF: T/H, 16:30-17:20, H 929 Tutor: Ali Mohammad Firooz Tutorial AAAE: T/H, 17:30-18:20, H 929 Tutor: Korosh Koochekian Sabor POD: H/F, 11:00-17:00, H 825 POD: Nikoo Zolfagharir Barring Midterm, Final and Office Hour times, this will likely remain accurate. Course Description: This course is about the fundamental syntax and semantics of programming, data structures and algorithms. This does not mean syntax or semantics of a particular language, though you will see that too. This is about the idea of what programming is. In this course you will learn to create algorithmic solutions to problems, solutions involving data structures & their manipulation; you will learn to reliably implement these algorithmic solutions as correct object-oriented programs in Java; you will learn to work effectively to create, implement and demonstrate a program solution to a challenging problem. Prerequisite(s): COMP 232 or COEN 231; COMP 249 or BCEE 231. Organization: The course is a 3-credit course with 5 hours of lectures scheduled every week. There are also two 1-hour tutorials every week. You are expected to allocate a considerable amount of time in studying the text and solving the assignments (most of which involve a lot of Java programming). A qualified tutor will provide you with help should you require it, as you are solving your assignments. Credits: 3 Text(s): Data Structures and Algorithm Analysis in Java Author(s): Clifford A. Shaffer; 1

url: http://people.cs.vt.edu/~shaffer/book/ Course Objectives: At the completion of this course, students will be able to: 1. Create algorithmic solutions to problems, solutions involving data structures & their manipulation; 2. Faithfully implement these algorithmic solutions as correct object-oriented programs in Java; 3. Work effectively to create, implement and demonstrate a program solution to a challenging problem. Grading Scheme: Assignments 40% Midterm Exam 25% Final Exam 35% Letter Grade Distribution: Grades will be curved around a B, unless the class does abysmally as a whole, then it will be curved around a B-. Two standard deviations below the mean is the threshold to FAIL. Two standard deviations above is a guaranteed A+. Course Policies: General I hate writing code on exams. I hate marking it more. I cannot guarantee that there will be none, but I will sure try to minimize it. Quizzes and exams are closed book, closed notes. Assignments There are three assignments. The first two are smaller and are worth 5% each, the third and final assignment is larger and will be worth 30%. The last assignment will involve a small design component and slightly more complex programming to tie together what you have learned in the course. Attendance and Absences I do not care if you show up. It is your responsibility to know what was covered and what you should know. It is an evening course, I understand that this is inconvenient. However, I will try to keep things light, lively and informative, so please show up ready to engage with your classmates and myself. The Midterm There is one midterm. The purpose of the exam is to test if you (a) have understood the material of the lecture/book; (b) done the assignments yourself and learned the right lessons from the experience. Treat the midterm as a wakeup call. As this is an intensive, there will be no time for a second midterm or a make-up class. The midterm will consist of multiple-choice, multiple-answer questions. The Final The final exam covers the whole curriculum. It will consist of multiple-choice, multipleanswer questions. The final has the same evaluation aims as the midterm (see above). 2

Tentative Course Outline: The weekly coverage might change as it depends on the progress of the class. However, you must keep up with the reading assignments. Day Thu. 4 th May Mon. 8 th May Tue. 9 th May Thu. 11 th May Tue. 16 th May Wed. 17 th May Thu. 18 th May Tue. 23 rd May Thu. 25 th May Mon. 29 th May Tue. 30 th May Thu. 1 st Jun Tue. 6 th Jun Thu. 8 th Jun Tue. 13 th Jun Thu. 15 th Jun Fri. 16 th Jun Tue. 20 th Jun Content Preliminaries (1.1, 1.2, 1.4) Read: Shaffer: (Ch. 01 ) Assignment 1 Given Recursion, Algorithm Analysis (Binary Search), Arrays, Lists, Stacks and Queues Read: Shaffer: Ch. 02, Section 2.5 Read: Shaffer: Ch. 03 Read: Shaffer: Ch. 04, Exception Section 4.4 Internal Sorting: Simple Sorts and Quicksort Read: Shaffer: Ch. 07, Sections 7.1-7.3, 7.5 Internal Sorting: Mergesort, Heapsort and Radix Sort Read: Shaffer: Ch. 07, Sections 7.4, 7.6, 7.7 Assignment 1 Due Assignment 2 Given Binary Trees, Binary Search Trees Read: Shaffer: Ch. 05, Sections 5.1,5.2,5.3,5.4 Priority Queues, Heaps and Huffman Coding Read: Shaffer: Ch. 05, Sections 5.5, 5.6 Midterm (before lecture) General Trees Read: Shaffer: Ch. 06 Assignment 2 Due Assignment 3 Given General Trees Read: Shaffer: Ch. 06 Advanced Trees: AVL Tree Advanced Trees: Splay Tree Read: Shaffer: Ch. 13, Sections 13.1, 13.2.1 Hashing Indexing... more if time permits cause 2-3 and B-Trees are cool) Read: Shaffer: Ch. 09 Graphs Read: Shaffer: Ch. 11, Sections 11.1, 11.2, 11.3 Shortes-Paths Problems, Minimum-Cost Spanning Trees Read: Shaffer: Ch. 11, Sections 11.4, 11.5 Final Exam Review Assignment 3 Due Final Exam 19:00-22:00 H937 Plagiarism: The most common offense under the Academic Code of Conduct is plagiarism, which the Code defines as the presentation of the work of another person, in whatever form, as one s own or 3

without proper acknowledgement (Article 19a). 1 It s not hard, don t cheat. Don t copy other people s code. Don t copy code off the Internet and pass it off as your own (or for this course, just don t copy code off the Internet). Graduate Attributes 2 As part of either the Computer Science or Software Engineering program curriculum, the content of this course includes material and exercises related to the teaching and evaluation of graduate attributes. Graduate attributes are skills that have been identified by the Canadian Engineering Accreditation Board (CEAB) and the Canadian Information Processing Society (CIPS) as being central to the formation of engineers, computer scientists and information technology professionals. As such, the accreditation criteria for the Software Engineering and Computer Science programs dictate that graduate attributes are taught and evaluated as part of the courses. The following is the list of graduate attributes covered in this course, along with a description of how these attributes are incorporated in the course. A knowledge base for engineering: Demonstrated competence in university level mathematics, natural sciences, engineering fundamentals, and specialized engineering knowledge appropriate to the program. Knowledge of abstract data types: stacks and queues, trees, priority queues, dictionaries. Data structures: arrays, linked lists, heaps, hash tables, search trees. Design and analysis of algorithms: asymptotic notation, recursive algorithms, searching and sorting, tree traversal, graph algorithms. Problem analysis: Ability to use appropriate knowledge and skills to identify, analyze, and solve complex engineering problems in order to reach substantiated conclusions. Analyze problems and determine their constraints in order to make a choice as to what data structures and algorithms to use for their implementation. Design: Ability to design solutions for complex, open-ended engineering problems and to design systems, components or processes that meet specified needs with appropriate attention to health and safety risks, applicable standards, and economic, environmental, cultural and societal considerations. Use and compose appropriate data structures and algorithms to solve a variety of problems. Use of engineering tools: Ability to create, select, apply, adapt, and extend appropriate techniques, resources, and modern engineering tools to a range of engineering activities, from simple to complex, with an understanding of the associated limitations. Make educated choices as to what data structures and algorithms to use to solve problems following their respective strengths and constraints. Learning Objectives Knowledge base: Demonstrate competence in fundamentals of data structures and algorithms. Problem analysis: Analyze and state model limitations and elements of uncertainty. Formulate and calculate qualitative and quantitative qualities of the problems inputs and outputs. Estimate computational complexity. Evaluate and pick the most appropriate approach based on relevant criteria. 1 www.concordia.ca\students\academic-integrity\plagiarism.html, May 4th, 2017 2 As per the last official COMP 352 outline 4

Design: Critique/evaluate many possible diverse solutions and use techniques to evaluate different solutions with sound arguments related to the problems requirements and constraints. Demonstrate thinking outside the box to create innovative solutions. Develop a system architecture adapted to the systems application context and its requirements and constraints. Development and specification of internal and external software interfaces at different modularity levels. Describe a solution that presents enough details for implementation. Write code according to design. Validate implemented systems against system requirements, specifications and constraints, as well as interface specifications. Use of Engineering tools: Demonstrate appropriate operational use of tools (e.g. algorithms, abstract data types, data structures, asymptotic complexity analysis) for specific tasks in a laboratory environment. Important Notes 3 1. One credit represents, for an average student, a minimum of 45 hours of workload spread across the various academic activities (Source: Article 16.1.2 of the Undergraduate Calendar). For an average student, this suggests a minimum of 135 hours of workload for a 3-credit course, including the time spent in lectures, tutorials, laboratories, examinations, and personal and team work. 2. Assignments will consist of a theoretical and a programming part. Each student must independently and separately prepare and submit her/his assignment. 3. Criteria used in evaluation of assignments: Correctness and Testing: the program should conform to the specification given in the assignment. This includes the proper handling of special cases and error conditions and the providing of correct results. The submitted test cases take into consideration special cases and error conditions. Design: the program should be constructed from coherent, independent, and decoupled functions. A function should usually access only its own parameters and local variables. Style: the program should be general-purpose and well-organized. Documentation and Layout: The documentation should consist of a well-annotated program and clearly formatted output. Helpful identifiers and a clear layout are part of documentation. The documentation should include the description of your design and the algorithm implemented. Efficiency: The program must implement the most appropriate method. Program-User Interface: The program should be easy to use. 4. Programming assignments: For all programming components of your assignments, you need to use Java version 8. You will be using the same computing facilities and the same computer account you used in previous courses (e.g., COMP 249). If you do not have a computer 3 As per the last official COMP 352 outline, modified slightly as we have no marker 5

account, you can obtain it from the help desk at H-960 or EV 07.182. This account will give you access to the laboratories. For more information on CSE Computer accounts please visit the website: http://www.encs.concordia.ca/helpdesk/access.html. If you have your own computer and prefer to use it, you may do so, but be aware that your programs must compile and run with Java 8 at the Concordia laboratories. 5. Submission format: All assignment-related submissions must be adequately archived in a ZIP file using your last name as file name. The submission must contain your name and student ID. Use your official name only no abbreviations or nick names; capitalize the usual last name. Inappropriate submissions will be heavily penalized. Only electronic submissions will be accepted. Students will have to submit their assignments using the EAS system. Assignments must be submitted to the correct folder for assignments. Assignments uploaded to an incorrect folder will not be marked and result in a zero mark. No resubmissions will be allowed. For the Java programming assignments you have to submit the complete source code and the compiled files, which must be executable without changes. If this is violated you will get a zero mark for these parts of the assignments. 6