Wednesday, January 28, 2015

Wednesday, January 28th

Normal class today. Nothing special, except that a couple of people (freshmen) were missing since they were on a class trip with Mr. Panna I think, so they missed class.

I worked well and consistently, on strings. I'm finding that I'm struggling more and more with these string problems ! I am approaching the end of String 1 though, so it's no surprise that they are getting harder as I progress.

There was one problem today where I was sure of my logic, yet it just wouldn't return as I wanted it to. This is the problem I will be showing today. I showed it to Mr. Daly, and together we spent a good 10 minutes ripping our hair out over this problem; we couldn't find what was wrong with it. In the end, it turned out that it was the smallest thing: instead of using 2 equals signs, I needed to use the string.equals(). That's it, all I needed to do and after, the machine returned all correct.
I find that they can be very frustrating, but in the end, that's how I learn and correct my mistakes.

This is the problem below:

Given two strings, append them together (known as "concatenation") and return the result. However, if the concatenation creates a double-char, then omit one of the chars, so "abc" and "cat" yields "abcat".

conCat("abc", "cat") → "abcat"
conCat("dog", "cat") → "dogcat"
conCat("abc", "") → "abc"





I am near the end of String 1, and then I will be moving on to finishing Array 1, which I already started but kind of stopped temporarily to finish String first.


Hockey marathon this Friday ! Next class on Tuesday.






Monday, January 26, 2015

Monday, January 26th

Today was the first class of the second semester. Some people left our class, some people stayed. Either way, I was happy to stay for the second semester.

A lot of the time we spent in class was not working, but more explaining what this course was to the newer students. I had heard this all way back in August, so it was nothing new to me. Simply Mr. Daly explaining how exactly this course works, about the blog, how grades are and other important things to know. After that, he assigned us all an initial questionnaire. Since I had already completed that one in August, some others that were here last semester and I got a slightly different questionnaire.

When I finally got to work, there wasn't much time left in class. Only about 20 minutes. I got to work on strings, but with many interruptions because of new people asking me how things work and how to do this or to do that. When I finally got to work, I only completed two problems.

There was one problem, however, was something new. It was a string problem which I had never encountered before. I required Mr. Daly's help with it, because it was quite complex in my eyes. It included everything that I would need to know about strings. Concatenation, str.substring with one and two properties, str. length, and assigning values. Really, everything.

Here it is:

Given a string and an int n, return a string made of the first and last n chars from the string. The string length will be at least n.

nTwice("Hello", 2) → "Helo"
nTwice("Chocolate", 3) → "Choate"
nTwice("Chocolate", 1) → "Ce"





























Initial Questionnaire Semester 2


Computer Applications
Initial Questionnaire for returning students.
January 2015




Name
Ruben Chocron
What have you studied previously in this class?
Coding Java - with Greenfoot and with CodingBat
What do you want to learn this time around?

Why do you want to do this? Do you have any specific long-term learning goals?
I want to continue working with Java. I want to prepare myself for the AP, and so for this upcoming quarter I will be working on CodingBat, and finish level 1 at least.
Look at the assessment guidelines for the course.

Do you have any questions or comments about how your performance is assessed?
I don't have any questions. I remember from last semester.
On the right is a description of the performance of a student who would earn a B (85) in the class.

Reorganize this list, putting your most successful behaviours at the top and least at the the bottom.
He is respectful of all members of this learning community and his behavior is in compliance with all school policies, in particular the RUP (Responsible Use Policy for Technology) and Academic Honesty Policy.

Typically this student makes effective use of class time by increasing his competence and confidence using software that he has chosen.

His written communications (Blogs, and reports) are done according to deadlines and contain enough information for the teacher to understand what he is doing, what kinds of problems he is facing and how he feels about his learning experiences.

During class he remains focused on the task at hand and generally respects the integrity of the learning environment for all students.

He has positive attitudes towards acquiring technology skills, and makes a conscious effort to acquire new skills and apply them in meaningful ways.

He is an independent learner, who tries to solve problems by himself, and finds effective ways to overcome problems using a variety of other resources.


His oral communication during class is focused on the learning tasks that he is engaged in.


He attends all class sessions, coming and leaving on time, and making sure to make up missing time by working during free periods or at home.  He informs the instructor if he knows he will be absent in the future.




