I. Welcome! Welcome to the world of java programming, where you will learn the development of Java applications intended for an enterprise environment. II. University Course Catalog Description This course is a continuation of CS3230 and examines the development of Java applications intended for an enterprise environment. The course is programming intensive and concentrates on designing and implementing multi-tier and Web applications based on the Java Enterprise Edition (Java EE) specification. Topics include JavaBeans, Java Database Connectivity, client/server interactions, servlets, session tracking, JavaServer Pages, JavaServer Faces, Struts, the Model-View-Controller approach, remote method invocation, Enterprise JavaBeans, and application servers. Lab exercises will emphasize how Java Enterprise programming supports the operation of robust, distributed object architectures. III. Course Objectives By the end of this course, students will be able to: • Understand the use of database connectivity (JDBC) in the context of enterprise applications. • Understand Struts2, Spring, or other frameworks to develop improved client interfaces. • Understand the use of JavaBeans for intraprocess communication and component design. • Be able to use JavaBeans to build applications. • Be able to manage JavaBeans properties and events • Be able to design and develop Java programs internationalized for the world community • Be able to work with Remote Objects using Java RMI. • Be able to design and develop Java Web applications. • Understand how to work with current application servers that host Java Web applications • Understand and be able to use Java servlets in the context of Web applications. • Understand and be able to use Java JSPs in the context of Web applications. • Understand and be able to use Java EJBs in the context of Web applications. • Understand the difference between bean managed persistence and container managed persistence. • Be able to use Session Beans and Message Beans • Utilize appropriate Design Strategies when Developing Web applications. CEL CS 4230: Java Application Development Department of Computer Science College of Applied Science & Technology Weber State University Course Syllabus Instructor: Yong Zhang Term: Spring 2015 Office: TE-110C, D2-308M Class Meeting Days: Monday, Wednesday Phone: 801-626-7682 Class Meeting Hours: 19:30-21:20 E-Mail: yongzhang@weber.edu Class Room: D2-312 Office Hours: Tue, Thursday, 10:30-11:30 (TE-110C) Tue, Thursday, 14:30-16:00 (D2-308M) Class Location: WSU Davis Campus IV. Course Prerequisites CS 3230 V. Course Credits 4 credits VI. Required Texts and Materials Core Java 2, Volume 2, Advanced Features (9th edition) by Cay S. Horstmann and Gary Cornell Publisher: Prentice Hall ISBN: 978-0137081608 Optional Textbook: Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam (2nd Edition), by Bryan Basham, Kathy Sierra, Bert Bates Publisher: O'Reilly Media ISBN: 978-0596516680 VII. Course Policies: Grades Assignments: individual assignments will be assigned for each learning section. Homework problems are to be submitted for grading on the date specified in the schedule. The homework must be turned in on canvas. Email submissions will NOT be accepted. There are a total of 5 individual assignments and each of them is 10 points. So the total points of your assignments will be a maximum of 50 points. Exams: There are no exams. Projects: group programming projects will be assigned. Presentations and demonstrations of the group project will normally occur on the last day of a learning section. For details about the projects, please read section VIII Community Engaged Learning (CEL) Projects. The group project is 100 points. Peer Evaluation: To determine an individual student’s grade for the group project, the student’s contributions to learning teams will be assessed by fellow team members using a standard design group evaluation form. There are two peer evaluations: midterm evaluation (25 points) and final evaluation (25 points). Late Work Policy: Late submissions will not be accepted. Extra Credit Policy: extra credit may be given during the class. Grades of "I": Incomplete grades are given only in exceptional cases. VIII. Community Engaged Learning (CEL) Projects This course is designated as a Community Engaged Learning course. In an effort to provide students real world applications of java application development and to engage students more fully in the community as citizens, the students will have opportunities to engage in java development projects based on the needs of a community partner, typically a non-profit organization. For the group projects, students will work in groups of 3 to 4 to design and implement a web-based java application. For the topics of the projects, choose one of the two options below: Option 1. CEL Projects In order to engage you more fully in the community as a citizen, you will complete a Get Involved Project to fulfill the community-based learning aspect of this course. You will work directly with key stakeholders representing the community partner in design, prototyping, testing, and user acceptance of your java application. You will meet regularly with your customer for approval of user interface, feature design and functional as well as non- functional system requirements. As part of your CEL experience, students will submit a weekly reflection journal that summarizes their experience that week. Journals will include a summary of the accomplishments of that week, upcoming milestones, challenges, customer interaction and the student’s feelings about the activities of the week. At the end of the semester, each student will submit a peer evaluation of each of his or her team members, which the instructor will factor into the final grade for each student. Option 2. Non-CBL Projects You may choose to work on a project proposed by the instructor, or you may choose to work on any application that appeals to you. To choose your own project, you need to consider a topic with appropriate size. IX. Course Policies: Student Expectations Disability Access: Any student requiring accommodations or services due to a disability must contact Service for Student with Disabilities (SSD) in room 181 of the Student Services Center. The phone number is (801) 626-6413. Attendance Policy: Attendance is mandatory. If you have to miss a class for any reason, it is your responsibility to catch up on the lecture notes and find out what you have missed and what assignments are coming up. Professionalism Policy: Per university policy and classroom etiquette; mobile phones, iPods, etc. must be silenced during all classroom and lab lectures. Those not heeding this rule will be asked to leave the classroom/lab immediately so as to not disrupt the learning environment. Please arrive on time for all class meetings. Students who habitually disturb the class by talking, arriving late, etc., and have been warned may suffer a reduction in their final class grade. Academic Conduct Policy: Academic dishonesty in any form will not be tolerated. CS Department policy dictates that any verifiable evidence of student academic cheating, as defined and determined by the instructor, will result in: 1) an automatic failing grade for the class and 2) a report to the Dean of Students that will include the student's name and a description of the student's dishonest conduct. A description of cheating and possible sanctions may be found in the Student Code (http://www.weber.edu/ppm/Policies/6-22_StudentCode.html/). Lab Computer Policy: Given the specialty of this course, it is highly recommended that the students use their own laptops for the lab work, homework, and projects. If you choose to use the lab computer, it is your responsibility to work closely with the system administrator or the lab assistant to ensure that you have access to the resources required by the course. The contact information for the system administrator and lab assistant: Patrick Beck, Tel: (801) 626-6522, Email: patrickbeck@weber.edu, Lab: (801) 626-6705. X. Basis for Final Grade Assessment Percent of Final Grade Homework 25% Project 50% Peer Evaluations 25% 100% Scale (%) Grade Scale (%) Grade 94 - 100 A 74 - 76 C 90 - 93 A- 70 - 73 C- 87 - 89 B+ 67 - 69 D+ 84 - 86 B 64 - 66 D 80 - 83 B- 60 - 63 D- 77 - 79 C+ 0 - 59 E XI. Schedule (All the topics, dates, and assignments are tentative, and can be changed at the discretion of the instructor) Date Course Work and Homework Topics to be Discussed in Class 01/13 01/15 Homework 1 will be given Core Java Chapter 11: Annotations Junit 01/20 01/22 Students will be assigned a group and a project Dependency Injection 01/27 01/29 Homework 2 will be given Application Server: Tomcat, GlassFish 02/03 02/05 Head First: Servlets 02/10 02/12 Homework 3 will be given Head First: JSP, HTML, CSS, JSF 02/17 02/19 Core Java Chapter 4: JDBC 02/24 02/26 Homework 4 will be given Midterm Evaluation is due Maven, Git 03/03 03/05 Web Application Frameworks Spring MVC 03/10 03/12 Spring Break – No Classes 03/17 03/19 Project Week 03/24 03/26 Midterm Evaluation 2 is due Project Week 03/31 04/02 Project Week 04/07 04/09 Project Week 04/14 04/16 Project Week 04/21 04/23 Final Evaluation is due Project Presentations and demonstrations 04/28 04/30 Final Exam Week Project Presentations and demonstrations