LordPankake

Java Course Outline

Oct 24th, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. If I were to teach a course on Java or do an online series, here is the outline that I would attempt to follow. Currently incomplete and not fleshed out entirely.
  2.  
  3. The Concepts: Part 1
  4. - Objects
  5. - Create metaphorical example?
  6. - Example: A forge cast is an class. The item made by the cast are the objects.
  7. The Basics
  8. - Primitives (and String)
  9. - Byte sizes of types
  10. - When to use each
  11. - Short vs Byte vs Int
  12. - All have no decimals
  13. - Different minimums/maximums
  14. - Double vs Float
  15. - All have decimals
  16. - Different minimums/maximums and accuracy
  17. - Syntax
  18. - Different preferences ({} placeage, tab vs. spaces,)
  19. - Hello world
  20. - Console output
  21. - Calculator
  22. - Console input
  23. - Addition, subtraction, multiplication, division, modulus, n'th root, n'th power
  24. File IO
  25. - File (java.io.File)
  26. - Checking if a given file exists
  27. - Creating files and parent directories if they do not exist
  28. - Different readers and writers for different situations
  29. - Saving / reading text
  30. - Saving / reading an image
  31. Data Storage
  32. - Arrays
  33. - Lists
  34. - Set
  35. - Maps
  36. - The differences and when to use them
  37. The Concepts: Part 2
  38. - Encapsulation, Inheritance, Polymorphism
  39. Classes
  40. - Static utility classes (Math)
  41. - Inheritance (extension and implementation)
  42. - instanceof with objects
  43. - Bring up modifiers
  44. - Field/method visibility with inheritance and object referencing
  45. The Concepts: Part 3
  46. - Keeping code abstract and reuseable
  47. Swing GUI
  48. - JFrame, JOptionPane messages
  49. - Adding components to JFrame
  50. - Different layout managers (And null manager)
  51. - Theory of design (How to make user-intuitive designs)
  52. - Where to place user input vs output
  53. - What LayoutManager should be used (Or combination of)
  54. - Is the program re-sizable?
  55. - When is padding good?
  56. - Is there too much to put on a single frame / panel?
  57. - Using TabbedPanels and other components to keep the user-interface usable
  58. - Keep content categorized / organized
  59. Graphics and Hardware Input
  60. - Drawing on components with Graphics
  61. - Converting to Graphics 2D
  62. - Pacman animation with key control
  63. - Keyboard listener
  64. - MS-Paint clone with mouse control
  65. - Mouse listener
  66. Threading
  67. - Using threads for tasks that do not need to by synchronous (such as data retrieval for instant use)
  68. - Saving data
  69. - Showcase inconsistency of threads(Create dozen threads with same task and show the varying completion times)
  70. - Concurrency and using threads in complex programs without causing problems (Different threads not accessing the same values and other fun times)
  71. - It is only mentioned in the course, not explored
  72. Networking
  73. - Reading text off of websites (Example usage: version checking)
  74. - TCP vs UDP argument. Discuss appropriate usages of both.
  75. - TCP: Client to Server connection
  76. - Example: Logging into a server. Transferring acknowledgements)
  77. - Data transfer is ensured and verified
  78. - UDP: Client to any other client
  79. - Example: Updating a video feed
  80. - Data transfer is not ensured
  81. - Also a lighter load than TCP. Not as intensive
  82. - Sending data over connections (UDP and TCP)
  83. - Sending bytes, strings, and objects
  84. Modular Projects
  85. - Examples of modular systems in known projects
  86. - Class loaders
  87. - Loading individual class files from a URL
  88. - Loading jar files from a URL
  89. - Ugly hack that works: Adding jars to the classpath at runtime
  90. - Discuss quirks such as loading two classes in different loaders and checking for inheritance.
  91. - Assuming 'Green' extends 'Color'
  92. - Loaded both in different loaders: greenObject instanceof Color or Color.class.isAssignableFrom(GreenObj.getClass()) returns false.
  93. - If both are loaded using the same ClassLoader, instanceof and isAssignableFrom will return true.
  94. Bytecode and Reverse Engineering
  95. - What is bytecode
  96. - Known decompilers and their differences
  97. - How to edit bytecode
  98. - Existing programs
  99. - Creating your own
  100. - ASM, Javaassist, BCEL
Advertisement
Add Comment
Please, Sign In to add comment