In what way are you interested in becoming a more successful independent learner using technology?

I wish to learn code. I wish to learn it well so that I would be able to code as if I were writing an essay in English class.
Would you be willing to take a leadership role in the class, helping other students who are beginning to learn skills where you have experience?
I would. I know that many students that are new would like to try something to do with code, and they often start with Greenfoot. I am here and willing to help anyone that requires my assistance, and I think I would be a particularly good help considering I did the same thing as they did.






Tuesday, January 20, 2015

End of Quarter Report Quarter 2


Name
Ruben Chocron
Module (What was your area of study?)
Java code (CodingBat)
How many days have you missed class this quarter?
2 classes
What have you done to make up lost time?
I do a bit of work here and there at home.

How have your experiences been different in the second quarter? Are you more or less satisfied with your progress? Are you doing more of less work out of class?



In the second quarter, I am enjoying my module more. I prefer CodingBat over Greenfoot with Michael Kolling. I find CodingBat quite entertaining, and in terms of progress, I have definitely grown more as a coder in this second quarter than in the first one. I am doing about the same amount of work outside of class as before.
Has the atmosphere in the class changed during the course? How has it changed?
The atmosphere hasn't changed. There is always a positive atmosphere in the class.

What advice can you give to students who are about to start on the module that you are just finishing? What can you say that would help them have a more effective learning experience?




I strongly recommend CodingBat if you find that you enjoy coding. It is a great program to learn and practice coding with either Java or Python and to prepare yourself for the AP. To learn better, I insist that you don't get ahead of yourself. Complete level by level, and take your time, with each individual problem no matter how easy it might seem. Don't rush through problems - think about what you are coding.
This course provided you with an opportunity to extend your knowledge skills and understanding in areas that you have chosen.
Chose and describe, one significant area of knowledge or skill or understanding that you gained from this course.
Strings. When I started CodingBat, I worked mostly on Logic 1 with simple boolean problems. But after that, I learned Strings, with no previous knowledge at all. Strings, a series of characters. Now I can solve string 1 problems in CodingBat in about 3-5 minutes, without a problem. It comes easily to me now.
This course also provided you with the opportunity to manage your own learning. Effective lifelong learners are independent, curious, persistent, they forge relationships that support their learning goals, they find meaning in their learning by making connections with what they already know and value, and can do.
Give one example of how you have changed as a learner as a result of this course.
In this course, I've developed time management skills. If I know how long a problem will take me, I can organize beforehand how many problems I will be able to do. I know that I need to do at least x amount of string problems in a day and at least x amount of array problems, so I plan in accordance to that amount how much time I can allocate to spend on each problem.

What will you have achieved by the end of the module? Describe your project. Is it finished? What do you still need to do?
Provide a link to your project if possible.
Also provide a link to any final presentation that you made.
Upon finishing CodingBat (hopefully by the end of the second semester) I hope to have finished at least up until the end of Level 2.  With this knowledge, I expect to be on the right path to taking the AP next year without struggling too much. And of course, I hope that I will have learned many new coding skills and will perfect them. I am currently halfway through level 1.
Highlight sentences in the descriptions of student given below that you feel describe your performance in this course.
You can add your own comments, particularly in the section on outstanding performance
How does a student that receives a B grade perform?

Commendable

Creditable

Good

Respectable

Typically this student makes effective use of class time by increasing his competence and confidence using software that he has chosen.

He attends all class sessions, coming and leaving on time, and making sure to make up missing time by working during free periods or at home.

His oral communication during class is focused on the learning tasks that he is engaged in.  

His written communication (blogs, e-mails, and reports) are done according to deadlines and contain enough information for the teacher to understand what he is doing, what kinds of problems he is facing and how he feels about his learning experiences.

During class he remains focused on the task at hand and generally respects the integrity of the learning environment for all students.

He has positive attitudes towards acquiring new skills, and makes a conscious effort to acquire new skills and apply them in meaningful ways.

He is an independent learner, who tries to solve problems by himself, but finds effective ways to overcome problems using a variety of other resources.  

He is respectful of all members of this learning community and his behavior is in compliance with all school policies, in particular the AUP (Appropriate Use Policy) and Academic Honesty Policy.

