IB Year 1 Higher Level Computer Science

Monday 16 September 2024 - Block 1
← previous note

There are about 9 months and 13 days until school ends. How are you going to use that time to make sure you do your best?

 

Daily Note

Today we will learn about lists, and hopefully play a fun game that helps your brain think differently about how computer scientists think about problems. 

As you learn about lists, it can be helpful to think about the following questions: 
 

1. How can a list be used to keep track of a player's inventory in a game?
Imagine a game where a player collects items like weapons and potions. Explain how a list can be used to store these items and how you would add or remove items during gameplay.

2. How can lists be used to manage the positions of enemies on a game map?  
Suppose you are developing a grid-based game. How would you use a list (or a list of lists) to keep track of the locations of multiple enemies, and how would you update their positions as they move?

3. In a card game, how can you use a list to represent a deck of cards and deal them to players? 
Consider a card game where you have a list representing the deck. How would you shuffle the deck, deal cards to multiple players, and ensure that no card is dealt twice?

4. How can a list be used to keep a high score table in a game?  
Describe how you would use a list to store the top 5 high scores in a game. How would you sort the list and insert new high scores while keeping the list ordered correctly?

5. How can lists be used to create different levels or stages in a game? 
Imagine a platform game where each level consists of a series of challenges (enemies, obstacles, rewards). How could you use lists to store the data for each level and load it dynamically as the player progresses?

Finally, I want you to complete a survey about our LMS

 

 

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()