IB Year 1 Higher Level Computer Science

Wednesday 24 August 2022 - Block 4, Room C152
← previous note | most current note | next note →
 

Daily Note

  1. Welcome!
     
  2. We will take attendance
     
  3. I will look at your homework
    1. We will look at the two challenges from objective 1 
       
  4. The best way to learn programming is to work an example. We are going to build a python program for a small business. 
    1. We will start fairly small and build small parts as we learn more about python
       
    2. This system will:
      1. manage inventory
      2. support point-of-sale operations
      3. support employee management
      4. support payroll
      5. support ordering 
      6. support customer accounting
      7. support reporting to help the business
         
    3. We will hack through quite a bit of design and thinking before writing our first line of code. For now though: 
      1. Class discussion: what should our business sell (a product? a service? a combination of both?)
      2. For now, we will pretend I will be the business owner, who is paying you to develop this system.
      3. All of you will work for the same company who are developing software for my company.
         
  5. We take a look at python cheatsheet, which is very helpful for you as you are learning
     
  6. We will learn about types in python (and the type() function)
     
  7.   We will learn about the help() function in Python
     
  8. We will learn about the print(f,...) function
     
  9. If you are new to programming: Class and Homework will be all the challenges in objective 2
     
  10. If you are an experienced python programmer: 
    1. Please grok dir() function
    2. Please grok len()
    3. Please remind yourself about indexing and slicing, which you can find in our book on page 79 (pdf page 105)
    4. Please remind yourself how to work with files
    5. Please take look at this 3000 line file of common words
    6. Please watch me play wordle
    7. By Friday, please help me win wordle with a python program program you wrote. This might take you the weekend, don't worry. 
      1. You may not use any code you found on the internet
      2. You may not get help from any classmates

 

​​​​​​​

 

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:

Please read and follow these reminders:

  1. IF this_class == first_class_of_day:
         read_daily_bulletin()
     
  2. IF today == Friday:
         careers_in_computing()