This is an appropriate course for this student and the performance of the student is such that it can be said that the student is meeting the standards well. His work, on the whole, is good.

In what ways is the performance of a student receiving an A different from that of a student receiving a B?

Brilliant, Exceptional, Outstanding

An A student performs as described above.

She also demonstrates a particularly high level of understanding or performance.

She might be doing substantial work out of class. She might have authentic clients for her computer skills.

She will tend to show leadership qualities in group oriented projects and she will be approached by other students for help because they recognize her superior skill levels.

She will be very independent and confident in her approach to learning.

She will be interested in developing her own learning objectives and finding ways to meet them.  

She will tend to reflect on her learning experiences and on her learning needs in her blog in such a way that her reflective blog  becomes a learning plan.This is probably an appropriate course for her.

In what ways is the performance of a student receiving a C different from that of a student receiving a B?

Adequate, Sufficient,Good Enough, Satisfactory,Reasonable

This student does not perform at the level of a B student in some areas. He may lack confidence or tend to work rather slowly. He may not be fully engaged during class time. This is an appropriate course for him, and he adequately meets the standards for the course.

Under what circumstances would a student receive a for this course.

Inadequate, Poor, Insufficient, Deficient, Unsatisfactory, Unacceptable, Sub-standard, Not good enough, Lacking, Incomplete, Wanting

This student is failing to meet the standards (described in B) to such an extent that this might not be an appropriate course for this student at this time. This student is in danger of failing the course.

Given the highlighted sentences above, what do you think is an appropriate grade for you in this course?

A-outstanding-95

B-good-85

C-adequate-75

D-inadequate-65

95. I believe that I have achieved so much in this past quarter. A lot more than I did last quarter, and this time the skills that I have learned will be very useful in the future of my coding. I have worked hard consistently and always been thorough with my blog posts. I have done a lot, completing Warm-Up, Logic 1, more than half of String 1, and some Array 1. I believe that this is the correct grade for me this quarter. 

What else would you like to communicate to your instructor to support your estimated final grade for the class?

What was your overall experience in the course? Did the course suit your learning style? Did you feel that this was an effective learning experience for you?  Did you surprise yourself?


Absolutely. I learned a ton this quarter. I enjoyed it a lot more than the previous quarter, because I am now doing something that I truly enjoy and find entertaining. I learned a lot of new coding skills, and polished the ones that I already had. I did surprise myself - at the beginning of the quarter, I had no idea I would be doing CodingBat. It was a great quarter in terms of learning.



If you were to take the course again, what would you like to learn?

I would continue with CodingBat, to finish the higher levels.


What advice can you give the instructor about future changes that would make the course more effective for a student like you?

If there is one thing that I could recommend for this class, it is to have short breaks. For students like me who do problems for 80 minutes, this can sometimes cause a huge headache and causes temptation to gt distracted and to do other things besides the work.

Tuesday, January 20th

In class today, we did presentations. I presented along with Toren, Aaditya, Luima and Yesinn.

Toren kept working with Blender. I think that Blender is a cool application to be able to work with, and I'm sure that you can make very cool and interesting things with it. But something about it doesn't really please me. I'm not exactly sure what it is, but for some reason I am not tempted at all to try it. Perhaps it's because it takes such a long time to complete projects or maybe just the fact that it's very hard to learn to use and it took Toren over 4 months.

Aaditya did something that I enjoy very much. He worked with Google SketchUp. I am a fan of everything that has to do with building things, and architecture and whatnot, so what Aaditya did really caught my eye and interested me. I thought that his projects were very cool and what truly fascinates me about this program is that you can do anything you want ! Really, you can build anything you want to, however big or small you want to ! In the future, if I don't do coding, I will definitely work with a program like this.

What Luima did was Greenfoot, which I did last semester. It wasn't really new to me at all, since I had done the exact same thing as her. However, I have to say that the way she made the games her own were very creative. I especially liked the sounds for when you ate the pizza or the hamburger or the fries. She was very original in modifying the projects.

