====== Schedule (CMPU-102-52, Spring 2017) ====== {{:courses:cs102-201752:workshopschedule.pdf|Workshop Invitation by the coaches}} ^ Date ^ Topic ^ Lecture Notes ^ Readings/Exercises ^ ^ 1/25 | Introduction: Comparison of Scheme and Java | {{:courses:cs102-201752:lecture1post.pdf|Lecture 1}} | Eck book, Ch.2 skip sections 2.3.4 and sections on TextIO, \\ in section 2.6, skip 2.6.3 and 2.6.5 (do exercises except those covering skipped sections) \\ \\ [[http://docs.oracle.com/javase/tutorial/getStarted/index.html|Oracle intro to Java]] \\ \\ [[https://programmingbydoing.com|PBD: Exercises 8 through 13]] \\ | ^ 1/30 | Primitive Data Types, Variables, Expressions, Assignment | {{:courses:cs102-201752:lecture2.pdf|Lecture 2}} | Eck book, Ch.3 (skip sections 3.7 and 3.9) and 4 (skip section 4.6) (do exercises except those covering skipped sections) \\ \\ [[https://programmingbydoing.com|PBD: Exercises 14 through 20]] | ^ 2/1 | Flow of control | {{:courses:cs102-201752:decisionsloops.pdf|Lecture 3}} | [[https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html|Oracle: Numeric Operators]] through [[https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html|Oracle: Operator Summary]] \\ \\ [[http://programmingbydoing.com|PBD: Exercises 32 through 40]] | ^ 2/6 | Conditional and Switch Statements, arrays | {{:courses:cs102-201752:4-loopsandarrays.pdf|Lecture 4}} | [[http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html|Oracle tutorial]] Language Basics (all sections) \\ Do exercises at end of each section \\ \\ [[http://programmingbydoing.com|PBD: Exercises 48 through 55 and 64 through 74]] | ^ 2/8 | Post lab comments; \\ switch statement; \\ arrays; \\ static methods; \\ objects, classes and instances | {{:courses:cs102-201752:lect5.pdf|Lecture 5}} | [[http://docs.oracle.com/javase/tutorial/java/javaOO/index.html|Oracle: Classes and Objects]] Read through Nested Classes. \\ Skip the Nested Classes section and all links below it for now. \\ \\ Eck book, Chapter 3, sections 1 - 6 and 8; \\ Chapter 4, sections 2 - 4, Chapter 5, sections 1 - 4 | ^ 2/13 | Writing classes that create objects; \\ Using the "this" keyword; \\ Reference and primitive types in memory; \\ Pass by value | Take notes in class \\ \\ {{:courses:cs102-201752:lect6.pdf|Lecture 6}} | Read Eck book, Chapter 5, sections 1 -4, \\ \\ [[http://docs.oracle.com/javase/tutorial/java/javaOO/index.html| Oracle: Classes and Objects]] up to nested classes. | ^ 2/15 | review of arrays and array notation; \\ passing and returning arrays from methods; \\ creating an array of objects; \\ constructors; \\ data encapsulation | {{:courses:cs102-201752:lecture7.pdf|Lecture 7}} \\ \\ Files from lab 3: {{:courses:cs102-201752:person.java|Person.java}} \\ {{:courses:cs102-201752:testperson.java|TestPerson.java}} | Read Eck book, chapter 3, section 8 and Chapter 7, sections 1 and 2 on arrays | ^ 2/20 | How does Java form hierarchies and why? \\ superclasses and subclasses; \\ interfaces and subtypes; \\ constructors; \\ super keyword | {{:courses:cs102-201752:lecture8.pdf|Lecture 8}} | Read Eck book, chapter 5, sections 5-7 on inheritance, abstract classes and interfaces \\ \\ [[http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html|Oracle Tutorial on Inheritance]] | ^ 2/22 | Java Inheritance; interfaces; casting a super to subtype | {{:courses:cs102-201752:lecture9.pdf|Lecture 9}} | Read Eck book, chapter 5, sections 5-7 on inheritance, abstract classes and interfaces \\ {{:courses:cs102-201752:inher.html|Reading about inheritance}} \\ {{:courses:cs102-201752:randomnumbers.html|Reading about random numbers}} \\ {{:courses:cs102-201752:constructors.html|Reading about constuctors}} \\ \\ [[http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html|Oracle Tutorial on Inheritance]] | ^ 2/27 | Inner classes \\ Stacks \\ Exceptions | {{:courses:cs102-201752:lect10.pdf|Lecture 10}} | Read Eck book: section 9.2 and 9.3 Linked Lists, Stacks and Queues \\ Section 5.8 on inner classes \\ Read section 3.7 and Section 8.3 on Exceptions | ^ 3/1 | Stacks \\ Exceptions \\ Generic types | {{:courses:cs102-201752: lect11.pdf|Lecture 11}} | Read Eck book: Section 3.8 on arrays | ^ 3/6 | Review for midterm | {{:courses:cs102-201752:exam1-review.pdf|General overview}} | [[https://docs.oracle.com/javase/tutorial/java/generics/index.html|Oracle Java Tutorial]] on parameterized types, read first few pages only. | ^ 3/8 | Returned and reviewed midterm | | {{:courses:cs102-201752:exam1s17sol.pdf|Midterm solutions}} | ^ Spring Break ^ ^ ^ ^ 3/27 | Start of GUI Programming | {{:courses:cs102-201752:lect12.pdf|Lecture 12}} \\ {{ :courses:cs102-201752:helloworldgui1.java | Save as HelloWorldGUI1.java}} \\ {{ :courses:cs102-201752:componentgui.java | Save as ComponentGUI.java}} \\ {{ :courses:cs102-201752:helloworldgui2.java | Save as HelloWorldGUI2.java}} | Read Eck book : //before class// \\ Chapter 6: \\ 6.1 (all), \\ 6.2 (all), \\ 6.4.1, \\ 6.5 (all), \\ 6.6.1, \\ 6.6.4 | ^ 3/29 | More GUI Programming | {{:courses:cs102-201752:lect13.pdf|Lecture 13}} | Read Eck book : \\ Chapter 6: \\ 6.3 (all), \\ 6.2 (all), \\ 6.4 (all) \\ 6.5 (all), \\ 6.6 (all) | ^ 4/3 | GUI Programming | {{:courses:cs102-201752:lect14.pdf|Lecture 14}} \\ {{ :courses:cs102-201752:simplecalculator.java |Click on file, copy all the text, and paste it into a file called SimpleCalculator.java}} \\ \\ {{ :courses:cs102-201752:fileio.txt |FileIO.txt}} | Read Eck book : \\ Chapter 6: \\ 6.3 (all), \\ 6.2 (all), \\ 6.4 (all) \\ 6.5 (all), \\ 6.6 (all) | ^ 4/5 | No slides available | | ^ 4/10 | GUI PROGRAMMING and TEXT I/O | {{:courses:cs102-201752:lecture15a.pdf|Lecture 15}} \\ | Read Eck book : Chapter 11: \\ 11.1.2 (all), \\ 11.1.4 (all) | ^ 4/12 | Recap of lab 8/homework 5 \\ debugging \\ 2-D arrays | {{:courses:cs102-201752:lecture16.pdf|Lecture 16}} \\ | | ^ 4/17 | 2-D arrays | {{:courses:cs102-201752:lecture17.pdf|Lecture 17}} \\ | | ^ 4/19 | acm package: simplifying programs \\ \\ HashMap container. \\ Concept of hashing. \\ \\ Heap structure for priority queues. | {{:courses:cs102-201752:lect18.pdf|Lecture 18}} \\ | | ^ 4/24 | acm package \\ \\ acm shape components \\ \\ differences in acm class vs standard java | {{:courses:cs102-201752:lect19.pdf|Lecture 19}} \\ | | ^ 4/26 | review of important concepts | {{ :courses:cs102-201752:review.pdf | Lecture 20}} \\ \\ READ THESE LECTURE SLIDES...THEY ARE REVIEW of MATERIAL LEARNED THROUGHOUT THE SEMESTER | Talk about lab 10 | ^ 5/1 | Implementing interfaces for comparisons \\ Comparator and Comparable \\ \\ Analysis of Algorithms | {{ :courses:cs102-201752:lecture21.pdf | Lecture 21}} \\ \\ {{ :courses:cs102-201752:analysisofalgorithms.pdf | Classifying algorithms by order of growth: Asymptotic Analysis}} | Talk about lab 11 |