
1. What's the class about?
1.1. Introduction to Computer Science
1.2. Overview of computer science through writing programs in Java involving graphics, sound and interaction.
1.3. Student Outcomes
1.3.1. An ability to apply mathematical foundations, algorithmic principles, and computer science theory to the modeling and design of computer-based systems
1.3.1.1. Finite state machines
1.3.1.2. Basic geometry and trigonometry for interactive graphical applications
1.3.2. An ability to define the computing requirements of a problem and to design appropriate solutions based on established design principles and with an understanding of the tradeoffs involved in design choices
1.3.2.1. Software projects
1.3.2.2. Lab problems
1.3.3. An ability to use sound development principles to implement computer-based and software systems of varying complexity, and to evaluate such systems
1.3.3.1. Coding standards
1.3.3.2. Defensive programming
1.3.3.3. Object-oriented design
1.3.4. An ability to use current techniques, skills, and tools necessary for computing practice
1.3.4.1. Java
1.3.4.2. Eclipse
1.3.4.3. Gimp
1.3.4.4. Audacity
1.4. Previous Projects
2. What is programming like?
2.1. http://www.thrashermagazine.com/articles/videos/magnified-jerry-gurney-062015/
3. Instructor
3.1. Jason Leigh
3.2. http://jasonleigh.me
4. TAs
4.1. Anupriya Srivastava
4.1.1. anupriya@hawaii.edu
4.2. Jason Catiglione
4.2.1. jcastig@hawaii.edu
4.3. Tyson Seto-Mook
4.3.1. tmook@hawaii.edu
4.4. Nurit Kirshenbaum
4.4.1. nuritk@hawaii.edu
4.5. Sergey Negrashov
4.5.1. sin8@hawaii.edu
5. Class Location & Time
5.1. ARCH 205
5.2. Monday and Wednesday at 9:00a-10:15a
5.3. https://manoa.hawaii.edu/campusmap/uhmmap.pdf
6. Lab Location & Times
6.1. Tuesdays & Thursdays in either POST 318A or 319
6.2. Jason Catiglione
6.2.1. Section 1: 9a @ POST 318A
6.2.1.1. Man Chon Kuok (ATA)
6.3. Sergey Negrashov
6.3.1. Section 2: 9a @ POST 319
6.3.1.1. Anson Yu
6.3.2. Section 3: 10:30 @ POST 318A
6.4. Tyson Seto-Mook
6.4.1. Section 4: 10:30 @ POST 319
6.5. Nurit Kirshenbaum
6.5.1. Section 5: 12p @ POST 318A
6.5.1.1. Sun Chu (Jaeryn) (ATA)
6.6. Anupriya Srivastava
6.6.1. Section 6: 12p @ POST 319
6.6.1.1. Jaron Kuriyama (ATA)
7. Office Hours & Location
7.1. Jason Leigh
7.1.1. Monday and Wednesday 10:15-11:15
7.1.2. Keller 102
7.2. Anupriya Srivastava
7.2.1. By Appointment
7.3. Jason Catiglione
7.3.1. Immediate after Lab
7.4. Tyson Seto-Mook
7.4.1. Tues/Thurs 12pm-1pm in POST 314-10
7.5. Nurit Kirshenbaum
7.5.1. 1:15-2:30 T, Th in ICS Space
7.6. Sergey Negrashov
7.6.1. 1pm - 2pm T, Th - POST 307
8. Additional Assistance
8.1. Code Academy
8.2. ICS Open Labs
8.2.1. POST 318A
8.2.2. Mondays: 9am-9pm
8.2.3. Tuesday, Thursdays: 6pm - 9pm
8.2.4. Weds, Fridays: 7:30pm-9;m
8.3. Learning Emporium
8.3.1. Bilger Addition 209
8.3.2. Tues-Fri: Noon - 2pm
9. Class Schedule
9.1. Jan 11 - Intro to class logistics
9.2. Jan 12 - Lab: Bring your laptops. Set up tools
9.3. Jan 13
9.3.1. Hello World
9.3.1.1. Java compiler
9.3.1.2. Flow of a program
9.3.1.3. Main()
9.3.1.4. Libraries
9.4. Jan 14 - Lab: Assignment 1 - Get Hello World working
9.5. Jan 18 - MLK day
9.6. Jan 19 - Lab Assignment 2 - Math review
9.7. Jan 20
9.7.1. Bug Run
9.7.1.1. Graphics
9.7.1.2. Variables
9.7.1.3. Loop
9.7.2. Saber Bouncer
9.7.2.1. Graphics
9.7.2.2. Variables
9.7.2.3. Loop
9.7.2.4. If
9.8. Jan 21 - Quiz 1 - Basic Math
9.9. Jan 25
9.9.1. Guess a Number Game
9.9.1.1. Loop
9.9.1.2. If
9.9.1.3. Print
9.9.1.4. Random
9.9.1.5. Variables
9.9.2. Pong
9.9.2.1. Graphics
9.9.2.2. Variables
9.9.2.3. Loop
9.9.2.4. If
9.9.2.5. Keyboard control
9.10. Jan 26 - Lab Assignment 3 - Variables, Operators, Printing
9.11. Jan 27
9.11.1. Walkabout
9.11.1.1. Graphics
9.11.1.2. Loop
9.11.1.3. Keyboard control
9.11.2. Click And Play
9.11.2.1. Graphics
9.11.2.2. Mouse clicking
9.11.2.3. Sound
9.11.2.4. Loop
9.12. Jan 28 - Quiz 2 - Variables, Operators
9.13. Feb 1
9.13.1. For loops
9.13.2. Start on arrays
9.14. Feb 2 - Lab Assignment 4 - Practice Do, If-Else
9.15. Feb 3
9.15.1. 1D Arrays
9.16. Feb 4 - Quiz 3 - If & Do loops
9.17. Feb 8
9.17.1. Project 1 - Milestone 1
9.17.2. Object Oriented Programming
9.18. Feb 9 - Lab Assignment 5 - For loops, While loops, and 1D arrays
9.19. Feb 10
9.19.1. Bug Run Objectified
9.19.1.1. Objects and Defining Classes
9.19.1.2. Graphics
9.19.1.3. Mouse interaction
9.20. Feb 11 - Quiz 4 - While & If
9.21. Feb 15 - Presidents Day
9.21.1. Project 1 - Milestone 2
9.22. Feb 16 - Lab Assignment 6 - More practice with 1D arrays & Object oriented programming
9.23. Feb 17 - NSF PI Workshop
9.23.1. Audition Project 1
9.24. Feb 18 - Quiz 5 - For loops
9.25. Feb 22
9.25.1. Bug squish game
9.25.1.1. More intricate
9.25.1.2. Objects / Classes
9.25.1.3. Graphics
9.25.1.4. Mouse interaction
9.25.1.5. Arrays
9.25.1.6. Sound
9.26. Feb 23 - Lab Assignment 7 - More object oriented programming
9.27. Feb 24
9.27.1. Students against nutritious edibles
9.27.1.1. Arrays
9.27.1.2. Objects / classes
9.27.1.3. File I/O
9.28. Feb 25 - Quiz 6 - Arrays
9.29. Feb 29 - More File Reading
9.29.1. Project 2 - Milestone 1
9.29.2. Graphics Transformations
9.29.2.1. Graphics- specifically translateto translateby forward rotateto rotateby turnLeft turnRight
9.29.2.2. Switch statements
9.29.2.3. String parsing
9.30. Mar 1 - Lab Assignment 8 - File reading & switch statmets
9.31. Mar 2
9.31.1. Pidginator
9.31.1.1. File reading and writing
9.32. Mar 3 - Quiz 7 - Objects
9.33. Mar 7
9.33.1. Chicken Run
9.33.1.1. Multiple classes and objects
9.33.1.2. for loop
9.33.1.3. Objects / Classes
9.33.1.4. Graphics
9.33.1.5. Keyboard interaction
9.33.1.6. Arrays
9.33.1.7. Final static int
9.33.1.8. Sound
9.33.2. Project 2 - Milestone 2
9.34. Mar 8 - Lab Assignment 9 - file writing
9.35. Mar 9
9.36. Mar 10 - Quiz 8 - string parsing with switch statements
9.37. Mar 14
9.37.1. Project 2 - Milestone 3
9.37.2. Mirror Writer
9.37.2.1. File reading and writing with characters
9.38. Mar 15 - Lab Assignment 10 - File writing
9.39. Mar 16
9.39.1. Audition Project 2
9.39.2. Finite State Machines
9.39.2.1. Super Hero
9.40. Mar 17 - Quiz 9 - File writing
9.41. March 21-25 - Spring Break
9.42. Mar 28
9.42.1. Shuffle a deck of cards
9.42.1.1. Objects / defining classes
9.42.1.2. Arrays
9.42.1.3. Nested for loops
9.43. Mar 29 - Lab Assignment 11 - file reading and writing with characters
9.44. Mar 30
9.44.1. Rewrite Card shuffle with ArrayList
9.44.1.1. introduce ArrayList
9.45. Mar 31 - Quiz 10 - File reading and writing with characters
9.46. Apr 4
9.46.1. Project 3 - Milestone 1
9.46.2. 2D Arrays
9.47. Apr 5 - Lab Assignment 12 - ArrayList
9.48. Apr 6
9.48.1. 2D arrays
9.48.1.1. Battleship Map Creator
9.49. Apr 7 - Quiz 11 - ArrayList
9.50. Apr 11
9.50.1. Scope and Inheritance
9.51. Apr 12 - Lab Assignment 13 - 2D arrays
9.52. Apr 13
9.52.1. Private. Public, Protected scope
9.53. Apr 14 - Quiz 12 - 2D arrays
9.54. Apr 18
9.54.1. Factorial, Turtle Graphics and Fractals
9.54.1.1. Graphics
9.54.1.2. Recursion
9.54.2. Project 3 - Milestone 2
9.55. Apr 19 - Lab Assignment 14 - Inheritence
9.56. Apr 20
9.56.1. EZ Groups
9.57. Apr 21 - Quiz 13 - Private, Public, Protected & scope & static member variables
9.58. Apr 25
9.58.1. Try/Catch
9.59. Apr 26 - Lab Assignment 15 - Private, Public, Protected & scope & static member variables
9.60. Apr 27
9.60.1. Catch up
9.61. Apr 28 - Quiz 14 - Inheritance
9.62. May 1
9.62.1. Project 3 - Milestone 3
9.63. May 2
9.63.1. FINAL PRESENTATION pt 1
9.64. Mar 3 - No Lab
9.65. May 4 - Last Day of Class
9.65.1. FINAL PRESENTATION pt 2
9.66. May 9 - FINAL EXAM DUE
9.67. May 18 - GRADES AVAILABLE
10. Grading
10.1. Projects - 33 points
10.1.1. Project 1 - 10 points
10.1.1.1. Individual project
10.1.2. Project 2 - 10 points
10.1.2.1. Individual project
10.1.3. Project 3 - 13 points
10.1.3.1. Design your own project as a team
10.1.3.2. Choose your own team members
10.1.4. Previous Projects
10.2. Lab Assignments - 30 points
10.2.1. 15 lab assignments
10.2.1.1. Solving small problems by writing code
10.2.1.2. Extending lecture examples
10.2.1.3. Commenting code segments
10.2.1.4. Tracing code segments
10.2.2. 2 points each starting 1st week of class
10.2.3. Tues labs will have a mini-assignment that must be turned in for points. One will be due at the beginning of lab for 1 point, and the other will be due at the end of lab for 1 point.
10.2.4. The first mini-assignment will be sent out in advance of the lab and you will complete it as homework.
10.3. Achievement Quizzes - 42 points
10.3.1. 14 Achievement quizzes will be given (1 per week)
10.3.2. First quiz will be given on the 1st week of class on Thurs
10.3.3. 3 points each
10.3.4. Quizzes are intended to make sure you have the must basic ability to use the concepts you learned in Java so that you arenʻt an embarrassment to your team mates.
10.3.5. If you miss a quiz there is no retake.
10.3.6. Main Quiz Topics
10.3.6.1. Quiz 1
10.3.6.1.1. Math quiz
10.3.6.2. Quiz 2
10.3.6.2.1. what does the java compiler produce
10.3.6.2.2. variables
10.3.6.2.3. basic types- int, float, String
10.3.6.2.4. How do you print something on the screen
10.3.6.3. Quiz 3
10.3.6.3.1. If statement
10.3.6.3.2. do loop
10.3.6.3.3. some variable math questions
10.3.6.4. Quiz 4
10.3.6.4.1. While loop
10.3.6.4.2. If statement
10.3.6.4.3. Increment with ++
10.3.6.5. Quiz 5
10.3.6.5.1. Declaring a class
10.3.6.5.2. Making a class object
10.3.6.5.3. Calling a class member function
10.3.6.6. Quiz 6
10.3.6.6.1. For loop
10.3.6.6.2. Declaring a class
10.3.6.6.3. Making a class object
10.3.6.6.4. Calling a class member function
10.3.6.7. Quiz 7
10.3.6.7.1. Switch statement
10.3.6.7.2. Scanner- read from command line / string parsing
10.3.6.8. Quiz 8
10.3.6.8.1. Arrays
10.3.6.8.2. Nested for loop
10.3.6.9. Quiz 9
10.3.6.9.1. static final members
10.3.6.9.2. scope rules (not public/private/protected etc..)
10.3.6.10. Quiz 10
10.3.6.10.1. File reading and writing
10.3.6.11. Quiz 11
10.3.6.11.1. ArrayList, Integer, Float types
10.3.6.12. Quiz 12
10.3.6.12.1. 2D arrays
10.3.6.13. Quiz 13
10.3.6.13.1. Public, Private, Protected
10.3.6.14. Quiz 14
10.3.6.14.1. Inheritance
10.3.7. All quizzes are closed book. Eclipse may not be used during the quizzes.
10.4. Final Exam - 5 points
10.4.1. 1 take home
10.5. Extra Credit
10.5.1. Extra credit is already built into your grade.
10.5.2. See "How to Compute Your Grade".
10.6. What if I Miss a Lab or Quiz?
10.6.1. See "How to Compute Your Grade"
10.7. How to Compute Your Grade
10.7.1. You will notice the points add up to 110.
10.7.2. Your grade maxes out at 100 points. The 10 points are free extra credit points that is given to all of you at the beginning of class that make up for missed quizzes or labs or any other random acts of life. If your final grade is on the edge of a letter grade do not ask for any extra credit work. None will be given as you already have 10 free extra points.
10.7.3. On Laulima if you get 100 points it is computed as 90.9% (100/110 = 90.9%) which is considered an A+. See below for full grade scale.
10.7.4. A+ = 100/110 = 90.9%
10.7.5. A = 95/110 = 86.4%
10.7.6. A- = 90/110 = 81.8%
10.7.7. B+ = 87/110 =79%
10.7.8. B = 83/110 = 75%
10.7.9. B- = 80/110 = 72.7%
10.7.10. C+ = 77/110 = 70%
10.7.11. C = 73/110 = 66.4%
10.7.12. C- = 70/110 = 63.6%
10.7.13. D+ = 67/110 = 60.9%
10.7.14. D = 63/110 = 57.2%
10.7.15. D- = 60/110 = 54.5%
10.7.16. F = Anything below a D-
11. The Labs
11.1. Installing and setting up Java and Eclipse
11.2. Bring your laptop to every class and every lab
11.3. Tues: Graded Lab mini-assignment
11.4. Thurs: Help on projects, then Graded Quiz & review
11.5. Login into your lab account
11.6. WARNING
11.6.1. No food or drink allowed in labs
11.6.2. No unplugging equipment in labs
11.6.3. Anyone caught doing it will be dismissed from lab and given ZERO points for their lab session that day.
12. Handing In Projects
12.1. Projects will be handed-in by uploading to Laulima under the ASSIGNMENT by the deadline indicated for the assignment.
12.2. Every project will have milestones with due dates for them.
12.3. Late work is accepted up to a week late but a 50% penalty will be imposed.
12.4. An assignment is considered late if the submission time is registered by Laulima as 1 minute past due date and time. No Exceptions.
12.5. Any subsequent RESUBMISSION of the assignment past the due date is considered a late submission even if the original submission was submitted on time.
12.6. To upload your project
12.6.1. Go to your project folder and zip everything up into a single Zip file. Make sure all sound files and images are included as well as a copy of EZ.java and all other java files you wrote.
12.6.2. Turn in this zip file in Laulima under the Assignments folder (the same place where you downloaded the assignment in the first place).
12.6.3. As for the video URL, go to the Resources Folder on Laulima. You will find a subfolder for this project in which you can add your URL.
13. Required Class Materials
13.1. Your own laptop
13.2. EZ Graphics
13.3. Java
13.4. Eclipse
13.5. Audacity
13.6. Gimp
13.7. Open Broadcaster Software
14. What NOT to do if you miss the first week or so of class
14.1. http://www.youtube.com/watch?v=zSNc8F9tqzY
15. Textbook
15.1. ICS111 Just Enuf Java - availabe on Laulima under Resources
15.2. Java for Dummies (free from UH Digital Library)
15.2.1. http://proquestcombo.safaribooksonline.com.eres.library.manoa.hawaii.edu/book/programming/java/9781118417645