This unit in CS1103 was all about Abstract Data Types. Between visiting the US for Thanksgiving, work, and school, I just barely had enough time to write my graded quiz for the week. Now that I’m caught up and have about 30 min left till I start work, I’m going to try to hash out this week’s learning journal!
So far I’ve tried to keep the learning journal entries as void of technical jargon as possible. However I am studying computer science so eventually it is going to come out. I still hope to keep these articles friendly for those followers who are not CS majors, but bear in mind it’s only a matter of time before these entries get more technical. It shouldn’t be too bad today, so let’s see how I do.
To start with, this week was challenging but it was more because I loaded a lot on my plate. I participated in a coding contest online over the weekend, while trying to visit with family in the US, and keeping my son entertained as well. I tried to get as much school work done as possible before the weekend, because I knew I wasn’t going to be doing school then.
The problem is that the discussion question was on ADT’s or Abstract Data Types. It’s something that I understood before the unit, but unlike DQ’s in past courses it’s not something that I understood enough to hash out an elaborate tutorial styled post in less than an hour. It took some serious work to create a quality post – probably too much work.
I ended up burning all of my time before the weekend on the DQ, that I didn’t finish all of the reading material, or really accomplish much else. The only reason I managed to complete the graded assignment before the weekend, was because it happened to be simple – maybe because it’s the same week as a graded quiz?
The assignment was meant to emphasize on the importance and usefulness of ADT’s. Our challenge was to create a Tape object that would be used by a virtual Turing Machine. We were given all of the code for the Turing Machine, and some programs that ran simple tests on our tape, as well as a specification for what the Tape was to achieve. It was up to us, to decide how to implement the tape.
This showed the power of ADT’s because completing this assignment was almost frivolous. It took me almost no time at all. All I had to do was follow the specification. It was the coding equivalent of assembling a sandwich with instructions – seriously.
Despite the ease of the assignment, it was still a struggle to get caught up on the rest of the unit’s requirements when I got back to Canada. There is a lot of information to consume in this course, and I’m trying really hard to make sure I’m understanding it all before the end of each unit. Which brings me to the important thing I’m thinking about this week.
In our Learning Journal assignment one of the questions is – as you saw last week – this:
Finally, describe one important thing that you are thinking about in relation to the activity.
Here’s what I answered:
In the last two CS courses I was able to create very in depth, comprehensive, tutorial styled, posts in the discussion forums. This is largely due to the fact that I spend a lot of time answering beginner questions in other forums like the comment section on YouTube, Codecademy, and the community questions section at Khan Academy (which is actually how I got my job by the way). There are many core concepts to programming that I’m exceptionally good at describing because I spent so much time grasping the basics myself, and have dedicated a lot of time to helping others understand them too. So, for the first two courses each discussion question was very easy for me to answer. I would write posts that probably seemed like I spent days on, but actually I wrote them up in about an hour.
Now we are entering areas that aren’t so easy for me to explain. They are concepts that I haven’t come to understand on that level yet. So now the DQ’s are taking much longer to write an answer to, but I’m still trying to keep up with the quality my classmates have come to know me for.
The important thing I’m thinking about is how I choose to balance where my efforts go in school. I’ve been giving it 110% in all aspects, and it’s really wearing me out. I keep making small mistakes, like in the graded quiz, the last two graded assignments, and I’m sure there are others. The fact is I have to value comprehension over grades. I don’t believe in anyway what so ever that grades and comprehension are linked. I think anyone who works hard enough can earn high grades without necessarily comprehending the material. And any genius can fail a course simply by not doing the assignments – so there is no correlation. That’s not to say that they can’t coincide, but I just intend to say that they are not linked. They are independent – but not mutually exclusive.
I watched a video by Eli The Computer Guy on YouTube the other day about school. One thing he said, was that when he was in school he only aimed for a B in each class instead of an A. He said he didn’t think the difference between an A and B changed the level of comprehension of the subjects he was learning, but earning a B was certainly a lot less stressful than an A.
So what I’m thinking about is turning the dial down from 11 to 10, and not being so aggressive about maintaining a 4.0 average. Sure it’s desirable, but if it means spending so much time working on assignments that I’m not taking breaks, spending time with my family, or spending time just reflecting and playing with the concepts I’m learning in my own way, then it could be possible I’ll come out the other end of the UoPeople function as a memorization machine – capable of remembering enough to get high grades, but not comprehending subjects at a deep enough level to apply them in the real world.
Hopefully the programmer speak wasn’t too much. Balancing these posts so they reflect what I’m learning in school, but are also worded for non techies is going to be a challenge as I progress. Let me know in the comments how you feel about bringing more CS related topics into the journal entries.
Cheers,
Dan
Just wanted to drop a question regarding the CS course.
Does the course involve practicing coding? or does it follow the written assignment approach.
I really hope that the assignment part of SC involves actual coding and not explaining programming theories – essay style.
I have a couple of friends that studied CS or Software engineering in renowned universities and all told me that unless I am taught how to actually write codes all else is useless unless I hope to end up teaching computer science in a high school. It got me all worried and would love to hear from someone who is in the middle of the SC course.
Thanks a lot
Hey Xen,
By the time I finish my 3rd CS course here, I’ll have completed at least 32 programming assignments. That’s 8 graded assignments per course, plus the course I’m in now requires a programming exercise to be submitted as a part of our learning journal assignment. 32 isn’t including the extra exercises and labs that are available to do, but are not graded. If I had the time to do every single challenge I’d have made over 100 programs by now.
There are also what’s called Discussion Forum questions where we write an essay of sorts explaining some programming concept, we often share diagrams, and source code to support our understanding. But actual coding is a big part of the curriculum. Right now I’m learning how to create a simple syntax parser using recursive descent parsing and expression trees in Java.
Hope that gives you an idea of what it’s like here
Cheers!
Dan your pice of writing is extremely powerful.
The major thing I love about it is the setense structure and the flow of your communication, they are soo much motivating.
Thanks for sharing sir,
Cody Codus!!
Thanks for the feedback Ibrahim! It’s good to hear!
Please help me how to apply in university of the people. Thanks
Hey Salamah,
Try watching this video if you can https://www.youtube.com/watch?v=0ZRmt2LZOQs
If you need to ask a question send an email to [email protected]
The link to the application is here: https://applicants.uopeople.edu/admissions.aspx