CSC 2110 (Section 1) Data Structures/Algorithms Fall, 2010 Instructor Office Email Class Hours Location Office Hours : Sheikh Ghafoor : Br 412A : sghafoor@tntech.edu : MWF 9:05-10:00 : Bruner 404 : MW 1:30 – 3:00. Apart from the designated office hours, students are allowed to walk in to my office any time except the following hours: MWF 9:00-1:30 and Thursday. If I am not busy with any time pressing work, I will be available for help. Teaching Assistant: Ruben Viza Office: Br 414 Office Hours: MW 1:30 – 3:00 Email: raviza42@tntech.edu Prerequisite: C or better in CSC 2100. Corequisites: CSC 2111 and CSC 1610 Course Webpage: http://www.csc.tntech.edu/~sghafoor/2110/2110.html Text: ADTs, Data Structures, and Problem Solving with C++, Larry Nyhoff, ISBN: 0-13140909-3 Course Description: This course involves careful examination of abstract data types and fundamental data structures including stacks, queues, and trees; algorithms to search, sort, and manipulate data using such structures; and introduction to runtime analysis. Emphasis is given on understanding and using these data structures by writing computer programs involving different data structures. This course is the 2nd course in programming course sequence. A good understanding of pointers, structures and a basic understanding of objects in C++ is required for this course. If you don’t have good understanding of these topics, don’t worry, I will work with you to get you to the required level. Course Objectives: Know different data structures that are used in computer programs. Understand the need for different data structure such as array, lists, queues, stacks, trees. 3. Learn how to implement these data structures. 4. Learn to use these data structure in different computer applications 1. 2. 5. 6. Understand how to perform runtime analysis of a program. Be able to write intermediate level programs in C++. Class Participation: Students are very much encouraged to ask questions and participate in class discussion. Remember there are no stupid questions only stupid answers. We will use class performance system or Clicker in this class. At the beginning of every class, there will be questions based on lessons of previous class and the students will answer anonymously using their Clickers. You will not be graded for these questions. The whole idea is to let you and the instructor know how you are doing in the course on a regular basis. You will be required to buy a clicker ($24) along with your text from the bookstore and you have to register your clicker online ($9) (www.einstruction.com) or in bookstore ($13). Expectations : You can expect the following from me: I will spend enough time and effort (in and out of class) to help every student to achieve the course objectives. I will always return graded assignments and exams promptly. I will always start and stop class on time. I will try to make this your best college course ever. In return, I expect the following from you: to be on time and prepared to participate fully in class activities. refer to class web site on a regular basis. to read ahead the next lesson to let me know how the class and my teaching can be improved. be responsible for all materials and information during days you are absent. to understand and adhere to the CSC & TTU policy of Academic Honesty. This course is moderately heavy in terms of course load (reading, programming, quizzes, tests, and assignments). If you are in this course I am assuming that you have made a commitment to spend enough time and effort for this course throughout the semester Attendance: Attendance is required for this course. If you know you will be absent for a legitimate reason, let the instructor know. If you are sick, bring a doctor’s written excuse to resolve the absence. You are responsible for all the assignments, home works, tests etc. whether you are present in the class or not. Programming Assignments: There will be about 5 programming assignments during the semester. Projects are to be completed on your own time outside of class. You will need to start early and budget sufficient time in the open labs or at home to complete the projects. Projects are due at the BEGINNING of class on the due date. While a certain amount of consultation between students in working on an assignment is acceptable, these assignments are to be individual efforts, the work you submit must be your own. Do not create a difficult situation by representing someone else's work as your own. Consult the instructor or TA if you need help with the assignment. The closer to the due date for the assignment, the less assistance the instructor will be able to provide (due to time constraints). If the grade in a programming assignment is less than 90, students will be allowed to resubmit the programming assignment within 5 days of returning the assignment to students. A student will get half of the difference between the resubmission and original points back. For example if the student scores 70 points in the original submission and 100 points in the resubmission, then his/her score for the assignment will be 85 (70+ ½(100-70)). Program submission: You need to zip all your source code (all header and cpp files, no executable) and submit it to me and TA via email. The name of your zip file should be lastname_progX_2110.zip (where X is assignment #, for example my filename for programming assignment 2 would be ghafoor_prog2_2110.zip. The subject line of the email must be “CSC 2110 program X submission”. A complete report containing all required sections. The format required for the lab report can be found on the class web page. Your program must compile and execute in 207 lab. Your program will not be graded if You don’t send the code to both TA and me Subject line of your email is not “CSC2110 program X Submission” You don’t submit a printed report. Your program doesn’t compile and run on computer in 207 lab. Late submission: There will be a 5% penalty/day for up to 7 days. For delays more than 7 days an score of zero will be assigned. Quizzes: There will be an in class quiz every Wednesday at the beginning of the class. Tests: There will be 3 in class tests and one final during the semester. Make-up Tests/Quizzes: If an absence from a quiz is excused, then the average number of points of the other quizzes will be substituted for the missed quiz. If the absence is unexcused, the student will be assigned a score of zero points for the test or quiz. For excused absence from a test, student should make arrangements with the instructor to take the test at another time. Academic Conduct: Cheating, in particular plagiarism, will result in an automatic failure. Don’t do it. Faking program output counts as cheating! This class (and most CSC classes) requires problem-solving skills. Thus, if you copy answers from another source you will never learn how to solve the problems. This deficiency will be painfully obvious to you at later courses, in professional life and at the time of exams. A first offense of cheating on a test, exam, or programming assignment will result in a grade of 0 for that particular activity. Any subsequent offense will result in a grade of F for the course. This includes both the “Provider” of the information as well as the “Receiver” of the information. Any student who violates the university’s, department’s, or class’s academic honesty policy will be reported to the university authority. For details on cheating and plagiarism please refer to http://www.tntech.edu/studenthandbook/handbook_section4.asp, http://www.tntech.edu/adp/plag.html Classroom Etiquette: Please turn off your cell phones or at least put them in silent mode. Don’t use your laptop during the class unless instructor asks you to. Grading Scale: A=90-100, B=80-89, C=70-79, D=60-69, F= <60 Point Distribution: Test 1 5% Test 2 5% Test 3 15% Final 25% Programming Assignments 30% Quizzes 20% Total 100% Special Needs: Students with special needs requiring accommodations should contact the Office of Disability Services (ODS). An accommodation request should be completed as soon as possible, preferably by first week of the course. The ODS is located in the Roden University Center, Room 112; phone 372-6119. Tentative Schedule for CSC 2110 – Fall 2010 Week Chapter Topic 1 1 Software Development /Array and structure Review of pointers and Dynamic Memory Allocation Object and Class Lists Lists Stacks Queues 2 3 4 5 6 7 4 6 6, 11 7 8 8 9 10 9 10 12 11 12 13 15 13 14 15, 16 Assignment Tests/Quiz No class on 6/9 Program 1 Due Test1 (9/24) Program 2 Due Queues, Templates Recursion Trees and Searching Sorting More Trees Program 3 Due More Trees, Graph Review Program 5 Due Test 2 (10/15) Program 4 Due Test 3 (11/24) Biography: Sheikh K. Ghafoor is a native of Bangladesh and living in United States since January 1997. He attended University of Dhaka and obtained B.Sc. and M.Sc. in Applied Physics and Electronics in 1982 and 1985. From 1985 – 1988, he worked as software engineer in local industry in Dhaka, Bangladesh, developing business applications. From 1989 – 1996, he worked as a faculty in the Department of Computer Science at University of Dhaka. Dr. Ghafoor obtained his 2nd Masters and Ph. D. in computer science from Mississippi State University. He worked as a full time Research Associate at Mississippi State University from 1999 to 2006. Dr. Ghafoor joined the faculty of Tennessee Tech. University as an Assistant Professor in August 2008. Dr. Ghafoor has been married for sixteen years to his wife Ambareen. They currently have one son Reetesh (15) and one Daughter Reethee (4). Dr. Ghafoor enjoys football (Indianapolis Colts, Mississippi State University) Basketball (LA Lakers, Mississippi State University), cooking, lying down on the couch, and doing nothing. You may occasionally see him working out at the Fitness Center as well.