COEN 352, Summer 2017 Data Structures and Algorithms M/W, 18:30-21:00, H 415 June 27th till August 9th

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

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

Astronomy/Physics 1404 Introductory Astronomy II Course Syllabus

IDS 240 Interdisciplinary Research Methods

Foothill College Summer 2016

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

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

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

Android App Development for Beginners

New Venture Financing

Strategic Management (MBA 800-AE) Fall 2010

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

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

Syllabus Foundations of Finance Summer 2014 FINC-UB

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

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

SYLLABUS. EC 322 Intermediate Macroeconomics Fall 2012

FINN FINANCIAL MANAGEMENT Spring 2014

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

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

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

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


Page 1 of 8 REQUIRED MATERIALS:

BUS Computer Concepts and Applications for Business Fall 2012

Biology 10 - Introduction to the Principles of Biology Spring 2017

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

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

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

BA 130 Introduction to International Business

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

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

INTERMEDIATE ALGEBRA Course Syllabus

General Microbiology (BIOL ) Course Syllabus

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

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

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

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

General Physics I Class Syllabus

BIODIVERSITY: CAUSES, CONSEQUENCES, AND CONSERVATION

COURSE WEBSITE:

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

CSCI 333 Java Language Programming Fall 2017 INSTRUCTOR INFORMATION COURSE INFORMATION

GEOG Introduction to GIS - Fall 2015

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

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

(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

Syllabus Fall 2014 Earth Science 130: Introduction to Oceanography

Software Maintenance

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

BUSI 2504 Business Finance I Spring 2014, Section A

MATH 205: Mathematics for K 8 Teachers: Number and Operations Western Kentucky University Spring 2017

On-Line Data Analytics

MAT 122 Intermediate Algebra Syllabus Summer 2016

Office Hours: Mon & Fri 10:00-12:00. Course Description

Computer Science 1015F ~ 2016 ~ Notes to Students

ENGLISH 298: Intensive Writing

Syllabus: CS 377 Communication and Ethical Issues in Computing 3 Credit Hours Prerequisite: CS 251, Data Structures Fall 2015

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

Math 181, Calculus I

Introduction to Psychology

GLBL 210: Global Issues

Course Syllabus for Calculus I (Summer 2017)

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

International Business BADM 455, Section 2 Spring 2008

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

STUDENT MOODLE ORIENTATION

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

Introductory Astronomy. Physics 134K. Fall 2016

English Policy Statement and Syllabus Fall 2017 MW 10:00 12:00 TT 12:15 1:00 F 9:00 11:00

Introduction to Information System

Instructor: Matthew Wickes Kilgore Office: ES 310

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

ASTRONOMY 2801A: Stars, Galaxies & Cosmology : Fall term

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

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

PHILOSOPHY & CULTURE Syllabus

Probability and Statistics Curriculum Pacing Guide

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

INDES 350 HISTORY OF INTERIORS AND FURNITURE WINTER 2017

Required Materials: The Elements of Design, Third Edition; Poppy Evans & Mark A. Thomas; ISBN GB+ flash/jump drive

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

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

CS Course Missive

Transcription:

COEN 352, Summer 2017 Data Structures and Algorithms M/W, 18:30-21:00, H 415 June 27th till August 9th Stuart Thiel stuart.thiel@concordia.ca http://www.encs.concordia.ca/~sthiel/coen352 EV 11.411 Office Hours: M/W/F 16:00-17:00 (514) 848-2424 x7211 Tutorial CCCE: M/W, 17:30-18:20, H 629 Tutor: Korosh Koochekian Sabor Tutorial CCCF : M/W, 17:30-18:20, H 501 Tutor: Ali Mohammad Firooz 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): COEN 231, COEN 244 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). Qualified tutors 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; url: http://people.cs.vt.edu/~shaffer/book/ 1

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 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 exam. 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 Content Wed. 28 th Preliminaries (1.1, 1.2, 1.4) Jun Read: Shaffer: (Ch. 01 ) Recursion, Algorithm Analysis (Binary Search), Arrays, Lists, Stacks and Queues Read: Shaffer: Ch. 02, Section 2.5 Mon. 3 rd Read: Shaffer: Ch. 03 Read: Shaffer: Ch. 04, Exception Section 4.4 Assignment 1 Given Wed. 5 th Internal Sorting: Simple Sorts and Quicksort Read: Shaffer: Ch. 07, Sections 7.1-7.3, 7.5 Sun. 9 th Assignment 1 Due Internal Sorting: Mergesort, Heapsort and Radix Sort Mon. 10 th Read: Shaffer: Ch. 07, Sections 7.4, 7.6, 7.7 Assignment 2 Given Wed. 12 th Binary Trees, Binary Search Trees Read: Shaffer: Ch. 05, Sections 5.1,5.2,5.3,5.4 Mon. 17 th Priority Queues, Heaps and Huffman Coding Read: Shaffer: Ch. 05, Sections 5.5, 5.6 Midterm (before lecture) Wed. 19 th Self-Organizing Lists Read: Shaffer: Ch. 9.02 Sun. 23 rd Assignment 2 Due Mon. 24 th General Trees Read: Shaffer: Ch. 06 Assignment 3 Given Advanced Trees: AVL Tree Advanced Trees: Splay Tree Wed. 26 th If time permits (Advanced Trees: Red-Black Tree) Read: Shaffer: Ch. 13, Sections 13.1, 13.2.1 external resources for red-black tree If time permits (Indexing... more if time permits cause 2-3 and B-Trees are cool)) Mon. 31 st Hashing Read: Shaffer: Ch. 10.3, 10.4 Read: Shaffer: Ch. 09 Wed. 2 nd Graphs Aug Read: Shaffer: Ch. 11, Sections 11.1, 11.2, 11.3 Mon. 7 th Shortes-Paths Problems, Minimum-Cost Spanning Trees Aug Read: Shaffer: Ch. 11, Sections 11.4, 11.5 Wed. 9 th Aug Final Exam Review Fri. 11 th Aug Assignment 3 Due August 14 th Final Exam 19:00-22:00 H520 and H537 3

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 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. 1 www.concordia.ca\students\academic-integrity\plagiarism.html, May 4th, 2017 2 As per the last official COMP 352 outline 4

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. 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. 3 As per the last official COMP 352 outline, modified slightly as we have no marker 5

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 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