| layout | default |
|---|---|
| title | |
| description | Index page |
Course Spreadsheet - Schedule, Links, and Scores.
Aj. Jitti's Material is on E-lab and Maxlearn
| Week | Topics | Assignment |
|---|---|---|
| Aug 8 | [Review](week2/Review) of week1 lessons from [code.org](http://code.org). [Intro to Java](week2/Intro-to-Java) and [slides](week2/0-Intro-to-Java.pdf) [Tools](Resources) you need: Java JDK, Java Documentation, IDE, and Git. [Program Structure](week2/Program-Structure) and how to compile; [slides](week2/1-Program-Structure.pdf). [Variables](week2/2-Variables.pdf) how to define variables, rules for names. [Primitive Data Types](week2/3-Primitive-Datatypes.pdf) Optional [Java Basics](week2/X-Java-Basics.pdf) quick summary of basic Java syntax for students who already know how to code. | **Lab** 1. [Intro to Java](week2/Lab1-Intro.pdf) with Greeter program. **New:** added optional problems using dialog boxes. 2. [elab](https://elab.cpe.ku.ac.th) - must be done by next week. |
| Sep 26 | [Introduction to Git](git/intro-git) [Introduction to Github](git/intro-github) and [PPT presentation]( git/Using-Github.pdf) Example: [Student Projects](https://skeoop.github.io/projects) from OOP2 [Github Organization](git/Github-Organization.pdf) for this course. Example: [OOP2 last semester](https://github.com/orgs/OOP2017/people) | **Lab:** [Git Assignment](git/lab-git) there will be a quiz on this next week. **SKE Restaurant:** You must create a Github repository named **ske-restaurant** and commit your code there. Use that name **exactly**. **Homework:** Learn to use the command line on your computer. Know how to: a) change directory, b) list files, c) list all files including hidden files, d) rename or move files, e) run a program. |
| Sep 26 (cont.) |
Guidelines for Writing Good Code [slides](coding/Coding-Guidelines.pdf) | **Lab:** [Code Improvement Lab](coding/lab-code-improvement) This assignment uses Github. **Due:** Sunday, 1 Oct, 20:00 on Github. Problem 3 (fixcode): [https://classroom.github.com/a/A0HAJsTW](https://classroom.github.com/a/A0HAJsTW) Study: [Java Coding Standard](coding/Java-Coding-Standard.pdf) |
| Oct 3 | [Introduction to Arrays](java-basics/17-Arrays.pdf). [Using arrays](java-basics/18-Using-Arrays) idioms and useful methods. Practice with arrays. Review of [Git concepts](git/git-transport-commands.pdf), rethink about .gitignore. | **Lab:** [Arrays Lab](arrays/lab-arrays) using Github. [JUnit Test Cases](https://github.com/OOP2018/arraylab-test). Lab URL: [https://classroom.github.com/a/fRBMqAfi](https://classroom.github.com/a/fRBMqAfi) to create your repository. **Read**: *Big Java*, Ch. 7 *Arrays*. Only 40 pages, easy to read. **Homework 2**: [SKE Restaurant with Arrays](assignments/homework2) Revise SKE Restaurant to use **arrays** for menu items, prices, and customer's order. Commit the code to Github (repo name **ske-restaurant**) by Sunday, 8 Oct 24:00. No credit if Github repo name is not **ske-restaurant**. See the **Checklist** at end of [Homework2](assignments/homework2). |
| Oct 10 | [Review of Arrays](arrays/Review.pdf) [2-Dimensional Arrays](java-basics/19-Arrays-2D.pdf) How to Read the [Java API](https://docs.oracle.com/javase/7/docs/api/) (Javadoc) - [Dummies Guide](http://www.dummies.com/programming/java/making-sense-of-javas-api-documentation/) and [tutorial](http://www.otherwise.com/Lessons/ReadingTheJavadoc.html) [List and ArrayList](java-basics/20-ArrayList.pdf) (slides) | **Quiz** **Lab:** [ArrayList Lab](arrays/lab-arraylist) using Github. Lab URL: [https://classroom.github.com/a/-cZ1ppg-](https://classroom.github.com/a/-cZ1ppg-) to create your repository. **Read**: *Big Java*, Ch. 7 *Arrays* covers 2D arrays and ArrayList. **Suggested**: [Java Tutorial on ArrayList](https://docs.oracle.com/javase/tutorial/collections/implementations/list.html) and very brief [Beginners Book](https://beginnersbook.com/2013/12/java-arraylist/). **Homework**: 1. Resubmit **fixcode** by Wednesday, 11 Oct, 22:00. Last chance. 2. Resubmit **arraylab** by Friday, 22:00. 3. ArrayList lab (above). Due: Sunday, 15 Oct. 8:00 (AM). 4. [SKE Restaurant using Arrays](assignments/homework2) - must *really* use array. Details: see [assignment](assignments/homework2) and testing critieria in Google spreadsheet. **Grading Criteria**: See the [Course Spreadsheet](https://goo.gl/y4xqaS) "Grading Criteria" sheet on Google Docs. |
| Oct 17 | [Review of ArrayList](review/Review-Arraylist.pdf) Method Parameters & Pass by Value [slides](java-basics/14-Method-Parameters.pdf) Input and Output Classes (I'm revising this material) - [slides from OOP](input-output/Input-Output.pdf) | **Quiz** - coding problem using arrays Lab: some input/output practice Review and correction of SKE Restaurant **Read**: *Big Java*, Ch. 11.1-11.2 (Input/Output), 11.4 **Homework 3**: [SKE Restaurant with Menu File and Restaurant Manager](assignments/homework3). |
| Oct 24 OOP |
[Introduction to Objects](objects/1-Introduction-to-Objects.pdf) [Defining Classes](objects/2-Defining-Classes.pdf) for objects (Optional) [Review](review/Review-Package-Import.pdf) packages and import | **Quiz** reading from a file, using Arrays and ArrayList Lab: [Objects Lab](objects/lab-objects) Lab URL: [https://classroom.github.com/a/ubpc4JQ8](https://classroom.github.com/a/ubpc4JQ8) **Read**: *Big Java*, Ch. 2 (Objects) and Ch. 3 (Implementing Classes) **Suggested**: Java Tutorial on [Classes and Objects](https://docs.oracle.com/javase/tutorial/java/javaOO/index.html) **Project Proposal**: [Instructions and Template](https://goo.gl/hegYGY) and [Sign-up Form](https://goo.gl/BUhK9k). |
| Oct 31 OOP |
[Inheritance](objects/Inheritance-Practice.pdf) and Polymorphism [Inheritance slides](objects/4-Inheritance.pdf) More About Objects [Review of Object Basics](review/Review-Object.pdf) | **Quiz**: computer-based quiz using Github classroom **Lab**: [Inheritance](objects/lab-inheritance.pdf) - extend Person and BankAccount from last week. **Read**: *Big Java*, Ch. 9 (Inheritance and Polymorphism). **Suggested**: Java Tutorial on [Polymorphism](https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html) **Note:** Polymorphism is key to O-O programming. Inheritance enables polymorphism and code reuse. Try to understand them thoroughly. |
| Nov 7 | [Writing equals and toString](objects/7-Fundamental-Methods.pdf) [Polymorphism](objects/5-Polymorphism.pdf) [Reference as Remote Control](objects/6-Reference-as-Remote-Control.pdf) Factories for Object Creation | **Lab**: [Polymorphism, equals](objects/lab-polymorphism) **Assignment Cancelled**: [HW4: SKE Restaurant with objects](assignments/homework4) (Optional if you already finished HW2&HW3) **Coding Practice**: [Fraction class](assignments/Fraction.pdf) recommended for practice writing classes. There is an **app** for this. |
| Nov 14 | **No Class this week** How to [create a game with JavaFX](https://github.com/jbrucker/guessing-game) and MVC design. [English punctuation rules](English-Grammar). | **Assignment**: Add link to your Github repo to [Projects Page](https://goo.gl/BUhK9k). Examples: [Guessing Game with JavaFX](https://github.com/jbrucker/guessing-game) and MVC design. |
| Nov 19 | SKE Restaurant resubmittal. [Checklist for Assignment](assignments/ske-restaurant-checklist.md) | Last day to resubmit for partial credit. [Checklist for Assignment](assignments/ske-restaurant-checklist.md) Repository must be **ske-restaurant**, with correct project structure and correct class/package naming. |
| Nov 21 | KU Graduation Ceremony. No class. | Work on your project. Write prototype code. Have something running as soon as you can. Ask TAs and instructor for help! **Practice Problem**: [Fraction class](assignments/Fraction.pdf) |
| Nov 28 | Final & Project Date/time Intro to New SKE Curriculum by Prof. Kitsana, 1:15PM How to create a JAR file Project Development and review. Be ready to demo what you have so far. | [Review Lab](https://classroom.github.com/a/QMuQcnMn) some review questions. **Quiz** primarily on Oct 24-Nov 7 topics. You must have code in Github and something to demonstrate. Ask TAs and instructor for help! |
| Review | [Practice Exam](review/exam-sample) [Lab 15 Solution](labs/Lab15-solution) [Quiz 8 Solution](labs/Complex.java) Ske-restaurant Solution: [Fatalai Jon](https://github.com/fatalaijon/ske-restaurant) wrote OK code, but other students wrote better code. Look at repos of students with high score. | [Java Tutorial on Udemy](https://www.udemy.com/java-tutorial/) nice online course starts easy, covers a lot. |
Big Java, 5th Ed. by Cay Horstmann. Book is easy to read, but long. Horstmann has written many popular Java books, including Core Java (favorite of programmers) and Object-oriented Design & Patterns (favorite among SKE students).
Contact me for how to get Big Java.