CS 106A | Assignment 5 Toggle navigation CS 106A Lectures Week 1 1 - Welcome to CS 106A 2 - Programming with Karel 3 - Problem-solving with Karel 4 - Introduction to Java Week 2 5 - Booleans and Control Flow 6 - Control Flow and Parameters 7 - Parameters and Return Week 3 8 - Characters and Strings 9 - Problem-Solving with Strings 10 - File Reading 11 - Graphics Week 4 12 - More Graphics 13 - Animation 14 - Events 15 - Events and Memory Week 5 16 - Arrays 17 - 2D Arrays 18 - More Arrays Week 6 19 - ArrayLists 20 - HashMaps 21 - Classes 22 - More Classes Week 7 23 - GCanvas and Interactors 24 - Interactors and NameSurfer 25 - Life After CS106A, Part 1 26 - Life After CS106A, Part 2 Week 8 27 - Final Exam Review 1 28 - Final Exam Review 2 / Wrapup Give Feedback Handouts 1 - General Information 1B - SCPD Information 2 - The Honor Code 3 - Programming with Karel 4 - Debugging with Karel 5 - JAR Files Assignments 1 - Karel the Robot 2 - Intro to Java 3 - Hangman 4 - Artistry and Breakout 5 - ImageShop 6 - NameSurfer Style Guide Section Section 1 Handout Solutions Code Section 2 Handout Solutions Code Section 3 Handout Solutions Code Section 4 Handout Solutions Code Section 5 Handout Solutions Code Section 6 Handout Solutions Code Section 7 Handout Solutions Code View My Section List of all section times/locations Drop Section Schedule Assignment 5: ImageShop Due: Monday, August 7, 11AM PST May be done in pairs Your fifth assignment is an image editing program that will give you practice with 1D and 2D arrays and image manipulation. Getting Started There is a starter project including all of these problems that you can access using the link below. Once you have the starter code set up, edit the program files so that the assignment actually does what it’s supposed to do (see the assignment handout), which will involve a cycle of coding, testing, and debugging until everything works. The final step is to submit your assignment. This assignment may (optionally) be done in pairs. As a reminder, you may only pair up with others with the same section time and location. Note: In general, limit yourself to using Java syntax taught in lecture, and the parts of the textbook we have read, up through the release of this assignment (July 31). You may, however, use material covered in class past this date for any optional extensions. If you would like to implement any extensions, please implement them in a separate file, such as ImageShopAlgorithmsExtra.java. Clearly comment at the top of this file what extensions you have implemented. Instructions on how to add files to the starter project are listed in the Eclipse page FAQ. Assignment Files To run the demo, download the JAR file below and double-click it to run. If you are unable to run it by double-clicking (e.g. due to an error message on Macs), instead right-click on the demo JAR file and click "Open". Handout Starter Code Demo Other Resources Note: the "Debugging with Karel" handout still provides valuable debugging tips for Java programs! In particular, the debugger functions identically for Karel and Java programs. You can also mouse over variables while the program is paused in the debugger to view their current value (super useful for arrays!) Eclipse Guide Style Guide Debugging with Karel The Honor Code F.A.Q. Q: I am trying to use println to debug my program, but it's not working. Why not? A: You can certainly debug using print statements in this assignment (or the debugger!), and we encourage it. But ImageShopAlgorithms.java is not a ConsoleProgram, so you cannot call println. To get around this, instead of writing just println, you need to write System.out.println, and the output will appear in the "Console" tab at the bottom of your Eclipse window. Q: I'm having trouble getting Eclipse to work! Help! A: Please make sure you followed the instructions in our Eclipse Guide above. If you are still having trouble, please come to Nick or Rishi's office hours, or stop by the LaIR. Q: Eclipse is giving me a strange message about a file being "out of sync" with the file system. It says I can press F5 to refresh the file. What does this mean? A: This happens if you edit/change your file outside of Eclipse. Just press F5 and Eclipse will show you the newest version of the file. Q: I didn't like the program name, such as Hangman, so I renamed it to my own name such as DaveIsGreat. That is okay, right? A: No. For grading purposes, we need you to leave the program names the way we named them. Q: How do I turn in the assignment? How do I know if my submission was successful? A: Please see the Eclipse Guide link above for more information about submitting. Q: Why doesn't my Java program say "[completed]" in the top status bar when it is done? A: This is often because your program contains an infinite loop. Make sure all of your loops are terminating properly when your program is finished! Also see the debugging handout above for how to use the Eclipse debugger to track down and squash bugs. Q: Will my solution get full credit? Is it written in the style you want? Will I get marked off for this code? A: In general we cannot answer these kinds of questions. We call this "pre-grading." The section leader/TA/instructor can't look over your entire program for mistakes or tell you exactly what things you will get marked off for; we don't have the resources to provide such a service, and even if we did, we want you to learn how to gain these intuitions on your own. We'll grade you on the guidelines in the homework document and style guide, and we can help you with specific issues and questions about your code, but we cannot pre-evaluate your entire program for you or give you advance warning about every possible mistake or violation. © Stanford 2017 | Created by Chris Piech and Nick Troccoli. CS 106A has been developed over time by many talented teachers.