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

Slides:



Advertisements
Similar presentations
Lecture 1: Overview CMSC 201 Computer Science 1 (Prof. Chang version)
Advertisements

COP3330 Object Oriented Programming in C++ Syllabus
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012.
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
METU Computer Engineering Department
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
Computer Network Fundamentals CNT4007C
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Data Structures, Algorithms, and Generic Programming Breno de Medeiros COP 4530 / CGS 5425 (Fall 2006)
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
1 Object Oriented Design COP 3331 Spring 2011 MWF 11:50 AM – 12:40 PM CHE 103 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering ENB.
Introduction to Data Structures
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
IPC144 An Introduction to Programming Using C. Instructor Murray Saul Office: Rm –Office hours are posted on my IPC144 web page or on bulletin board.
Course Information Sarah Diesburg Operating Systems COP 4610.
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
Course Introduction Andy Wang COP 4530 / CGS 5425 Fall 2003, Section 4.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (FIT-II) J. H. Wang Feb. 20, 2009.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Florida State UniversityCOP5570 – Advanced Unix Programming COP 5570 Advanced Unix Programming Instructor: Xin Yuan.
Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008.
COP4610/CGS5765 Operating Systems Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: W M F 9:10am – 10:00am, or by appointments.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
1 COP 3331 Object Oriented Design Spring 2016 Section 001 F 8:00 AM – 10:45 AM CPR 115 Classroom Lecture 3 credit hours Instructor:Dr. Rollins Turner ENB.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
1 Data Structures COP 4530 Spring 2010 MW 4:35 PM – 5:50 PM CHE 101 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering ENB
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Data Structures and Algorithms in Java AlaaEddin 2012.
COP4610 Principles of Operating Systems Prof. Robert van Engelen Department of Computer Science Florida State University.
Computer Networks CNT5106C
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
Networking CS 3470, Section 1 Sarah Diesburg
RAIK 283 Data Structures and Algorithms
CENG 213 Data Structures Nihan Kesim Çiçekli
Computer Network Fundamentals CNT4007C
Andy Wang Object Oriented Programming in C++ COP 3330
Networking CS 3470, Section 1 Sarah Diesburg
CS101 Computer Programming I
Computer Networks CNT5106C
CENG 213 Data Structures Dr. Cevat Şener
Course Information Mark Stanovich Principles of Operating Systems
CMPT 238 Data Structures Instructor: Tina Tian.
Computer Science 102 Data Structures CSCI-UA
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
Computer Networks CNT5106C
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Object Oriented Programming in C++ COP 3330
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
Computer Networks CNT5106C
Andy Wang Operating Systems COP 4610 / CGS 5765
CS Computer Science II: Data Structures and Abstraction Fall 2009
Presentation transcript:

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

Instructor Professor Zhenhai Duan (duan@cs.fsu.edu) Office: 162 LOV Office hours: 2:00PM to 3:00PM, MW Or by appointment Email: duan@cs.fsu.edu Class website: Use blackboard http://campus.fsu.edu Discussion board Research area Computer networks and network security

Teaching Assistants See “Instructor Information” on Blackboard

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?

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

Reading Assignments Sections 1.1 – 1.5 Refresh your knowledge on C++ (pay attention to new features in C++11)