Yessin also did something very interesting. He worked on code - like me. But not Java code, HTML and CSS code. That is the code that is used to create websites and the code that is used on the web. To me, at first, it looked extremely complicated with all the characters on the screen (it looks much much harder than Java in my opinion) but to my surprise Yesinn told me that it was relatively easy and that he found it to be easier than Java. It might be something that interests me in the future, HTML code. I also enjoyed the website he made about the class. I'm still waiting for him to send me the link to it.

I think that my presentation went well. I knew that since I didn't have one major project, I was going to have to do something special to not bore the audience completely, which is why I tried to do this sort of interactive presentation, where I involved the audience. My goal was to give people in the class an idea of what I do during class, and what kind of code I work with. I know that not everyone understood the code completely, but I think I succeeded in explaining it to some people and giving the entire class a general idea of what CodingBat and Java was. I enjoyed working with the class, it was interesting to see how some of the people understood the code quickly and some didn't.

I'm going to keep working with CodingBat, completing level by level, for the next semester.

Friday, January 16, 2015

Friday, January 16th

Today was a very good class. I managed to get many problems done. Mostly strings though, because I was really into strings and I just kept going on and on with strings and forgot to do array until the end of the class.  I don't have anything else to say really besides that I am getting closer and closer to finishing level 1, which makes me happy. I am happy at the pace that I am going at.

The string problems that I did today weren't very long, but they required a lot of thinking about really the technical things.

The problem for today:

Given a string, return true if it ends in "ly". 

endsLy("oddly") → true
endsLy("y") → false
endsLy("oddy") → false


public boolean endsLy(String str) {
  
  if (  str.length()>=2 && str.substring(str.length()-2, str.length()).equals("ly"))
// if the string length is 2 or larger, then we can always have the possibility of it ending with ly. if the last 2 characters of the string is equals to the string "ly"
  {
    return true;
// then return true.
  }
  
  return false;
// if the above conditions are not met, then return false.

}

I learned something with this problem. The first one being, that I had to indicate the length of the string before anything else. In Java, unlike some other coding languages, the computer checks the first thing, and if the first thing is not even true then it won't even check the second one. So when I had the line that ordered to check if the string ended in "ly" before checking the length of the string, it returned to me out of bounds if the string was an empty one.

I am doing my presentation for the end of the semester on Tuesday. I am looking forward to it because even though I don't have one big project to present, it will be an interesting sort of presentation.



Wednesday, January 14, 2015

Wednesday, January 14th

Before getting to work today, I saw Hannah's presentation. She did what I had done last quarter - Greenfoot. To be honest, I was very impressed by her projects. I could clearly see that she had put in a lot of effort, enough to create 3 different games. I thought to myself- how come she had so much time? How did she have enough to create those three games on Greenfoot when I barely had time to create two? But then I figured that she didn't watch all of the Joy of Code videos like I did. She told me that for 6 classes she watched videos - not enough to watch all 33 videos.

After Hannah's project, I went up to the Genius Bar with Tommy (no customers), and worked on the usual, strings and arrays.

The problem:

Given 2 strings, a and b, return a string of the form short+long+short, with the shorter string on the outside and the longer string on the inside. The strings will not be the same length, but they may be empty (length 0).

comboString("Hello", "hi") → "hiHellohi"
comboString("hi", "Hello") → "hiHellohi"
comboString("aaa", "b") → "baaab"


public String comboString(String a, String b) {
 
  if (a.length() < b.length())
// if a is shorter than b,
  {
    return a +b +a;

// then return short + long + short, or a + b+a
  }

  return b+a+b;
  // if a is not shorter than b, then b will be shorter than a since the strings will always be different lengths.
}

I will be doing my presentation on Tuesday, so on Friday and throughout the weekend I will be working on it.

Monday, January 12, 2015

Monday, January 12th

Today was a very short day. We had school until 11:00. I came into class and went straight to work: string and array problems. I asked for Mr. Daly's help for some problems, but mostly arrays because I am starting to get the hang of strings. Besides that, there was nothing else new or interesting, so I'll get straight to the problem.


Given 2 arrays of ints, a and b, return true if they have the same first element or they have the same last element. Both arrays will be length 1 or more. 

commonEnd({1, 2, 3}, {7, 3}) → true
commonEnd({1, 2, 3}, {7, 3, 2}) → false
commonEnd({1, 2, 3}, {1, 3}) → true

