Solving Complex Problems Through Programming

Monday 13 February 2023 - Block 5, Room C152
← previous note | most current note | next note →
 

Daily Note

  1.  We will install tabnine, and you will understand what it is, how it works and strengths and weaknesses. 

  2. Please fill out our class reflection, noted at the bottom of our daily notes!

  3. We will work some problem sets today

    For those a bit less comfortable with computing:

    1. Problem 1: Write a program that calculates the area of a circle given its radius. The formula for the area of a circle is π * r^2, where r is the radius.
    2. Problem 2: Write a program that takes in two numbers from the user and outputs the sum, difference, product, and quotient of the two numbers.
    3. Problem 3: Write a program that takes in a string from the user and outputs the number of vowels (aeiou) in the string.
    4. Problem 4: Write a program that takes in a number from the user and outputs whether the number is even or odd.
    5. Problem 5: Write a program that takes in a sentence from the user and outputs the number of words in the sentence.
    6. Problem 6: Write a program that takes in a list of numbers from the user and outputs the average of the numbers.
    7. Problem 7: Write a program that takes in a word from the user and outputs whether the word is a palindrome (reads the same forwards and backwards).

For those a bit more comfortable with computing: 

  1. Write a function that takes two lists as arguments and returns a list that contains only the elements that are common between the two lists.
  2. Write a program that implements the Bubble Sort algorithm to sort a list of numbers.

 

A little less comfortable

Content

Programs must solve the problem they were create to solve. We can worry about how effieciently or elegantly they solve the problem later on; not right now. The content of a program entails input, processing and output. All three of these elements must be clearly observable. A key question you will be asked (and you should ask yourself) is: to what extent does your code implement the features required by the specification?  

Process

Within the process, we are looking at six guiding questions: 

  • To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
  • To what extent is your code eliminating repetition?
  • To what extent is your code using functions appropriately?
  • To what extent is your code readable?
  • To what extent is your code commented?
  • To what extent are your variables well named?

Product

As opposed to content, this section we focus on how well you solved the problem. A key question here is to what extent is your code free of bugs?

 

A little more comfortable

Content

Programs must solve the problem they were create to solve. You should ask yourself "Am I solving this elegantly?". The content of a program entails input, processing and output. All three of these elements must be clearly observable, and we must see evidence of sanitizing input and raising exceptions.  A key question you will be asked (and you should ask yourself) is: to what extent does your code implement the features required by the specification?  

Process

Within the process, we are looking at six guiding questions: 

  • To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
  • To what extent is your code eliminating repetition?
  • To what extent is your code using functions appropriately?
  • To what extent is your code readable?
  • To what extent is your code commented?
  • To what extent are your variables well named?

For those more comfortable programming, we expect succinct, secure and effecient problem solving. 

Product

As opposed to content, this section we focus on how well you solved the problem. A key question here is to what extent is your code free of bugs? The real difference here is the complexity of the problem you have chosen to solve and how well you solved it. 

Our Big idea

The big idea for today is Programming.

The essential questions for this topic are:

How do we plan, write, execute, and test instructions a computer can understand and process?

It takes time to explore and really understand a big idea. If you want to
learn more about programming (which is connected to today's daily note), please click here .

We are learning this because as a designers must understand scientific and technical innovation. Designers use systems, models, methods, and processes to solve problems.



Reminders & routines:

IF (this_block == first_block_day) {
     read_daily_bulletin;
}

IF (today == Friday) {
     computing_careers
}

As I am taking attendance:

  1. Please check now: is visual studio code working from my programming folder?