Solving Complex Problems Through Programming

Tuesday 8 October 2024 - Block 7
← previous note | most current note | next note →
 

Daily Note

We are going to start thinking about our first project! Your problem must fit into one of four tracks. 

 

--> Please send Mr. MacKenty an email with three suggested problems you'd like to try to solve. <-- 
 

1. Computer Science Track
This track focuses on exploring classic computer science problems or innovative technological solutions. You should engage with concepts such as algorithms, data structures, systems architecture, or AI.

Guidelines:
- Encourage exploration of core computing problems (e.g., optimization, searching, sorting, cryptography).
- Projects should involve understanding the theory behind the problem and applying practical solutions.
- You can also experiment with emerging fields like artificial intelligence, machine learning, or cybersecurity.

Guiding Questions:
- Can you identify a real-world problem that can be solved using a specific algorithm (e.g., shortest path, encryption)?
- What kind of data structure (e.g., tree, hash map) might be optimal for solving your problem?
- How could artificial intelligence or machine learning algorithms be applied to enhance or automate solutions to your problem?
- What optimization techniques can you explore to improve the efficiency of your solution?
- Could you develop a tool or utility that helps others understand a fundamental computer science concept (e.g., compiler, interpreter, visualization)?

2. Computing in Biology Track
This track explores computational solutions to biological or biomedical problems. Students should tackle bioinformatics, genetic algorithms, or healthcare systems.

Guidelines:
- Projects should bridge biology and computing, such as data analysis in genomics, simulating biological processes, or improving healthcare technology.
- Ensure students are focused on ethical and practical applications, especially regarding privacy and data sensitivity.
- Encourage interdisciplinary approaches, where biological data (e.g., DNA sequences, medical imaging) is processed computationally.

Guiding Questions:
- What biological data (e.g., genome, proteins) could benefit from computational analysis, and how will you process or analyze it?
- Can you develop a simulation of a biological process (e.g., cell division, protein folding)?
- What computational methods can help solve a healthcare problem (e.g., early disease detection, personalized medicine)?
- How can machine learning or algorithms be used to predict biological phenomena or outcomes?
- How can you handle large biological datasets efficiently and effectively in your project?

3. Computing in Business Track
This track encourages students to explore how computing can solve business-related problems such as automation, data analysis, e-commerce, or business intelligence.

Guidelines:
- Projects should involve real-world business challenges, possibly addressing workflow optimization, data analytics, or customer experience.
- Ensure students explore practical, scalable solutions that consider performance, user experience, and return on investment (ROI).
- Encourage integration of financial, operational, and analytical concepts within the problem.

Guiding Questions:
- What business process or workflow can be improved through automation or a custom software solution?
- Can you analyze business data (e.g., sales, marketing, customer data) to discover trends and make better decisions?
- How can your solution improve customer experience, or enhance the functionality of an existing system (e.g., CRM, ERP)?
- What security and privacy concerns should you consider when handling sensitive business data?
- Can you create a tool or system that helps a business reduce costs or increase productivity?

4. Games Programming Track
This track allows students to explore game development, including mechanics, physics, AI for games, or virtual environments.

Guidelines:
- Projects should focus on game mechanics, user experience, or the technical aspects of game development, such as physics engines or AI behavior.
- Students should understand the balance between creativity (storytelling, design) and technical problem-solving (code efficiency, performance).
- Encourage students to develop not just the gameplay but the underlying architecture of the game, such as rendering engines or multiplayer systems.

Guiding Questions:
- What game mechanics or features will you implement, and how will they engage players?
- Can you develop an AI system to control non-player characters (NPCs) or implement pathfinding algorithms?
- What optimization techniques will you use to ensure smooth gameplay performance?
- How can physics or realistic interactions enhance the player’s experience in your game?
- Can you design a multiplayer system, ensuring efficient data handling and synchronization?

 

--> Please send Mr. MacKenty an email with three suggested problems you'd like to try to solve. <--

 

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?