1 Course Information Course Title: 95712 Object Oriented Programming in JAVA Meeting Day/Time/Location: • Section A: Tue & Thu 3-4.20pm HBH 1502 • Section B: Tue & Thu 4.30-5.50pm. HBH 1502 Instructor: Neelam Dwivedi (ndwivedi@andrew.cmu.edu ). Office Hours: Tue / Thu 1.30-2.30 pm (or by appointment) HBH 2114 B TA s Name Email Office hours Xiaowei (David) Li xiaoweil@andrew.cmu.edu Thursday 6pm-8pm @ HBH A121. Saideep Bollam sbollam@andrew.cmu.edu Monday 3.30 - 5.30PM @ HBH 245A Anshu Agrawal anshua@andrew.cmu.edu Fridays 6:30 PM - 8:30 PM @ Heinz Cafe Theja Swaroop Reddy Guvvala tguvvala@andrew.cmu.edu Wed & Fri 6 - 7 pm @ HBH 245B Ameeta Kulkarni ameetak@andrew.cmu.edu Friday 2-4pm @ HBH 1115 Prerequisites None Description This course is an in-depth look at the popular programming language Java. It is not intended for first time programmers. An exemption exam is given to students during orientation. After some preliminaries devoted to basic syntax and program structure, classes, composition, inheritance and polymorphism are examined. The Java collection classes are studied in some detail, as is the rather complex set of I/O classes. Additional topics include exception handling, building GUIs with Swing, and multi-threading. Throughout the second half of the course, a series of homework problems develops a non-toy application, illustrating by example how larger object- oriented programs are organized. Course Materials Reference Textbook (supplemental): • Core Java Vol 1 - Fundamentals, 9th Edition. Horstmann & Cornell. Prentice Hall. • Thinking in Java. 4th Edition. Eckel. Prentice Hall. Software (required): • Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html • Eclipse for Java SE / EE: http://www.eclipse.org/downloads/packages/eclipse-ide-java- developers/indigor Evaluation Method Activities: Count Points % Self-assessment: 10 20 points (All considered for 2 points each) 6.7 % Muddiest point survey / feedback: 10 10 points (All considered for 1 point each) 3.3% Lab assignments: 7 60 points (Top6 considered for 10 points each) 20 % Class quizzes: 10 90 points (Top9 considered for 10 points each) 30 % Homework: 3 60 points (All 3 considered for 20 points each) 20 % Exam: 4 60 points (Top3 considered for 20 points each) 20 % Total 300 points 100% Learning / Course Objectives 1. Use a Java IDE as well command line to test code snippets and author professional programs. 2. Learn Java language basics, including types, operators and program control. 3. Develop problem solving skills through practice and understanding of the divide-and-conquer and top-down approaches. 4. Form and manipulate collections of data (such as lists, dictionaries, tuples). 5. Learn the principles of object oriented programming in Java with usage of classes, inheritance, polymorphism, interfaces, containers and design patterns - with the goal of understanding code reuse and building scalable programs. 6. Be exposed to the SDLC (software development lifecycle) to understand how software applications are authored in industry. This includes basic UML usage and design concepts. 2 Grading Scale A+ 100% B+ 87 - 89% C+ 77 - 79% A 93 - 99% B 83 - 86% C 73 - 76% A- 90 - 92% B- 80 - 82% C- 70 - 72% Course Policies & Expectations Activities (refer schedule for due-dates) A typical week in this course will have several activities spread through the week. Here is a sample week format: Fri-Sun Mon Tue-class Wed Thu-class • Watch videos • Read text-references • Submit self-assessment + muddiest point survey & feedback Homework may be due (check schedule) • Lecture & muddiest point discussion • Quiz Self- review and prepare Lecture + Lab, or Exam (check schedule) 1. Videos & Self-assessments:There is a significant part of course-content provided in the form of videos that you are expected to watch before coming to the class each week. This will help us spend the class-time more effectively on Q&A, code-review, and labwork. You are expected to perform two graded activities after watching each week’s videos before Sunday midnight. a. Complete the weekly self-assessment based on the video-content for which you will get two attempts. The higher of the two scores will be considered for grading. b. Take the survey for ‘muddiest’ topic / question you would like me to discuss in class and provide your feedback on the video-content. 2. Quiz: There are 10 short multiple-choice quizzes based on the topic covered every week. Top 9 scores will be considered for your final grade. 3. Lab assignments: There are 7 lab-exercises. Each lab-exercise is a short programming problem related to the topic discussed in the previous class for which you will submit a Java program before the end of the class. Top 6 scores will be considered for your final grade. Consider labwork as a practice-exam. You will have full access to all the references but you will have to produce the final solution individually. However, you can consult with me, the TA or your classmates during labwork. 4. Homework: There are 3 homework assignments and all three will be considered for your final grade. They will be due on Monday 11.59pm of the week in which they are listed. 5. Exams: There are 4 cumulative exams compising theory questions and programming test. Top 2 will be considered from first three. Final exam is mandatory. Others 6. Class Attendance: As evident from all the activities listed above (labs, quizzes, exams) that require your presence in the class, you are expected to attend all classes. If you miss any of the lab / quiz / exam as per the schedule above, it will be adjusted as lowest score. No makeup lab / quiz / exam will be accepted unless there is an emergency, in which case a documented evidence may be required. Job interviews do not count as an emergency. You need to be present in-person in class to take the quizzes, labs, and exams. Attempts to take them from outside the class without instructor’s written permission will be considered as integrity violation and will be dealt with as per university policies. 7. Grades a. Grade disputes, if any, must be reported to the TA or the instructor within one week from the day of grade-distribution. b. While you will have flexibility to take help from your classmates in lab-exercise, all other activities – quiz, homework, and exams – are meant to be your individual work. Copying 3 from any source without citation, sharing your work with other students, or copying from other students will be considered as cheating and plagiarism and will be addressed according to the university policies http://www.cmu.edu/academic-integrity/. c. You are responsible for being familiar with the university standard for academic honesty and plagiarism. Please see the CMU Student Handbook for information. In order to deter and detect plagiarism, online tools and other resources are used in this class. Students with Disabilities: Our community values diversity and seeks to promote meaningful access to educational opportunities for all students. CMU and your instructors are committed to your success and to supporting Section 504 of the Rehabilitation Act of 1973 as amended and the Americans with Disabilities Act (1990). This means that in general no individual who is otherwise qualified shall be excluded from participation in, be denied benefits of, or be subjected to discrimination under any program or activity, solely by reason of having a disability. If you believe that you need accommodations for a disability, please contact us ASAP, and we will work together to ensure that you have the correct access to resources on campus to assist you through your coursework and time at CMU. Academic Integrity: Carnegie Mellon University sets high standards for academic integrity. Those standards are supported and enforced by students, including those who serve as academic integrity hearing panel members and hearing officers. The presumptive sanction for a first offense is course failure, accompanied by the transcript notation “Violation of the Academic Integrity Policy.” The standard sanction for a first offense by graduate students is suspension or expulsion. Please see http://www.cmu.edu/academic-integrity/ for any questions. Cell Phones, Smartphones and other handheld wireless devices: Other than during class breaks, please silence ring tones and refrain from engaging in calls, messaging or other use during class time. All devices must not be visible in any way during exams. Policy Regarding Students Using English as a Foreign Language: Assignments in this course are graded with reference to evidence of the acquisition of concepts, presentation format, and accuracy of information. Having done business in countries that use languages other than English, we understand that the use of an unfamiliar language can result in unusual word choices or grammatical errors that are not critical to the overall understanding of the information. Therefore, we will take into account your need to function in a language that may be unfamiliar to you. We will provide feedback as appropriate if we feel that language or grammar you have used in assignments would be best if it were configured in a different way. Use of SU Blackboard System for this course: The Heinz School uses Carnegie Mellon University’s Blackboard system to facilitate distance learning as well as to enhance main campus courses. In this course, we will use the Blackboard system generally to post lecture notes and related documents and to receive assignments electronically from students. To access Blackboard go to www.cmu.edu/blackboard 4 Course Schedule / Topical Outline: (Subject to change as needed) # Topic / Ref: Author (Chapters) Date Self Assessment Class Quiz Lab Exam HW** 1. Getting started H&C (1,2) Tue, 5/17 Thu, 5/19 SA1* Lab0 2. Data-types, Operators, Program control H&C (3), Eckel (3) Sun, 5/22 SA2 Tue, 5/24 Quiz1 Thu, 5/26 Lab1 3. Classes & Objects H&C (4); Eckel (1, 2) Sun, 5/29 SA3 Tue, 5/31 Quiz2 Thu, 6/2 Exam1 4. Inheritance, Encapsulation & Polymorphism H&C (4 , 5), Eckel (5,6,7) Sun, 6/5 SA4 HW1 Tue, 6/7 Quiz3 Thu, 6/9 Lab2 5. …Continued Sun, 6/12 SA5 Tue, 6/14 Quiz4 Thu, 6/16 Lab3 6. Java GUI H&C (7, 8, 9), Eckel (14) Sun, 6/19 SA6 Tue, 6/21 Quiz5 Thu, 6/23 Exam2 7. Exceptions H&C (11), Eckel (9) Sun, 6/26 SA7 Tue, 6/28 Quiz6 Thu, 6/30 Lab4 8. I/O Eckel (12) Sun, 7/3 SA8 HW2 Tue, 7/5 Quiz7 Thu, 7/7 Lab5 9. Collection classes H&C (14); Eckel (13) Sun, 7/10 SA9 Tue, 7/12 Quiz8 Thu, 7/14 Exam3 10. Threads H&C (6); Eckel (15) Sun, 7/17 SA10 Tue, 7/19 Quiz9 Thu, 7/21 Lab6 11. Reflection Sun, 7/24 SA11 HW3 Tue, 7/26 Quiz10 Thu, 7/28 Lab7 12. Finals TBD Exam4 *First week’s self-assessment and muddiest point post won’t be considered for grading. **Homework will be due on Monday @11.59pm Eastern in the week where it is listed.