DATA STRUCTURES AND ALGORITHMS using Java Course Introduction 1/11 Objectives • • • • • • • Instructor introduction Course description Text book(s) & Reference Recourses Learning Tools Requirements of the course Grading policy Academic policy 2/11 Instructor introduction Huỳnh Ngọc Dũng Master of IT Contacts: • Email: dunghn14@fe.edu.vn • Zalo Group: https://zalo.me/g/nnytsd972 3/11 Questions How are these data organized and processes ? 4/11 Course description • This course introduce the fundamental concepts of data structures and the algorithms that proceed from them. Topics include the basics of algorithmic analysis, fundamental data structures (including stacks, queues, linked lists, hash tables, trees), recursion, and some important applications of these data stuctures and algorithms. • Such data structures and algorithms as being implemented in Java are also given in this course. 5/11 Text book(s) & Reference Recourses Main books/resources: 1. Michaelt T. Goodrich, Roberto Tamassia, Michael H. Goldwasser: Data Structures and Algorithms in Java, 6th Edition, 2014 (ebook) 2. Important information at LMS https://lms-hcmuni.fpt.edu.vn/course/view.php?id=692 3. Code files for students (java files) https://github.com/dunghuynh-teaching 6/11 Learning Tools – – – – JDK 1.8 JDK 1.8 Documentation NetBeans 12 Eclipse (latest version) 7/11 Requirements of the course • Following lessons in classrooms • Reading textbooks at home • Completing workshops in time • Completing and submitting assignment in time • Discussing actively in your teams and in classrooms • Presenting your presentations in classroom 8/11 Grading policy • On-going assessment: - 2 Assignments (AS): 20% - 2 Progress tests (PT): 20% • Practical and Final Exams: - 1 Practical Exam (PE): 30% - 1 Final Exam (FE): 30% • Total score (TS) = 0.2*AS + 0.2*PT + 0.3*PE + 0.3*FE • Completion Criteria: 1) Every on-going assessment (average) component > 0 2) PE > 0 (no resit) 3) FE >= 4 & TS >= 5 9/11 FPT-University Academic policy Cheating, plagiarism and breach of copyright are serious offenses under this Policy. • Cheating – Cheating during a test or exam is construed as talking, peeking at another student’s paper or any other clandestine method of transmitting information. • Plagiarism – Plagiarism is using the work of others without citing it; that is, holding the work of others out as your own work. • Breach of Copyright – If you photocopy a textbook without the copyright holder's permission, you violate copyright law. 10/11 Support 1. Zalo chat. Instant issues such as Google Meet problem, assignment submission, announcements 2. LMS Discussion Group: All questions on the course, the instructors follow case by case or answer in the class. 3. Ultraview: In the class if the students have technical problems or peer review. The instructor can not solve all your problems. The instructor give you a direction and you need to work by yourself. 11/11 Exercises and Assignments submission guide 1. Pair working. Two students work in one repository. 2. Submit all source code to Github repository 3. All exercises and assignments are set in one project. New exercises are new files or functions in the project, frequent submission is VERY IMPORTANT. 4. Time and date on Github is the proof of submission time. 12/11 OOP notion conventions • • Class name always start with uppercase character. Variable names and function names always start with the lowercase character. • If a name consists of many words, from second words start all words by uppercase character. examples for class names: Rectangle, SecondDegreeEquation examples for variable and function names: sideOfRectangle, setDataToSafety • Index and quantity variables should be i, j ,k or clear names such as count, num, size, index1, index2 13/11 OOP notion conventions • Follow standard names of functions such as setXXX(), getXXX(), toString() Verb (action) – noun • Bracket class Rectangle{ private int x; public int getX(){ return X; } public int setX(int x){ this.x = x; } } 14/11