Software Design & Development CSC-160 Spring 2015 Instructor: Other Instructor Information: Section Number: Cate Sheller Office: 1180C Linn Hall Office hours: Mondays and Wednesdays, 11:15-12:10; Tuesdays and Thursdays, 3:35-4:30; Fridays 12:20-1:15; other times by appointment Office phone: 398-5899 ext. 5842 E-mail: cate.sheller@kirkwood.edu Section CRF10 (0224174) meets Mondays and Wednesdays from 12:20 to 2:20 PM in room 1178 Linn Hall Credit hours: 4 Course description: Building on the foundation of basic programming skills acquired in CSC142, the course emphasizes the design and development of software systems. Topics include user interface programming, graphics and multimedia, networking and concurrency. Long-term projects will provide students with experience developing software over an extended time period. Students will also gain a general understanding of computer and systems organization. Prerequisites: CSC-142 Computer Science Course Materials Needed: Required Text: Object-Oriented Design & Patterns by Cay Horstmann, 2nd edition; Wiley, 2006 Course web site: http://www.kirkwood.edu/faculty/cshelle Flash drive Optional: personal computer Java SDK version 5.0 (or later) IDE for Java (such as BlueJ) Books and course materials for this course are available at the Kirkwood Bookstore. At the conclusion of this course, you will be able to: Course Learning Outcomes and Competencies: Design, develop and implement a software project over a long term Work successfully in a software development team demonstrate proficiency in the use of object-oriented design and programming tools Apply object-oriented design and analysis techniques Produce and interpret UML design artifacts Compare class implementations and recognize advantages and disadvantages of different design approaches Apply and recognize the application of object-oriented design principles, including encapsulation, inheritance and polymorphism Describe the concept of a pattern in programming Recognize and give examples of design patterns in use Apply patterns within the context of GUI programming Describe the Java object model Extract reflection information from an object Describe application frameworks using Lejos as an example of a framework model Explain the importance of thread synchronization, thread termination and locks to prevent conflicts Write programs that use multiple threads in the context of animation Incorporate images, sounds and animation in Java programs and applets Program autonomous robots using Java to solve problems within a simulation context Your grade will be determined by the sum of the total points earned from the following assessment instruments: Assessment of Student Learning: Late Work/Makeup Test Policy: 2 midterm exams (100 points each: 200 points total) Group term project (200 points total) Labs and other homework (about 100 points total) All homework assignments must be satisfactorily completed in order to participate in group project. Because group work depends on the participation of all group members, you will be expected to complete each lab and homework assignment in order to demonstrate basic mastery of the subject matter. You must take the midterm exams at the scheduled times in order to receive full credit. If you must miss an exam, contact me before the exam or as soon afterward as possible in order to arrange a make-up time. Class Attendance Policy and College Sponsored Activities: As stated in the Student handbook: In compliance with Public Law 105-244, Kirkwood Community College makes a wide variety of general institutional information available to students. For additional information, go to: http://www.kirkwood.edu/site/index.php?p=32303 Class attendance is strongly recommended. If you miss class it is your responsibility to find out what you missed and catch up with course activities. You are responsible to your group to participate actively and to do your share. A significant proportion of your grade for group work will be based on peer evaluation. We believe that the best learning takes place in an environment where faculty and students exhibit trust and mutual respect. Productive Classroom Learning Environment: In a productive learning environment, faculty and students work cooperatively, recognize and respect differences, model the values of character and citizenship, and become lifelong learners. See Student Policies: Academic and Enrollment Policies http://www.kirkwood.edu/site/index.php?p=32303 Plagiarism Policy: It is cheating to pass off another student's (or programmer's) work as your own. This is plagiarism and is inappropriate behavior in an institution of higher learning. Don’t do it. If you collaborate with another person to complete a lab, program, or homework, you must clearly credit the other person's contribution. Depending on the nature of the collaboration, and the degree of contribution you make, such collaboration may affect your grade. Failure to give due credit to a collaborator will result in a zero. See Student Policies: General Policies and Student Rights http://www.kirkwood.edu/site/index.php?p=32309 Campus Closings: Local radio and TV stations will announce school closings as they received the information, but the best way to keep informed about class cancellations or delays is via the Kirkwood Alert System. This system will alert you via e-mail and/or text message of cancellations, delays, and emergencies. Sign up at http://alert.kirkwood.edu. Learning Environment Expectations: Turn off or leave home any devices (cell phone, etc.) that may distract you or your classmates. You may bring a laptop computer or tablet to practice programming skills in class. You may not use these devices on exams, however. Americans with Disabilities Act: Students with disabilities who need accommodations to achieve course objectives should file an accommodation application with Learning Services, Cedar Hall 2063 and provide a written plan of accommodation to your instructor prior to the accommodation being provided. Student Evaluation: See “Assessment of Student Learning” on page 2 and tentative schedule, last 2 pages. Midterm grades: A midterm grade will be calculated and posted on EagleNet. The midterm grade is a grade-in-progress, and will not affect your official GPA, nor will it impact financial aid. The midterm grade has three purposes: first, to communicate your academic performance; second, to provide opportunities for you to discuss your progress with your instructor; and third, to allow Kirkwood to design college-wide intervention programs that will improve student success. How final grades are determined: Final grades are based on the total number of points accumulated over the semester. The grading scale below is applied by dividing a student’s total points (with the lowest exam score dropped) by the total number of points possible (again, with the corresponding exam dropped). Grading Scale: B+ 89% C+ 79% D+ 69% A 91% B 8188.9% C 7178.9% D 6168.9% A- 9090.9 % B- 8080.9% C- 7070.9% D- 6060.9% F less than 60% To get the last day to drop a class, or the last day for a 50% or 100% refund, go to any of EagleNet’s search for sections screens. You don’t even have to login if you just click EagleNet for Students and then Search for Sections. https://eaglenet.kirkwood.edu/production/WebAdvisor?TOKENIDX=9443580219&type =M&constituency=WBST&pid=CORE-WBST In EagleNet for Faculty when you’re logged in, the last item under Faculty Information is your Search for Sections link: https://eaglenet.kirkwood.edu/production/WebAdvisor?TOKENIDX=3671408920&typ e=M&constituency=WBFC&pid=CORE-WBFC Students dropping a class during the first two weeks of a term may receive a full or partial tuition refund for 16 week terms, for shorter courses check with Enrollment Services for total withdraw information. The last date to drop this class for this term is Friday, April 24. Drop Date: Details of the refund schedule can be found under Academic & Enrollment Policies at: www.kirkwood.edu/student_policies Final Exam Information: Final exams are scheduled during the last week of the term from May 5 to May 11. You and your group will present your final project to an audience of invited guests during the designated final exam time slot, Monday May 11 at 2:30 PM. See Facilities: Emergency/Crisis Information Emergency Information: http://www.kirkwood.edu/site/index.php?p=7987 Other [List here any information specific to the course, such as information [If desired, list emergency phone numbers, department office locations, etc.] Information: regarding exposure to hazardous chemicals, biohazard, invasive procedures, performance expectations, and also a course time line or calendar, if desired.] Check Refund Policy at: www.kirkwood.edu/registration Rev. 4/11 Rev. 5/11 Rev. 6/12 Rev. 8/14/12 Rev. 1/22/14 Rev. 7/29/14 CSC-160 Spring 2015 Tentative Schedule Date Topic Wed, Jan 21, 15 Course intro / Use cases, finding classes Mon, Jan 26, 15 Class responsibilities / UML & OO design tools Wed, Jan 28, 15 Class design guidelines / design exercise Reading Sections 2.1-2.3, 2.6, 2.12 Sections 2.4-2.5, 2.10, 2.12 Homework 1 Chapter 3 Mon, Feb 2, 15 Agile development / Agile exercise Wed, Feb 4, 15 Assignment Due Homework 2 Interfaces & polymorphism / Java graphics Chapters 4 & 9 & animation Mon, Feb 9, 15 Lab 1 (HW4) Wed, Feb 11, 15 Patterns & GUI programming Homework 3 Chapter 5 Mon, Feb 16, 15 Lab 2 (HW 5) / exam review Homework 4 Wed, Feb 18, 15 Midterm Exam 1 Mon, Feb 23, 15 Inheritance & abstract classes / Java Object Chapters 6 & 7 Model Homework 5 Wed, Feb 25, 15 Lab 3 (HW6) Mon, Mar 2, 15 Frameworks & Lejos Chapter 8 Wed, Mar 4, 15 Instructor at conference – no class Mon, Mar 9, 15 Lab 4 (HW7) / exam review Homework 6 Wed, Mar 11, 15 Midterm Exam 2 Mon, Mar 16, 15 Spring Break – no classes Wed, Mar 18, 15 Spring Break – no classes Mon, Mar 23, 15 Project intro / break into groups Homework 7 Wed, Mar 25, 15 Project time Mon, Mar 30, 15 Project time Team roles / PR1 Wed, Apr 1, 15 Project time Mon, Apr 6, 15 Project time Preliminary design / PR2 Wed, Apr 8, 15 Project time Mon, Apr 13, 15 Project time Peer/self assessment 1 / PR3 Wed, Apr 15, 15 Project time Mon, Apr 20, 15 Project time PR4 Wed, Apr 22, 15 Project time Mon, Apr 27, 15 Project time Wed, Apr 29, 15 Project time PR5 Mon, May 4, 15 Project time Mon, May 11, 15 Final Presentations Final project/final peer & self assessment