Tuesday, June 2, 2015

Final Report Quarter 4, June 2015

Final Report for Computer Applications
May-June  2015
please post a copy of this in your blog and complete
Refer to your earlier blogs when you answer these questions
Name
Ruben Chocron
Module (What was your area of study?)
CodingBat
How many days have you missed class this quarter?
0 days
What have you done to make up lost time?
I have not wasted any time or missed any classes.
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?
I am extremely satisfied with my perfomances this second quarter. I feel like I took a big leap in my knowledge of coding and improved greatly. I am happy with my progress. I have done a lot more problems outside of class this semester.
Has the atmosphere in the class changed during the course? How has it changed?
I don't think think that the atmosphere has changed much over the course of this quarter. But if it has, only in a positive way, with everybody becoming friendlier with everyone else in the classroom.
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 would highly recommend CodingBat to anyone who is interesting in Java or Python, or simply coding in general. 



It can be very frustrating at times - you may even want to smash your computer or just quit CodingBat. But there is no better feeling on earth than completing a problem and seeing all the green squares. Keep practicing on CodingBat. You'll see how much you improve, and in the end it's a great tool.

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.
I have gained so much understanding about loops during this quarter. I started off on a shaky background about loops, not really understanding them. But now, I understand for loops and while loops inside out. I have learned different methods with them, for example how you can go through a string or array backwards using a loop, which can sometimes be useful when solving a certain type of problem.
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.
This semester, I have found new types of problems. Upon finishing String 2, I decided that I did not want to start string 3 until next year. I did not want to continue on the same path that I did for the past 3 quarters. So instead, I tried new things such as the AP-1 section on CodingBat. I tried some Georgia Tech multiple choice problems. I even worked on an actual AP booklet and did a few problems on that. I spent a lot of time helping others work through their problems. 









I've grown as a learner during this course, by changing what I work on and how I am available for help to others around me.
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.
By the end of my module, I have reached the end of Level 2, which was my goal. I completed String 2 and Array 2. In fact, I have gone even farther than level 2, and started to work on some actual AP problems, which was farther than I intended to go.








https://docs.google.com/a/wbais.net/presentation/
d/1KcjBHJveeoyEk4K1he0Nzvosz5uWDJKvuz1Oqhwf_Bw/edit?usp=sharing
Write a short review of one of the presentations that you viewed.
What one piece of advice would you give the presenter that would, in your opinion, improve the presentation?




Matan's presentation showed us his journey with GarageBand and music. He told us that he did not like the whole coding thing, so he went on to another module that interested him: making music. He went on Lynda, and found a GarageBand tutorial, which showed him how to use everything in that application. From then on, he made many projects, ranging from music for an application to music for a rap, to mixing the national anthem of the U.S. He showed us all of the projects that he did.









To improve your presentation, Matan, you could have given us a more detailed description about your projects, for example how long it took you to make them etc... You could have also made a small project for us, just to show us how compiling all of those sounds words.

Highlight sentences in the descriptions of student performance given below that you feel describe your performance in this course.
You can add your own comments, particularly in the section on outstandingperformance
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.

I am the "helper" of the class among the students. People that are doing CodingBat come to me to ask for help.

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


I have worked outside of class on many occasions. Whenever I wanted to finish a problem, I worked on it at home. 

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.

My blogs are very thorough and when I write them, they explain clearly and in detail exactly what I have worked on, how I worked on it, what problems I encountered, and how I feel about what I'm working on. I always include photos as a piece of my work that I have done during that class.

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

For the past 3 quarters, I have been receiving 92s as my final quarter grade. I agree with this grade, as it reflected my work during those quarters. However, this quarter was a special one for me.  I really pushed myself to my limits and worked as hard as I could. The most change I saw in myself, was this quarter. I worked the hardest this quarter, and achieved more than ever. After this quarter, I can rightfully say, that I have well prepared myself for the AP computer science course next year. Therefore, I believe that I deserve a 95 for this quarter. For my exceptionally hard work and perseverance.

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?

