A programming journal is a great way to keep track of what you are learning. It is a helpful place to make notes of insights and terminology and short code segments that do useful things. It is also a very practical way for you to see how much you are doing and learning.
What I do, and you can certainly do something different, but it is still useful to see how someone else does it. I do my own journaling in three steps: 1) PLANNING, 2) TRACKING, and 3) PROGRESS SUMMARIES IMAGINE THAT YOU'RE A PRIVATE CONSULTANT PAID FOR ACTUAL TIME ON TASK -- YOU HAVE TO HAVE A WORK LOG OR YOU DON'T GET PAID!
I do planning by writing down a series of Goals that I have to or want to accomplish. For example if I have an Assignment, say Do the Exercises in Chapter 1. I'll start by putting down the overall accomplishment as an IMPERATIVE SENTENCE:
1) DO ALL THE EXERCISES IN CHAPTER 1. -- Then if the Exercises are enumerated or have titles I'll just list them as Actions -- here I've just listed the exercises in the Chapter.
1.1) Create a Circle
1.2) Move the Circle around (6) -- note that I include pages numbers in parentheses
1.3) Use methods with parameters
1.4-1.6) Fool around with colors and making errors (7).
1.7) Make more Circles (8)
1.8) Inspect the State of an Object (8)
1.9) Put a House Together manually using the shapes available (9)
1.10-1.11) Open the Picture Project
1.12) Open the Editor and look at Picture Project Code
1.13-1.14) Read the Source Code and find the Sun and then add a second sun
CHALLENGE HOMEWORK PROBLEMS: 1.15 and 1.16 -- spend a little extra time on these because these are for homework.
1.17) Open lab-classes project and create a Student
1.18) Make more students and get their names using getName()
1.19) Create a LabClass Object
1.20-1.22) Exercise the LabClass with numberOfStudents(), and enrollStudent()
and call the printList()
1.23-1.25) Add 3 students, then inspect LabClass and set the Instructor, Room,
and time and enroll the students and print the class list.
HOMEWORK 1.26 through 1.32 page 16.
THIS CONCLUDES THE PLAN
Now we Track the work we're doing in our journal by listing the date and time and what we're doing. A typical example might look like:
1/26/2005 14:02 Started working on Chapter 1, Exercise 1.1
14:05 Finished Exercise 1.1 created a Circle (then check that off the Plan)
14:07 Moved my circle down a couple of times and made it invisible twice --
nothing happened the second time so I guess it just stays invisible once it has
been made invisible.
... etc. KEEP DOING IT making note of what you did.
14:30 Got tired so I STOPPED and got up for some FOOD
15:00 STARTED AGAIN ... MAKE SURE YOU SAY WHAT HAPPENED AS YOU WORKED
SPARSE REPORTS WITH NO DETAILS ARE UNCONVINCING.
SUMMARIZE BY ADDING UP TOTAL TIME AT END OF A WORK PERIOD
AND LISTING WHAT YOU HAVE ACCOMPLISHED.
Finished all the Exercises in Chapter 1 and the HOMEWORK, spent 2 hours and 23 minutes.
1) COMPLETENESS, 2) CLARITY/NEATNESS, and 3) EFFORT (as measured by total time and total scope of Journal where Scope = amount of work in the journal. THIS WILL BE A CLUSTER. (See Cluster Grading)