Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations

Presentation on theme: "Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425."— Presentation transcript:

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

2 Instructor Professor Zhenhai Duan ( Office: 162 LOV
Office hours: 2:00PM to 3:00PM, MW Or by appointment Class website: Use blackboard Discussion board Research area Computer networks and network security

3 Teaching Assistants See “Instructor Information” on Blackboard

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

5 Course Coverage Data structures Algorithms Generic programming
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

6 Learning Objectives Data structures Algorithms Generic programming
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

7 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

8 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

9 Course Material Required Textbook : Recommended Reference 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

10 Workload and Grading Policies
Five programming assignments – 45% 9% for each assignment Substantially harder than early classes Two Exams – 50% Midterm: 20% Final Exam - 30% Quizzes – 5 % 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

11 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

12 Important Dates Link to important dates in blackboard Assignments
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)

13 Accounts Computer Science account (<yourid>
For doing assignments (linprog1 to FSU account For receiving class announcements For submitting assignments For getting your grades Access to blackboard For class materials, discussion board, grades etc. Through your FSU account

14 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

15 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 Missed exams: Incomplete
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 Programming assignment discussion Unix programming environment C++ STL containers and algorithms Example programming problems and solutions

18 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 C++ (pay attention to new features in C++11)

Download ppt "Data Structures, Algorithms, and Generic Programming Course Introduction Zhenhai Duan COP 4530/CGS 5425."

Similar presentations

Ads by Google