I very much enjoyed this course. It is a different course than all of my other ones. In no other class do I not have to pay attention to a teacher for 80 minutes and do my own work. In this class, that is what I do. It has been one of my favorite courses. There is not lots of pressure to keep up with the class, or to succeed in tests, because the only person I am keeping up with is myself ! I also like this course, because it has led me to self-motivate. I have pushed myself to work. I have learned a lot in this course.

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

I would definitely continue coding. Perhaps not with CodingBat (although I love it), but continue with Computer Science as a general topic.

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

I believe that a few short breaks per class could be useful to anybody taking this course. It is hard to stay on task for 80 straight minutes, and little pauses from the work would help students stay on task for the entire time that they are supposed to be working. 

Thursday, May 28, 2015

Thursday, May 28th

Today was technically the last class of the year. We still meet on Monday and Wednesday, and Wednesday is technically the last class of the year, but we will be having presentation on those days. So  after today, I won't be doing any more full on coding during class.

I came in today, and was about to get to work when Mr. Daly called Tommy, Preston and me over. He asked how we were going to format our presentation on Monday, since we are all presenting about CodingBat. We went outside and tried ot figure it out, but we ended up arguing over who would argue what problem. Tommy would present level 1 problems, but then both Preston and I wanted to present level 2 problems. But we couldn't agree on who would present Arrays and who would present Strings, since we both wanted to present both.
So we went back inside to see Mr. Daly, and we told him about our problem. He then gave us an idea which Tommy disliked, but I thought it was interesting : we choose one problem, as a whole, the three of us. Then, Tommy and Preston pair up, and I work alone. Separately, without even looking at the problem, we record our screen and we solve the problem while thinking out loud. It was a super good idea, in my opinion. It is something new to the audience who is most likely bored of my CodingBat presentations for the past 2 quarter, and it saves a lot of time since all three of us don't have to present separately anymore.

After more argument about which problem to solve now, we ended up choosing the problem no14 from Array 2. We went upstair to the library, and I sat on a bean bag while Tommy and Preston sat in Ms. Beasley's office. I set up my screen recording with QuickTime and my audio recording through my earphones' mic, and went on to solve the problem. I solved it first try. It was pretty easy.

I won't be showing a problem today. I didn't work on anything, and I don't want to show the no14 problem, since it will already be seen in class.

Looking forward to presenting !

Tuesday, May 26, 2015

Tuesday, May 26th

Today was not my turn at the genius bar, but we still worked in the library, because there was MAP testing in our regular classroom. It was nice though. It was an efficient class. I didn't do anything special, but got a lot done. I managed to finish the problem in the AP booklet, which actually turned out to be a lot easier than expected. I will be showing it in the blog.

After showing it to Mr. Daly, he suggested that I try some more AP problems from Georgia Tech. We looked at some together (they were multiple choice problems), but we figured that they involved things that I didn't understand and hadn't learned yet, so I decided that I would work on the AP-1 section in CodingBat.

I went back to sit with Tommy and Preston. I helped Tommy out with a problem. I forget which one exactly, but it was an Array 2 problem. While I wasn't helping the two, I was working on my AP-1 problems, which were also relatively at my level. I was working on them, and I noticed that I didn't really need help. I didn't always get the problems the first try, but I knew what to fix most of the time and what logic to use. I felt for once like I was the teacher at the table with Preston and Tommy. It was a good feeling. When Tommy showed me his problem, I knew how to solve it in a split second. It's nice to know that I've improved from 2 months ago where I was also struggling to complete an Array 2 problem.

Before I show the problem, I also realised that for last class's blog, I wrote that I was presenting today. I was wrong about that. Turns out I will be presenting on Monday.

Here is today's problem.

----------------------------------------------------------------------------------------------------------------------------------

Here is the code rewritten, so that it is clearer:


