Course Syllabus Division: Mathematical Sciences Course Title: Computer Programming in Java Course #/Sections: CS 3/0127, 0128 Credit Hours: 4 Course Time/Room: Lecture: TTh 6:25 7:50 P.M./MBA 213 Lab: 0127 TTh 4:50 6:15 P.M./MBA 113 0128 TTh 8:00 9:25 P.M./MBA 113 I. Prerequisites a. Computer Science 1 with a minimum grade of C or equivalent skill II. III. Course Materials a. Textbook: Java Software Solutions: Foundations of Programming Design by Lewis and Loftus, 9th ed., 2017, Pearson/Addison-Wesley. NOTE: This is the text of record, but you may use any current Java textbook, including the following: i. Thinking in Java by Eckel, 4th ed., 2006, Prentice Hall ii. Java: How to Program by Deitel, 11th ed., 2017, Pearson/Prentice Hall b. Recommended Supplies: All students are encouraged to bring a USB flash drive to class to save class examples, your programming assignments, and notes on. Course Description/Objectives/Student Learning Outcomes a. Course Description i. This course includes a detailed coverage of the Java programming language including Java data types, operators and expressions, control structures, iterations, functions, arrays, classes and inheritance, files, graphical user interface (GUI) applications with event handling, and applets for world wide web applications. b. Objectives i. Identify Java data types. ii. Develop programming code using the control and iteration statements. iii. Develop programming code using strings and arrays (single and multidimensional). iv. Construct and use objects from predefined classes. v. Write and use static (class) and instance methods. vi. Construct classes to encapsulate data and methods. vii. Demonstrate ability to use inheritance and polymorphism in program code. 1
viii. Develop programming code using inheritance and polymorphism in program code. ix. Declare and use graphical components for user interfaces; handle basic mouse and keyboard events. x. Create and use applets with threads in World Wide Web applications. c. Student Learning Outcomes i. SLO #1: Students, when given a specification for a program or program segment, will be able to design, code, compile, test, and document a solution. ii. SLO #2: When given a code segment involving control structures, iteration structures and method calls, students will be able to trace the execution and give the output. iii. SLO #3: When given a code segment involving data objects, graphical interface objects, and processing objects, students will be able to describe what the users sees and the events that take place as the user interacts with the interface. iv. SLO #4: Students understand and be able to develop both desktop and web applications involving graphical user interfaces, animations, sound manipulations, file I/O, database, applets, and threads. IV. Course Evaluation a. Midterm Exams (2): 200 points each or 400 points total b. Final Exam: 300 points i. NOTE: All Tests/Exams are open book/notes/computer c. Assignments: 300 pts i. Assignments are found on the assignments webpage, and are due on the dates noted. Assignment grades are based on effort to comprehend and utilize the tools presented in the course. If you complete the assignment on-time and it meets all the requirements, your grade is 100%. For each day late, 4% from the maximum score is taken off. Only two assignments are allowed to be regraded for a grade of the maximum score possible. A question does not count as a grade or regrade submission. ii. Before submitting your assignment, make sure your program can produce all the dialogue and output shown in the Sample Run. You will submit all of your work via Canvas. I only need the.java files in your submission. 2
d. The course grade will be based on the percent of the total points (1000 points) earned as follows: % Grade 90 100 A 80 89 B 70 79 C 60 69 D 0 59 F V. About the Course a. This is a course about object-oriented programming using Java. This is not a course for beginning programmers. This is also not a course where you read a book, memorize some facts, and answer questions on a test for a grade. Simple tests based on the assignments is one aspect of student evaluation, but a more important aspect is writing and running programs that demonstrate the topic of each assignment in action. b. We start with the basics of syntax, data types, variable declarations, and program organization. After demonstrating the basic looping mechanisms, we will progress on to hierarchy design and inheritance. Finally, we will design and build a graphical user interface that allows us to interact with our hierarchy. We will be emphasizing the connection between each assignment and the wider topic of object oriented programming. VI. Course Plan for Success a. Read: Each assignment comes with some written specifications, as well as class handouts and notes. The notes are more specific to each assignment. There may also be links to external references. All these resources are important. There are also lists of vocabulary words with the assignments. Learn these. Read each assignment very carefully and make certain you know the goal. If it seems too complicated, maybe your view of it is too complicated. When in doubt, ask questions. b. Program: You can't learn to program unless you go through the steps of typing, compiling, debugging, running, retyping, and so on, programs that you have developed. Take small, easy to understand steps. Don't try to write and test a program in a single step. That is, don't type 100 lines of program, then try to compile and test it all at once. While it seems tedious at first, writing, compiling, and verifying small segments of program, then expanding and repeating in manageable increments is faster in the long term. 3
c. Interact: I'm here to help. I try to answer e-mail questions as quickly as possible. Don't ask questions line-by-line as you type your program. Compile and debug programs on your own and find out what happens. When you try this and still don't understand, then send the program (cutand-paste text) and the error message or whatever to indicate where the program doesn't work as expected. I'm also available during office hours. A few minutes at the beginning can save hours toward the end. d. Software: The college labs have the NetBeans Java development tools and JDK7 or higher installed. You can obtain these for your home computer (Linux, Windows, and Mac) or use any of a number of other Java programming environments (such as Eclipse or IntelliJ). Macintosh OS X users will already have several Java tools installed. Each environment has its own strengths and weaknesses and each has one or more unique ways of dealing with common Java features such as setting up a CLASSPATH for locating code. One of the purposes of the early assignments is figuring out how to get things done at home or work. e. One Last Note: Course work is divided into lectures with online programming notes, reading, and program construction at a computer. All three facets (read, program, interact) of the course are essential to your success. Reading will be modest and directly related to the work at hand. Programs will be variable in length, tend to be more difficult at the beginning and middle of the course, and easier toward the end. You may spend more than 6 hours per week typing in and debugging code so allow plenty of time to do the assignments. VII. Policies a. Attendance is required for success in the course. It is the responsibility of each student to sign the attendance roster each day and to drop if he/she stops attending prior to the drop deadline listed in the schedule of classes (Friday, May 11, 2018). b. Disruptive Behavior or any other violation of ECC's "Standards of Conduct" will result in dismissal from the class. Please turn off your cell phones and any other electronic devices while you are in class. c. Honesty: El Camino College places a high value on the integrity of its student scholars. When an instructor determines that there is evidence of dishonesty in any academic work (including, but not limited to cheating, plagiarism, or theft of exam materials), disciplinary action appropriate to the misconduct as defined in BP 5500 may be taken. A failing grade on an assignment in which academic dishonesty has occurred and suspension from class are among the disciplinary actions for academic dishonesty (AP 5520). Students with any questions about the Academic Honesty or discipline policies are encouraged to speak with their 4
instructor in advance. Please thoroughly read the Academic Integrity Agreement and return a signed copy. d. Accommodations: It is the policy of the El Camino Community College District to encourage full inclusion of people with disabilities in all programs and services. Students with disabilities who believe they may need accommodations in this class should contact the campus Special Resource Center as soon as possible. This will ensure that students are able to fully participate. As well one may contact the instructor privately to discuss your specific needs. The Special Resource Center is located in the southeast wing of the Student Services Center, (310) 660-3295. More guidelines for students with disabilities may be found on page 29 of 2017 2018 College Catalog or by visiting the website at http://www.elcamino.edu/academics/src. e. Cleanliness: Environments must be kept clean. No smoking, eating, or drinking will be allowed in classroom or lab. VIII. Instructor Info Office MBA 346 Phone: (310) 592-2756 Office Hours: M 4:40 5:10 P.M., TTh 3:30 4:30 P.M., W 10:45 11:45 A.M. and 4:40-5:10 P.M., or by appointment E-mail: eambrosio@elcamino.edu Website: Direct Link: http://www.elcamino.edu/faculty/eambrosio Navigation: http://www.elcamino.edu Faculty & Staff Faculty Web Pages Ambrosio, Edwin 5
IX. Course Outline (subject to changes by the instructor) Week of Chapters Subject 2/12 1, 2 Introduction, Primitive Data and Expressions 2/19 5, 6 Conditions and Loops Last Day to Add or Drop Without Notation: Friday, February 23, 2018 2/26 3 Using Classes and Objects 3/5 4 Writing Classes 3/12 7 More Classes 3/19 N/A Review; Midterm #1 (through Chapter 7) 3/26 8, 5 Midterm #1 Recap; Arrays, ArrayLists 4/2 9 Inheritance 4/9 N/A No School (Spring Break) 4/16 10 Polymorphism 4/23 11 Exceptions and I/O 4/30 N/A Review; Midterm #2 (through Chapter 10) 5/7 10, 12 Midterm #2 Recap; Sorting/Searching/Recursion Last Day to Drop with W grade Friday, May 11, 2018 5/14 13 Collections/Data Structures 5/21 Appendix G; Notes Applets; Java Database Programming 5/28 Notes Introduction to Android Programming 6/4 N/A Review; Final 6