data structures, algorithms, and generic programming course introduction zhenhai duan cop 4530/cgs...

19
Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Upload: margery-hood

Post on 25-Dec-2015

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Data Structures, Algorithms, and Generic Programming

Course Introduction

Zhenhai Duan

COP 4530/CGS 5425

1

Page 2: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Instructor

• Professor Zhenhai Duan ([email protected])• Office: 162 LOV • Office hours:

– 2:00PM to 3:00PM, MW– Or by appointment– Email: [email protected]

• Class website:– Use blackboard– http://campus.fsu.edu– Discussion board

• Research area– Computer networks and network security

2

Page 3: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Teaching Assistants

• See “Instructor Information” on Blackboard

3

Page 4: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Course Rationale• So far…you know how to program…• However, to build large and complex software, you need more

powerful tools• Your software should be…

– Efficient in both speed and resource usage– Maintainable – Reusable

• Programming efficiency in broader terms– Running time– Computing resources– Developing time– correct results vs. closest results (in limited time)

• But how do we achieve programming efficiency?

4

Page 5: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Course Coverage

• Data structures– Common Lego pieces (building blocks)– Methods of organizing large amount of data

• Algorithms– A sequence of computational steps transforming input into

output– Popular methods to solve problems

• Generic programming– A programming paradigm to reuse code

5

Page 6: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Learning Objectives

• Data structures– Abstract data types (ADTs):

• Vector, list, stack, queue, table, map, trees, graphs …– Iterators associated with ADTs

• Algorithms– Correctness analysis of algorithms– Complexity analysis of algorithms

• Generic programming– Implementing data structures using class templates – Implementing algorithms using function templates

6

Page 7: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Prerequisites

• COP 3330: Object-Oriented Programming• MAD 2104: Discrete Mathematics.• Pre- or Co-requisite: CDA 3100: Computer Organization I.

• This course requires that you should be proficient with C++ and object oriented programming concepts.

• You also need to have a user-level knowledge of Unix, and be comfortable working in a Unix environment. – We will review Unix programming environment including

editors, compiler, debuggers, and makefiles in recitation

7

Page 8: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

What You Should Already Know

• Classes, including constructors/destructors• Dynamic allocation and de-allocation of objects• Operator/function overloading• Parameters for functions, methods, and operators• Parameter passing by reference/value• The C++ I/O system

– We will review the basics in recitation

• Pointers and pointer arithmetic• Dynamic memory allocation/de-allocation

• These are the minimum requirements

8

Page 9: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Course Material• Required Textbook :

– Data Structures and Algorithm Analysis in C++ (4th edition) by Mark Allen Weiss. 

– Publisher: Addison-Wesley; 2013 (using c++11)

• Recommended Reference Textbook : – Absolute C++, Walter Savitch, Publisher: Addison Wesley– C++ Primer, Lippman, Lajoie, and Moo. Publisher: Addison

Wesley– C++ How to Program (Harvey & Paul) Deitel & Associates. 

Publisher: Prentice Hall

• Other recommended textbook– Cormen, Leiserson, and Rivest, Introduction to Algorithms

• Lecture slides posted at the class website

9

Page 10: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Workload and Grading Policies

1. Five programming assignments – 45%– 9% for each assignment– Substantially harder than early classes

2. Two Exams – 50% – Midterm: 20% – Final Exam - 30%

3. Quizzes – 5 % Possibly given during both regular class and recitation sessions We may have both announced and unannounced quizzes

4. All components will be counted towards final grade

10

Page 11: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Final Letter Grades

• Requirements to get C- or better in final letter grades – At least 60% for both exams and projects, respectively– At least C- for certain components of two capstone projects

• Data structure knowledge• Recursive algorithm usage

• Link to final letter grades

11

Page 12: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Important Dates

• Link to important dates in blackboard– Subject to change– Changed will be announced in Blackboard/class– After a project is announced, we will discuss the project

during recitation in that week.

• Assignments – Substantially harder than assignments in early classes– Typically 2 to 3 weeks per assignment– Start early– Ask questions early (use of discussion board)– Submit on time (and it is your responsibility to submit the

correct version of your program)

12

Page 13: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Accounts• Computer Science account (<yourid>@cs.fsu.edu)

– For doing assignments (linprog1 to linprog4.cs.fsu.edu)– http://www.cs.fsu.edu/sysinfo/newstudent.html

• FSU account (<yourid>@fsu.edu)– For receiving class announcements– For submitting assignments– For getting your grades– http://its.fsu.edu/Students

• Access to blackboard – For class materials, discussion board, grades etc.– Through your FSU account– http://campus.fsu.edu

13

Page 14: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Academic Integrity• Means

– No copying from anywhere– Don’t solve assignments for others– Don’t ask/give solutions.– Protect your code– Don’t distribute assignments/exams to others (in a later semester)

• Moss: An automated tool for comparing code will be used.

• Please read the policies on course web page

• Dishonesty Not fair to others.– You may get a grade of F.

• Its better to submit an imperfect assignment than to submit a copied one.– Partial points are always possible

14

Page 15: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Some Past Honors Code Violation Cases

• A group of students studied together, with one student providing code as reference to another student

• A student gave code to another, after the deadline, for self-study

• A group of students worked on a project together• Some student put code online (github) and forgot to

enforce access control– You need to protect your code

• A student obtained solution online (paid or not)– If one can obtain, so can another

15

Page 16: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Course Policies

• Attendance is mandatory– For both regular classes and recitations– No make-up for quizzes, – All quizzes will be included in determining final letter grade– Good attendance = missing 3 or fewer lectures– Let the Instructor/TA know in advance when possible

• Missed exams:– No makeup exams will be given

• except in emergencies with appropriate document

• Incomplete– No incomplete grade “I” will be given

• Except in emergencies with appropriate document

16

Page 17: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Recitation

• Attendance is required

• What are covered during recitation sessions– Programming assignment discussion– Unix programming environment– C++ STL containers and algorithms– Example programming problems and solutions

17

Page 18: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

To ask or not to ask?

• Me and TA are not psychics • Please let us know if…

– You are lost– You don’t understand something– You don’t have the background– Class can be improved in certain ways

• Feel free to give anonymous feedback online– Though direct feedback is always welcome!

• Use class discussion board

18

Page 19: Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425 1

Reading Assignments

• Sections 1.1 – 1.5• Refresh your knowledge on C++ (pay attention to

new features in C++11)

19