Data Structures Algorithms and Generic Programming II Course

  • Slides: 20
Download presentation
Data Structures, Algorithms, and Generic Programming II Course Introduction Zhenhai Duan COP 4530/CGS 5425

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

Instructor • Professor Zhenhai Duan (duan@cs. fsu. edu) – Office: Love 162 • Office

Instructor • Professor Zhenhai Duan (duan@cs. fsu. edu) – Office: Love 162 • Office hours: online via zoom – 3: 00 PM to 4: 00 PM, T/Th – Or by appointment if you want to meet face to face – Email: duan@cs. fsu. edu • Class website: – Use Canvas – http: //canvas. fsu. edu/ • Research area – Computer networks and network security 2

Teaching Assistants • See “Instructor Information” on Canvas 3

Teaching Assistants • See “Instructor Information” on Canvas 3

Course Rationale • So far…you know how to program… • However, to build large

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

Course Coverage • Data structures – Common Lego pieces (building blocks) – Methods of

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

Learning Objectives • Data structures – Abstract data types (ADTs): • Vector, list, stack,

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

Prerequisites • COP 3330: Data Structures, Algorithms, and Generic Programming I • MAD 2104:

Prerequisites • COP 3330: Data Structures, Algorithms, and Generic Programming I • MAD 2104: Discrete Mathematics. • 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

What You Should Already Know • • • Classes, including constructors/destructors Dynamic allocation and

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

Course Material • Required Textbook : – Data Structures and Algorithm Analysis in C++

Course Material • Required Textbook : – Data Structures and Algorithm Analysis in C++ (4 th 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

Workload and Grading Policies 1. Six homework assignments – 46% – 5 programming assignment

Workload and Grading Policies 1. Six homework assignments – 46% – 5 programming assignment and 1 written assignment – Substantially harder than early classes 2. Two Exams – 50% – – – 3. Quizzes – 4 % n n 4. 5. Midterm: 20% Final Exam - 30% Proctored with Honorlock Possibly given during both regular class and recitation sessions We may have both announced and unannounced quizzes All components will be counted towards final grade Notes: additional work for graduates (CGS 5425) 10

Workload and Grading Polices • Compiling programming assignments – Programs that do not compile

Workload and Grading Polices • Compiling programming assignments – Programs that do not compile successfully on linprog will receive at most 10% of the total grade for the program. Any program that compiles without any compilation error on linprog will receive at least 15% of the total grade for the program. Make sure your code compiles before you submit it! You also need to make sure that you include a proper makefile for the TAs to compile your program on linprog. • Some simple suggestions: – You do not want to wait until you have finished writing the whole project or finished a large chunk of code, before doing compilation, testing, debugging etc. – You should compile and test after some functionalities or certain lines of code – Write makefile as early as possible (TA will discuss during recitations and many examples are provided) 11

Final Letter Grades • Requirements to get C- or better in final letter grades

Final Letter Grades • Requirements to get C- or better in final letter grades – At least 60% for both exams and projects, respectively • Link to final letter grades 12

Important Dates • Link to important dates on Canvas – Subject to change –

Important Dates • Link to important dates on Canvas – Subject to change – Change will be announced online/in class – After a project is announced, we will discuss the project during recitation in that or the following week. • Assignments – – – Substantially harder than assignments in early classes Typically 2 to 3 weeks per assignment Start early Ask questions early Submit on time (and it is your responsibility to submit the correct version of your program) 13

Accounts • Computer Science account (<yourid>@cs. fsu. edu) – For doing assignments (linprog. cs.

Accounts • Computer Science account (<yourid>@cs. fsu. edu) – For doing assignments (linprog. 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 Canvas – For class materials, discussion board, grades etc. – Through your FSU account – http: //campus. fsu. edu 14

Academic Integrity • Means – – – No copying from anywhere Don’t solve assignments

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 • Penalty on Honors Code violation for each project – Zero on the project – One grade lower on the final letter grade • Its better to submit an imperfect assignment than to submit a copied one. – Partial points are always possible 15

Some Past Honors Code Violation Cases • A group of students studied together, with

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 16

Course Policies • Attendance is mandatory – – – For both regular classes and

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 17

Recitation • Attendance is required • What are covered during recitation sessions – –

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 • Programming assignments – Will be discussed the following week after announcement during recitation – Don’t wait till recitation to start working on it 18

To ask or not to ask? • Me and TA are not psychics •

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 19

Reading Assignments • Sections 1. 1 – 1. 5 • Refresh your knowledge on

Reading Assignments • Sections 1. 1 – 1. 5 • Refresh your knowledge on C++ (pay attention to new features since C++11) 20