Java Programming Course (Summer 2018 Camp)

By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=47759263By Arun Reginald (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commonshttps://upload.wikimedia.org/wikipedia/lv/3/34/Eclipse-logo.png


MondayTuesdayWednesdayThursdayFridayLinks

Course Material


Course  Description:
This camp is intended for the student with an interest in learning Java basics.
This course will focus on the development of fundamental concepts of algorithm design and programming in Java.  Programming will be done in the Java programming language by all  participants.
Prior knowledge of a programming language is recommended, but not necessary.

Topics include program construction, compiling\interpreting-running-debugging cycle, sequential programming (starting with "Hello World"), variables, data types, expressions, input/output, user-defined functions, assignment statements, conditionals (if - else), iteration (while and for), and arrays. Basic computer graphics will be incorporated as well (to the degree that time permits) as well as basic applet design.
 

Student learning outcomes: 

Upon completion of this camp, students will be able to:                             
  1. Describe the major components of a digital computer system with their functions.
  2. Be able to write a program, compile it, and interpret/run it (using Notepad++, Netbeans,  BlueJ, jGrasp, Eclipse,
    IntelliJ IDEA (Free Community Edition), ...).
  3. Write simple sequential programs using input, output, and assignment statements.
  4. Describe the concept of a variable, evaluate arithmetic expressions, and construct them in several application areas including daily-life, scientific, mathematical, and business-oriented. 
  5. Provide an algorithmic solution to a problem that requires sequential execution, simple repetitive execution, or simple conditional execution.
  6. Write programs to solve problems needing nested selections (conditionals) and repetitive execution (loops/iteration).
  7. Trace the execution of a program and debug it.
  8. Write and call functions that have parameters and return a value (or not).
  9. Write programs that manipulate one-dimensional and  two-dimensional arrays, and also explain the concept of a pointer variable.
  10. Write programs which generate basic graphics.
  11. Write basic applets for web page development. 

References (Java Programming):

Gaddis, Tony, Java Language Companion for Starting Out with Programming Logic and Design, 3rd Edition, Pearson, 2013.
  http://web.fscj.edu/Janson/COP1000/Java%20Language%20Companion.pdf
(fast basic reference, good for classroom agility)

  https://cs.wmich.edu/~rhardin/cs1110/textbook/ppt/        
  (PowerPoint Slides, for fast, easy exposition and reference)

Java Programming [, the Wikibook]
  https://upload.wikimedia.org/wikipedia/commons/e/e7/Java_Programming.pdf
  https://en.wikibooks.org/wiki/Java_Programming    (faster perusal via web)

Elements of Programming [in Java]
http://introcs.cs.princeton.edu/java/10elements/
(excellent coverage, web links, fast access to concepts, excellent exercises)

Sierra, Kathy and Bert Bates, Head First Java, Second Edition, O’Reilly, 2005.
(comical fun way to intro Java; depends on your type of humor)  And here it is:     http://www.opus-college.net/devcorner/HeadFirstJava2ndEdition.pdf
   
Eck, David J.,  Introduction to Programming Using Java, 2005 (vintage year:)
  http://math.hws.edu/eck/cs124/downloads/javanotes5-linked.pdf  


Offline References:

Gaddis, Tony, Starting Out with Java: From Control Structures through Objects, 5th Edition, Pearson, 2013.   (classic textbook)

Liang, Y. Daniel  Intro to Java Programming, Comprehensive Version, 10th Edition,  Pearson,   2015.    (another classic textbook)
 
Horstmann, Cay S., Core Java Volume I--Fundamentals, 10th Edition, Pearson, 2016   (yet another classic textbook)

Deitel & Deitel, Java How To Program (late objects), 10th Edition, Pearson,  2015. (prolifically productive pair)

Savitch, Walter and Mock, Absolute Java, 6th Edition, Pearson, 2016.

Farrell, Joyce, Java Programming, 4th Edition, Cengage (Course Technology –
PTR), 2008. (despite generic-Java title, every chapter has game programming)
 
Bell, Douglas and Parr, Mike, Java for Students, Sixth Edition, Prentice Hall
Pearson), 2010. (cheaper, older editions is fine too)
   
   
References (Java Game \ Graphics Programming):

Ian Cinnamon,  Programming Video Games for the Evil Genius, McGraw-Hill/TAB Electronics, 2008.

Andrew Davison, Killer Game Programming in Java,  OReilly,  2005.

Y. Daniel Liang and Hong Zhang,  Computer Graphics Using Java 2D and 3D, Prentice Hall, 2007,

Feldman, Ari,  Designing Arcade Computer Game Graphics, Republic of Texas Press (Wordware), San Antonio, TX, 2002.

Hardy, Vincent J.,  Java 2D API Graphics, Prentice Hall, Upper Saddle River, NJ, 1999.

Mulholland, Andrew and Glenn Murphy,  Java 1.4 Game Programming, Republic of Texas Press (Wordware), San Antonio, TX, 2003.

Petchel, Thomas, and Andre LaMothe (Editor), Java 2 Game Programming, Premier Press (division of Course Technology), Boston, MA 2001.

Andrew Davison,  Pro Java 6 3D Game Development: Java 3D, JOGL, JInput and JOAL APIs, Apress, 2007.

Steve Holzner,  Java After Hours: 10 Projects You'll Never Do at Work, Sams, 2005.

Frank Klawonn,  Introduction to Computer Graphics Using Java 2D and 3D, Springer-Verlag,  2008..

Jonathan Knudsen, Java 2D Graphics,  OReilly, 1999.


Java Introductory Videos:

https://www.youtube.com/watch?v=uYnY_7V_l6I     (Fudge is faster & no install details)   


https://www.youtube.com/watch?v=JPOzWljLYuU    (Fast, Interesting Examples with Netbeans, Helloworld)    

https://www.youtube.com/watch?v=WPvGqX-TXP0    (Super fast 30 minutes only but assumes too much OOP and skims/skips; good as 2nd source )    

https://www.youtube.com/watch?v=vlwvvNM71VY    (15 minutes example, too fast for intro)         

https://www.youtube.com/watch?v=jWTjHmuuvJs     (includes install & command-line & Eclipse)                

https://www.youtube.com/watch?v=KqwxrPHVxXg  

https://www.youtube.com/watch?v=RGcDksxiyJo

https://www.youtube.com/watch?v=3u1fu6f8Hto

https://www.youtube.com/watch?v=2If3RPgb_qE

https://www.youtube.com/watch?v=RG33PEQt3ms          (15 minutes)

(more to come soon (or an elastic clause :))