public String getHint (String guess, String hidden){

String str = new String("");

for (int i=0;i<guess.length();i++)
{

     if (!hidden.contains(guess.substring(i,i+1))
{
               str+="*";
}

     if (hidden.contains(guess.substring(i,i+1) && !(hidden.substring(i,i+1).equals(guess.substring(i,i+1)))
{
    str+="+";
}

      if (hidden.substring(i,i+1).equals(guess.substring(i,i+1))
{
        str+= hidden.substring(i,i+1);
}

return str;
}


}

Looking forward to next class !

Friday, May 22, 2015

Friday, May 22nd

Regular class today. 

I came in and ended up going to Mr. Daly during the first five minutes of class, since I still couldn't figure out the problem that I had last time. We managed to fix that problem, and I will be showing it at the end of the blog. 

However, I have decided that for the remainder of the year, I will not be working on Level 3. I've decided that I want to solidify my knowledge at the second level completely before moving on to Level 3. Most likely during the course of the year in AP Computer Science, I'll do some level 3 problems to practice, if the new teacher doesn't already ask us to do them for the class. Although I'm pretty comfortable with what CodingBat asks of me at level 2, I still want to practice a bit more before moving on. 

After completing the problem, I went outside to help Matan, Natalie, and May with their rap. I rapped two lines for them, and then went back inside.

I came back in, and Tommy was stuck on a problem. It asked him to add all of the numbers of the array, but to leave out numbers that were in the range of after a 6, and before a 7. He did not know what to do, so he asked for my help. I taught him the concept of flagging, with booleans. I felt good after teaching him because I knew that he understood. 

Following this, Mr. Daly gave me and AP Computer Science packet, and told me that there was a problem or two that I would be able to complete. I completed one of them quickly, as it was relatively easy ( it was exactly like Tommy's problem), and began to work on the second one but didn't have time to finish it since class was ending. I will be looking at it at home to see what I can do.

This is the problem that Mr. Daly and I completed : 
----------------------------------------------------------------------------------------------------------------------------------

Given two arrays of ints sorted in increasing order, outer and inner, return true if all of the numbers in inner appear in outer. The best solution makes only a single "linear" pass of both arrays, taking advantage of the fact that both arrays are already in sorted order.

linearIn({1, 2, 4, 6}, {2, 4}) → true
linearIn({1, 2, 4, 6}, {2, 3, 4}) → false
linearIn({1, 2, 4, 4, 6}, {2, 4}) → true



Looking forward to continuing. Next class (I think) I am presenting. See you then !







Wednesday, May 20, 2015

Wednesday, May 20th

Today was a good class.

I came in, not knowing exactly what to do. Mr. Daly proposed doing something ( I forgot what it was called) where I stood behind Tommy, and he was in front of a problem, and I told him from behind what to code. He was reluctant to do it, however, because he claims he is not comfortable enough with loops to do it.

After that, Mr. Daly gave me two problems. One problem from Array 2, and another one from String 2. It was to test my knowledge of Level 2 CodingBat. I managed to do both. It was interesting though, because after looking at my code from before, I realised that the code that I used to solve the string problem this time was much shorter, and used different methods. This makes me happy, because it shows that I have learned over time. The Array 2 Problem was also relatively easy. I think that if I were to redo each one from level 2, it would be way easier to complete than the first time around, just how I felt when I completed Level 1.

Following the tests, I went on to try a level 3 array problem. Without having any idea what I was writing, I did manage to get a few right. But, we couldn't use that code, so Mr. Daly and I wrote a different one to try and solve the problem. Unfortunately, I encountered a compile problem while working on it at home, and I don't know how to get past it. I use two loops, and in one of them I use i. In the second one, I use int r, because I don't want to have two int i with different value. So, I don't know how to get passed that.

Unfortunately, I don't have a problem to show for today. You have already seen them all ! Nothing new for this time. But, hopefully, I will have at least one level 3 problem for you by the end of next class. Looking forward to after tomorrow !

Monday, May 18, 2015

Monday, May 18th

IT'S DONE ! Level 2 of CodingBat is officially completed!

After a dreadful month of suffering with endless problems, I have completed String 2. I left class on the verge of crying because I had half a problem to fix until I was done, but I had to wait to come home before completing it. It took a while, the last problem, but was definitely worth it once I saw the green check with the star.

Here is my last problem:
----------------------------------------------------------------------------------------------------------------------------------
Given a string and a non-empty word string, return a version of the original String where all chars have been replaced by pluses ("+"), except for appearances of the word string which are preserved unchanged. 


public String plusOut(String str, String word) {

String abc = new String("");
// create a new string.

int i= 0;

while (i<str.length())
// as long as we don't exceed the string length,
{
 if (str.substring(i).startsWith(word))
 {
  abc+=word;
  i+=word.length();
// when we see the word, we want to add the word to our new string abc. then, make i skip to 
// the next letter after the end of the word.
 }

 else
 {
  abc+="+";
  i++;
// if we're not looking at the word, then simply replace every letter with a +, and increment i by 
// one so that it looks at the next letter.
 }

}
   return abc;
// return our modified string.

}


----------------------------------------------------------------------------------------------------------------------------------

It was very enjoyable to work on Level 2. Although at times the problems frustrated me, it made me learn a lot. I constantly learned new methods (as you saw above), and new ways of thinking. New logic. I am starting to develop the sense of thinking in code.

From here, I do not know where I will go. I will either work on some level 2 things, like warmup 2, or Logic 2, or even maybe AP CS 1 if Mr. Daly thinks that I have a high enough level to work on those. I don't think I will start Level 3, because it is more complicated and I won't have access to Mr. Daly's help over the summer. It all depends on what I decide with Mr. Daly next class.

Either way, I am presenting in 2 weeks time.

I'm very excited !

Thursday, May 14, 2015

Thursday, May 14th

Today was a good class. I got closer than ever to finishing String 2. I got into class, and began to work on a problem that I had partially solved with Mr. Daly last class. I couldn't figure out what the problem was; it was an out of bounds. I proceeded to go to Mr. Daly for help, but it turned out that immediately as I sat down, I figured out what the problem was, and without Mr. Daly even saying a word, I changed one number which solved the whole problem. It's funny how sometimes you can look at a problem for a long time, and not have the right solution to it, and then look at it again another time and know exactly what to do right when you see the problem.

That was the one out of two problems that I worked on during class. I completed another one. I now only have two problems left in String 2.

Here it is:
----------------------------------------------------------------------------------------------------------------------------------

Return a version of the given string, where for every star (*) in the string the star and the chars immediately to its left and right are gone. So "ab*cd" yields "ad" and "ab**cd" also yields "ad".

starOut("ab*cd") → "ad"
starOut("ab**cd") → "ad"
starOut("sm*eilly") → "silly"

-----------------------------------------------------------------------------------------------------------

public String starOut(String str) {

  if ((str.length()<3) && (str.contains("*")))
  {
   return "";
  }
// if the string length is less than two and there's a star, return an empty string because everything will
// be gone.

  if (!str.contains("*"))
  {
   return str;
  }
// if there is no star in the string, then we don't want to take anything out. return the string unmodified.
 
  if (str.substring(0,1).equals("*"))
    {
      str=str.substring(2);
// if the star is at the very beginning of the string, then return only the string from two chars after the star
// onwards.
    }
 
  if (str.substring(str.length()-1).equals("*"))
    {
      str=str.substring(0,str.length()-2);
// if the star is at the very end of the string, return the string from the beginning until the char before one
// to the left of the star.
    }
 
  while (str.indexOf("*")!=-1)
// as long as there is still a star in the string,
  {
   int cutpoint = str.indexOf("*");
      int cutpointend = cutpoint;

    while (str.substring(cutpointend,cutpointend+1).equals("*"))
   {
   cutpointend ++;
// if the next char after the star is another star, then the cutpointend is incremented by one. this helps to
// find series of stars that come in two or three.
   }
 
   str=str.substring(0,cutpoint-1) + str.substring(cutpointend+1);
// return the string from the beginning until two before the first star, and from two after the last star until
// the end.

  }
 return str;
// return the modified string.
}
----------------------------------------------------------------------------------------------------------------------------------

We are approaching the end. It's almost the end of the year, and I am at arm's length of finishing String 2. Can't wait !!!