CS 107 Introduction to Programming Fall 2014 Credits: 3 units Contact Hours: Tuesday/Thursday 0800-0915 (Section 3) and 1400-1515 (Section 4) Instructor: Patty Kraft Office: GMCS 544 Email: pkraft@mail.sdsu.edu Office Hours Days: M/T/W/TH Office Hours: 1230 – 1345 (M/T/W/TH), 0930-1030 T, and by appointment Course Materials 1. 2. Required text: Cay Horstmann, Java For Everyone: Late Objects, 2nd Edition, Wiley, 2013. ISBN-13: 9781118063316. Required: Leland Beck and Alexander Chizhik, CS 107 Course Reader. This is an in-class workbook. You are expected to have this workbook with you each and every class session. Course Information for CS 107 Description from the Official Course Catalog Programming methodology and problem solving. Basic concepts of computer systems, algorithm design and development, data types, program structures. Extensive programming in Java. Prerequisites: Satisfaction of the Entry-Level Mathematics requirement. Course Type: Lower division required course Specific Goals for CS 107 Course-Level Student Learning Outcomes The objectives of CS 107 (Introduction to Programming) are for students to: 1. Understand the design methods for basic Java computer programs. 2. Understand the importance of the underlying data representations of numeric values, strings, true/false (Boolean) data and how it affects operations performed on that data. 3. Understand and use control structures comprising declaration, assignment, decision, and repetition to solve a problem that can be modeled in software. 4. Learn how to write and evaluate Boolean logical expressions and statements. 5. Be able to work in a group setting to examine, modify and test source code segments. 6. Understand how data is represented in computer memory and storage, and to construct data conversion statements to maintain integrity of the data 7. Understand how to construct mathematical expressions in a computer language. 8. Understand the use of modularity to isolate small procedures within a larger programming domain for purposes of readability, encapsulation, and code re-use. 9. Understand the techniques that can be used to select a set of values to test program logic. 10. Be able to use UNIX shell commands to create, modify, delete, store, compile, and run Java programs. 11. Understand the structures that provide storage of a collection of same type data elements and to be able to use basic methods that work on those collections. 12. Understand how to recognize syntax warnings and to systematically resolve any coding errors. Relationship to CS Program Course Outcomes CS 107 addresses the following CS Program course outcomes: a) An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes and to the discipline b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs d) An ability to function effectively on teams to accomplish a common goal e) An ability to use current techniques, skills, and tools necessary for computing practice. Topics Covered The following topics are covered in CS 107: 1. Overview of computers and programming languages. 2. Introduction to UNIX, text editors, and the programming process. 3. Java data types, variables, arithmetic, standard input/output. 4. Syntax and logic defect detection techniques. 5. Java conditional statements, data type conversions. 6. Methods for program design. 7. Java control structures: conditional and iterative constructs. 8. Java methods. 9. Java arrays and strings. 10. Java exception handling and file input/output. 11. Introduction to object-oriented constructs. 12. Java objects and classes. Special Assistance Special Assistance: If you are a student with a disability and believe you will need accommodations for this class, it is your responsibility to contact Student Disability Services at (619) 594-6473. To avoid any delay in the receipt of your accommodations, you should contact Student Disability Services as soon as possible. Please note that accommodations are not retroactive, and that accommodations based upon disability cannot be provided until you have presented your instructor with an accommodation letter from Student Disability Services. Your cooperation is appreciated. Course Structure and Conduct Style of the Course: lecture, in-class group learning activities, individual programming assignments Technology Utilized in the Course: Blackboard, Java IDE, SDSU server rohan class accounts and development environment, SSH connection utilities Programming Assignments and Exams Programming assignments: There will be eight (8) programming assignments (lab exercises) throughout the semester. You are required to follow certain coding guidelines which will be outlined in class and on assignments. Programming work is to be done on an individual basis. All programming assignments will be submitted online and a matching hard copy submitted in class. Assignments turned in after the start of class on the due date will be counted late and assessed a late penalty. Midterm: The two midterm exams will be closed book/closed notes and will focus on applying techniques and methodologies to various types of Java constructs and problems. Questions on the tests will come from the textbook, Course Reader, and lecture notes. Computers/laptops and cellphones cannot be used during exams. Students are NOT to collaborate with anyone except the instructor when working on a midterm exam. Once an exam starts, students cannot leave and then return to the test room. Once a student leaves the test room, he/she may not work further on the exam. Final Exam: The final exam is listed in the SDSU Final Exam Schedule under "Group Finals" not under "TTH Classes." See http://arweb.sdsu.edu/es/registrar/finalexams/14_fall.html#group. Course Assessment and Grading Class Participation 10% Programs 40% Midterms 30% Final Exam 20% ~25 group exercises @ ~4 points each 8 @ 20-30 points each 2 @ 100 points each 1 @ 100 points = 100 weighted points = 400 weighted points = 300 weighted points = 200 weighted points Your final grade in the class is determined by the total number of points you earn on ALL work in the course, as a percentage of the total number of points earned by the top score in the class, as listed below. Note: To accommodate students whose course points end up "very close to" the next-higher letter grade, the standard grades table has been "adjusted" below. These adjusted percentages will be a strict limit, since they already include a curve, and already include margins for grades "very close to" the next-higher letter grade. A AB+ B BC+ 93.0 90.0 87.0 83.0 80.0 77.0 <= <= <= <= <= <= score score score score score score <= < < < < < 100 93 90 87 83 80 C CD+ D DF 73.0 70.0 67.0 63.0 60.0 0 <= <= <= <= <= <= score score score score score score < < < < < < 77 73 70 67 63 60 Excused Absence Make-up Policies: Unless a compelling reason exists (“compelling” will be determined by me), failure to appear for an exam at the indicated date and time will result in a zero score. Other Course Policies 1. 2. Adding/Dropping Procedures: Students that do not show up the first week of class will be dropped at the end of the first week. Students will be allowed to add the course based on space available, provided they have attended all lectures from the first week of class. Last day for students to add or drop class: 9/8/2014. Cheating/Plagiarism: You are free to discuss ideas and strategies for approaching problems with others, but each student must complete his/her own work. Cheating and plagiarism WILL NOT BE TOLERATED. If a student is found cheating or plagiarizing material written by someone else (including information posted on websites), that student will fail this course and should expect to face disciplinary proceedings. 3. Extra Credit Policy: If you are having problems with the assignments or tests, contact the instructor as soon as possible. It will NOT be possible to earn extra credit to improve a poor grade at the end of the semester. There may be opportunities for extra credit during the semester that are related to additional programming assignments. 4. Classroom Focus: If you MUST bring a cell phone or pager to class, set it to the vibrate mode and step out of the room to take any necessary calls. PLEASE limit this to emergency/critical situations only. Course Calendar Approximate Due Dates for Major Assignments and Exams 2014 26-Aug 28-Aug 2-Sep 4-Sep 9-Sep 11-Sep 16-Sep 18-Sep 23-Sep 25-Sep 30-Sep 2-Oct 7-Oct 9-Oct 14-Oct 16-Oct 21-Oct 23-Oct 28-Oct 30-Oct 4-Nov 6-Nov 11-Nov 13-Nov 18-Nov 20-Nov 25-Nov 27-Nov 2-Dec 4-Dec 9-Dec 11-Dec Lecture topic Group Exercise Alternate Group Ex Introduction to course I1 Survey Introduction to Java I2 Ch 1; RevEx #2,7; ProgEx #5,9 Using Java IDE Java 1a Computer accounts B1 Java 1b Java 2 Conditional statements Assignment Reading/Activity Date Asgn Date Due Survey L0 Ch 2: RevEx 1-4, 6,8-10,21 B2 B2 S1 P1 S2 S1 P1 T1 L1 L0 L2 L1 Ch 3 Selection1.ppt L2 Midterm I S2 Iteration T2 Ch 4 P2 Iteration1.ppt S3 Iteration2.ppt P4 or S4 Methods L3 P3 Iteration3.ppt T3 Iteration4.ppt T3 P4 Ch 5 P3 B3 L4 L3 L5 L4 L6 L5 L7 L6 L8 L7 B3 Midterm II Arrays P6 Ch 6 S6 No class: Veterans Day P10a P10b S7a S7 No class: Thanksgiving Break Objects/Classes S7b P11 Ch 7 B4 L8 P7 Review Group Final 1300-1500 Important! CS 107 is listed in the SDSU Final Exam Schedule under "Group Finals" not under 13-Dec "TTH Classes." See http://arweb.sdsu.edu/es/registrar/finalexams/14_fall.html#group.