public boolean commonEnd(int[] a, int[] b) {
 
  if (a[0]==b[0])
// if the first value of a or b ([0]) is equal to the other, then return true.
  {
    return true;
  }
 
  if (a[a.length-1] == b[b.length-1])
  {
    return true;
// if the last value of a or b ([str.length-1]) is equal to the other, then return true.
  }

  return false;
// if none of the above conditions are true, then return false.
}




When I first did this problem, I one issue. I created two new arrays a and b, and that kind of overrode what the computer had already given me : two arrays a and b with set values.

Thursday, January 8, 2015

Thursday, January 8th

Today I went upstairs to the library with Tommy to sit at the genius bar. No guests.

I continued my work on Strings and Arrays, and today I did mostly strings. I did problems from String 1, and one problem from Array 1. The problems are rather simple, but since I'm not used to strings and arrays, they take me a while to complete.

Since the problems are short, I'll do two problems, one string and the other will be the array that I did.

Here is the problem for today:



Given a string, return a new string made of 3 copies of the last 2 chars of the original string. The string length will be at least 2. 

extraEnd("Hello") → "lololo"
extraEnd("ab") → "ababab"
extraEnd("Hi") → "HiHiHi"

public String extraEnd(String str) {
 
  return ((str.substring(str.length() -2, str.length())) + (str.substring(str.length()-2, str.length())) + (str.substring(str.length()-2, str.length())));


//((str.substring(str.length() -2, str.length()))

//here is what we are saying: return only the last two letter of the string - string length -2 up until the full //string- and then times 3, because we want the last part three times.
}

------------------------------------------------------------------------------------------------------------------------------
Given an array of ints, return true if the array is length 1 or more, and the first element and the last element are equal.

sameFirstLast({1, 2, 3}) → false
sameFirstLast({1, 2, 3, 1}) → true
sameFirstLast({1, 2, 1}) → true





Next class I hope to continue working on strings and arrays.

Tuesday, January 6, 2015

Tuesday, January 6th

Today was the first day back from winter break.  When I left school for the holiday, I ended doing strings. To tell the truth, I didn't do anything that had to do with coding over the pause. When I came back, I was a bit rusty with what I left off with: the strings, which I had only learned one or two classes before the class. For a while on my first problem, I was confused, so I needed Mr. Daly's help a lot.

But after a while I got the hang of it. I did a few string problems in Logic 1, and finished Logic 1 completely. After that, Mr. Daly taught me about Arrays. I think that I understand the general idea of what arrays are, but I'm not 100% sure exactly, which is why today I won't be doing a problem with arrays. Next class I will, once I have worked more with arrays, but for today I will just be showing a string problem:

With this next problem, I had a lot of trouble completing it. I needed Mr. Daly's help for this. I imagined that I would be using a lot of strings, but in fact I only needed a small part of the solution to be strings, and the rest was easy stuff that I knew beforehand.



Given a day of the week encoded as 0=Sun, 1=Mon, 2=Tue, ...6=Sat, and a boolean indicating if we are on vacation, return a string of the form "7:00" indicating when the alarm clock should ring. Weekdays, the alarm should be "7:00" and on the weekend it should be "10:00". Unless we are on vacation -- then on weekdays it should be "10:00" and weekends it should be "off". 

public String alarmClock(int day, boolean vacation) {
 
  if (vacation)
   {
     if (day == 0 || day == 6)
    {
      return "off";
// if we're on vacation, and it's either day 0 (sunday) or 6 (Saturday), then we don't want the alarm to be on.
     }
      else
      {
     return "10:00";
// otherwise, if we're on vacation but it isn't the weekend, then we want to wake up at 10:00 during the week.
     }
  }
 
   else
// if we're not on vacation
   {
      if (day == 0 || day == 6)
    {
      return "10:00";
// if it's not vacation, and it is the weekend (day 0 or 6), then we want the alarm to wake us up at 10:00.
     }
     else
     {
     return "7:00";
// it's not vacation, and it's a weekday so we have work. wake up at 7:00.
     }
   }
}


So now I have learned what strings and arrays are. My goal for the end of the semester is a bit far fetched, but I will try to get as far as possible in completing both String 1 and Array 1.