COS 160 & 170: Structured Problem Solving: Java - Fall 2019 Section 1 Lecture: Mon,Wed 10:15 – 11:30, 209 Payson Smith Hall Lab: Wed 11:45 – 12:45, 203 Luther Bonney Section 3 online class – all lecture, lab and program due dates are the same Professor: Bob Boothe Office: 230 Science Phone: 780-4789 Email: boothe @ maine.edu Web: www.cs.usm.maine.edu/~boothe Office Hours: Mon 11:40 –12:30 Wed 1:15 – 2:30 or by appointment Course Description: An introduction to the use of digital computers for problem solving, employing the Java programming lan- guage as a vehicle. Content includes elementary control structures and data representation methods provided by Java and the top-down programming methodology. Course requirements include a substantial number of programming projects. Schedule: Lec Date Topics Readings Start Due L1 9/4 Introduction, class overview How to use zyBooks Sec 1.1-1.3, 1.5 L2 9/9 Java, keyboard/screen I/O, commenting Java zyBook Sec. 1.1-1.7 L3 9/11 Terminology, example programs Sec. 1.8-1.12 lab1, prog1 L4 9/16 Variables, expressions, types Sec. 2.1-2.8 lab1 L5 9/18 Floating Point, Constants, Math methods Sec. 2.9-2.13, 2.15 lab2, prog2 prog1 L6 9/23 Characters, strings, random numbers Sec. 2.16-2.19, 2.21-2.23 lab2 L7 9/25 Graphics (taught in lecture & lab) (no readings) lab3, prog3 prog2 L8 9/30 if/else, relational operators Sec. 3.1-3.10 lab3 L9 10/2 switch, boolean, nuances Sec. 3.11-3.12, 3.14-3.15 lab4, prog4 prog3 L10 10/7 String and char operations Sec. 3.16-3.20 lab4 L11 10/9 Midterm L12 10/16 while loops, do-while loops, debugger Sec. 4.1-4.4 lab5 prog4 L13 10/21 for loops Sec. 4.5-4.9 lab5 L14 10/23 break, continue, examples Sec. 4.10-4.11, 4.13-4.14 lab6, prog5 L15 10/28 Arrays Sec. 5.1-5.4 lab6 L16 10/30 Array algorithms Sec. 5.5-5.8 lab7, prog6 prog5 L17 11/4 Two-dimensional arrays, examples Sec. 5.10-5.12 lab7 L18 11/6 Methods, parameters, return Sec. 6.1-6.5 lab8, prog7 prog6 L19 11/13 Methods with branches & loops Sec. 6.7-6.8 lab9 lab8 L20 11/18 Method array parameters Sec. 6.9-6.14 prog8 lab9, prog7 L21 11/20 Scope, method overloading, examples Sec. 6.17-6.19 lab10 L22 11/25 I/O streams, formatting Sec. 7.1-7.4 prog9 lab10, prog8 L23 12/2 File I/O Sec. 7.5 L24 12/4 Objects and Classes, constructors Sec. 8.1-8.5 lab11, prog10 prog9 L25 12/9 Overloading, references, this Sec. 8.6-8.9 lab11 L26 12/11 Review prog10 12/16 Final 10:45-12:45 Course Outcomes: In this course, the student will learn and demonstrate: a strong foundation in procedural programming using Java significant problem solving skills the ability to apply appropriate mathematics to computer programs Prerequisites: Successful completion of the USM mathematics proficiency requirement. Textbook: zyBooks: COS 160: Structured Problem Solving: Java, (You subscribe to this interactive textbook online.) 1. Sign up at learn.zybooks.com 2. Enter zyBook code MAINECOS160BootheFall2019 3. Click Subscribe Computer Labs: You should be co-enrolled in the COS 170 lab session that matches your COS 160 lecture. The labs are tightly cou- pled and will cover material taught that same day in class. The online students must take the online lab. The software for this course is installed in all USM computer labs. You will be using a Java Development Kit (JDK) and the Eclipse Integrated Development Environment. When you work in the labs, you will need a USB flash drive to store your work. You will want to put a few dollars on your USM Card so you can print in the lab. For convenience you will want to have your own computer. Any Windows, Mac, or Linux computer is fine. The software is available for free. Instructions for downloading and installing the software are available at: www.cs.usm.maine.edu/~boothe/cos160/JavaAndEclipseSetup.html Tutoring: Tutoring is available through the USM Learning Commons. Learn more and schedule an appointment at: usm.maine.edu/learningcommons Preparation before each class: The readings for each lecture are listed on the syllabus. I expect you to do the readings before the lecture and to com- plete at least 90% of the Participation Activities before class. This counts for 5% of you course grade. The purpose of these activities is to reinforce the concepts you are learning and to help you assess if you understand the lesson or if you need to review it further, and if you have questions you will be prepared to ask them in class. Eventual Completion of all Zybooks Activities: The book also has some more involved Challenge Activities. I expect you to do these before or soon after class. By the end of the semester I expect you to have completed 100% of both the participation and challenge activities. This will count as another 5% of your course grade. You do not need to do the activities for sections marked as optional. Grading COS 160: The total score will be calculated: A total score of: Class Preparation 5% 90% will receive at least an A- Activity Completion 5% 80% will receive at least a B- 10 Programming Assignments 40% 70% will receive at least a C- Midterm 20% 60% will receive at least a D- Final 30% Grading COS 170: The total score will be calculated: 11 Lab Assignments 100% Class Policies: Handing in Assignments: For the regular class, all assignments will be due at the beginning of class. Solutions will be discussed the same day that assignments are turned in. Late Assignments: Late assignments will be marked down 20% per lecture that they are late (except under special circumstances such as illness or other unanticipated impediments). Late assignments will also not be accepted after the last class lecture un- less a prior arrangement has been made. Collaboration: Students are encouraged to assist each other in learning to understand the subject matter of this course. You will be expected to work cooperatively in class with other students in small groups. In the labs you are encouraged to work in teams of two. We will use a common industry practice called paired-pro- gramming that involves two people working together and frequently switching roles as the one at the keyboard or the one overlooking and discussing the code. When you work as a team you should both contribute equally and both fully understand all parts of the lab. Many students feel they learn more effectively by working with a partner. Teams should turn in only one written report with both names on it. If you finish the lab early, please help other students. Plagiarism: Plagiarism is turning in work that is not your own. Searching the internet for answers or using answers created by others is plagiarism and may result in failing the course as well as appropriate disciplinary action. It is your responsi- bility to not leave your work where others might copy it. Crib Sheets: Exams are closed book, however students will be allowed to prepare and use a one page crib sheet for each exam. Differences for On-line Class: Handing in Assignments: For the online class, the assignments will be submitted and graded through blackboard. Each assignment should be submitted as a single Microsoft Word or PDF file. They are due before the end of the day (11:59 PM) on the dates listed on the syllabus. Preparation / Keeping up with the pace of the class: You are expected to keep up with the pace of this class. You should complete the readings and 90% of the Participa- tion Activities by the end of the day (11:59 PM) on the dates listed on the syllabus for each lecture. Critical Reading / Discussion Board: Please read the book critically and post your questions to the discussion board. I will check the discussion board reg- ularly, but I hope that everyone will help answer questions. No teams for online students: On-line students will not be working in teams on the labs. The labs are not intended to be overly difficult, but rather as a means to get you using and reinforcing the material you are learning. I encourage you to start the labs early so that you have time to ask for help if you get stuck. Getting help: I encourage everyone to post questions to the discussion board. Tutoring is available on-campus and remotely through the Learning Commons. I hold regular office hours, or you can email or call. Exams: The midterm will be an online exam through Blackboard. The final will be a written exam taken either on campus or at a remote testing site. There will flexibility for when to take the exams. More details will be posted on Blackboard when the exams get closer.