Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepping for labs+Rockscout+Hubble #6503

Merged
merged 1 commit into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions docs/courses/csintro.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# CS Intro
# Introduction to Computer Science with MakeCode Arcade

A collection of courses meant to teach introductory programmers using Blocks and JavaScript
Hello! Welcome to the new student guide for "Introduction to Computer Science with MakeCode Arcade"!

This page will provide you with additional activities that you can complete in order to better understand the lessons in the official curriculum. Please note, this page does not contain any answer keys or exemplar projects.

### ~hint

These courses are currently in beta - this means that they are likely to have bugs and changes made fairly regularly. If you see anything that doesn't seem quite right, or if you have any suggestions, please file an issue on [github](https://github.com/microsoft/pxt-arcade).
If you are looking for our previous "CS Intro" course, you may now find that at:"
https://arcade.makecode.com/courses/csintro-archive

### ~

## Courses on Flipgrid

Flipcode for the **Intro to CS** course grid: **[csintroarcade](https://flipgrid.com/csintroarcade)**

## Course Sections
## Unit 0 Activities

```codecard
[
Expand All @@ -35,23 +35,23 @@ Flipcode for the **Intro to CS** course grid: **[csintroarcade](https://flipgrid
]
```

## About the CS Intro Series
## Unit 1 Activities

The CS Intro Series is designed to teach new developers how to code from the ground up.

In CS Intro 1, students are introduced to programming through the MakeCode Blocks editor. They can create their own games, while learning concepts that are crucial to software development: creating variables, responding to events, and using iteration to simplify and extend their programs. Throughout the course, they will learn to develop their own games through small daily tasks, as well as projects that guide them through the process of turning basic ideas into full-fledged games.

In CS Intro 2, students will continue to develop the software development skills they were introduced to in the first course, with more advanced programming concepts such as functions, logical comparisons, and arrays. These new skills will allow students to create more advanced and compelling games.
## Unit 2 Activities



## Unit 3 Activities



### ~hint

In the future CS Intro 3 and CS Intro 4 courses, students will transition the skills they have learned in a Block based environment into skills in a text based coding environment, allowing them to dig deeper into the games they make, as well as transition their skills in the @boardname@ into other environments.

### ~

## See also

[Courses Home Page](/courses),
[CS Intro 1](/courses/csintro1),
[CS Intro 2](/courses/csintro2),
[CS Intro 3](/courses/csintro3)
[Arcade Tutorials](/tutorials),
[Beginner Skillmaps](/beginner-maps),
223 changes: 223 additions & 0 deletions docs/courses/csintro/unit-0/s01-lab0006.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# Lab 0.6: Self-portrait

## It's all about you! @showdialog

In this tutorial, you will continue your exploration of MakeCode Arcade,
creating a simple "self-portrait" to introduce yourself to your instructors
and your classmates.

## Bell ringer @showdialog

**How would you fill in this sentence? I am ______.**

This could be answered in many ways:

1. What you enjoy doing: I am *a musician*.
1. Physically: I am *tall*.
1. Personal characteristic: I am *funny*.
1. Career aspirations: I am *an engineer*.
1. Self-reflective: I am *a deep thinker*.
1. As an athlete: I am *a runner*.

Want some other ideas?

**Complete this sentence: I like ______.**

Take a few minutes to think who you are and what you like,
and write down a few of them.
You will use these descriptions shortly!

## Set the scene!

In this tutorial, you will be adding blocks to your
``||loops(noclick):on start||``
container.

- From the
``||scene:Scene||``
drawer, set the background color.

View the hint by selecting the light bulb below
if you need to see an example of the code that you are building.

```blocks
scene.setBackgroundColor(7)
```

## Here I am!

Now, let's add your avatar. An **avatar** is an image that represents
someone or something.

1. From the
``||sprites:Sprites||``
drawer, create a new sprite that represents you.
1. Give your sprite an image that represents you.
**Do not** use an existing image from the gallery.

View the hint by selecting the light bulb below
if you need to see an example of the code that you are building.

```blocks
scene.setBackgroundColor(7)
// @highlight
let mySprite = sprites.create(sprites.builtin.cat0, SpriteKind.Player)
```

## You don't say!

Now, let's have your avatar say some facts about you.

- Using a block in the
``||sprites:Sprites||``
drawer, make the sprite "say" several things about you, including:
1. Your name and grade
**Internet safety note**: When creating projects
that may be shared on the Internet,
**only** use your given (first) name.
**Do not** use your first and last names.
1. At least three things from the bell ringer activity.
1. "Goodbye!"

View the hint by selecting the light bulb below
if you need to see an example of the code that you are building.

```blocks
scene.setBackgroundColor(7)
let mySprite = sprites.create(img`
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . . 5 5 . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . 5 5 . . . . . . .
. . . . . . . 5 5 . . . . . . .
`, SpriteKind.Player)
mySprite.sayText("My name and grade")
mySprite.sayText("Fact #1")
mySprite.sayText("Fact #2")
mySprite.sayText("Fact #3")
mySprite.sayText("Goodbye!")
```

## Too fast!

Is the sprite saying your facts too quickly?

- Add a
``||loops:pause (100) ms||``
block after any
``||sprites(noclick):say||``
block that goes too quickly.
- Adjust the length of the pause by changing the value
in the ``||loops(noclick):pause||`` block.

```blocks
scene.setBackgroundColor(7)
let mySprite = sprites.create(img`
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . . 5 5 . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . 5 5 . . . . . . .
. . . . . . . 5 5 . . . . . . .
`, SpriteKind.Player)
mySprite.sayText("My name and grade")
pause(1000)
mySprite.sayText("Fact #1")
pause(1000)
mySprite.sayText("Fact #2")
pause(1000)
mySprite.sayText("Fact #3")
pause(1000)
mySprite.sayText("Goodbye!")
```

## Whoops! Wrong spot!

Let's move your avatar elsewhere on the screen.

- Using the coordinate system that you learned in Lab 0.5,
move the sprite to a different location on the screen.
- Use a block in the ``||sprites:Sprites||`` drawer to do so.
- Be sure to place the block in the correct place.
Where does it need to go?

View the hint by selecting the light bulb below
if you need to see an example of the code that you are building.

```blocks
scene.setBackgroundColor(7)
let mySprite = sprites.create(img`
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . 5 5 5 5 5 5 5 5 5 5 . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . 5 5 5 5 5 5 5 5 . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . 5 5 5 5 5 5 . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . 5 5 5 5 . . . . . .
. . . . . . . 5 5 . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . 5 5 . . . . . . .
. . . . . . . 5 5 . . . . . . .
`, SpriteKind.Player)
// @highlight
mySprite.setPosition(80, 60)
mySprite.sayText("My name and grade")
pause(1000)
mySprite.sayText("Fact #1")
pause(1000)
mySprite.sayText("Fact #2")
pause(1000)
mySprite.sayText("Fact #3")
pause(1000)
mySprite.sayText("Goodbye!")
```

## Congratulations! @showdialog

If there is time left, you can add more actions to your program!

Here are some ideas.

- Instead of just appearing in a different position on the screen,
have the sprite move smoothly.
- Add a second sprite which also talks to the player.
- Make the sprite only talk when the player hits a button.

Follow your instructor's directions to submit your project.

```ghost
scene.setBackgroundColor(7)
let mySprite = sprites.create(sprites.builtin.cat0, SpriteKind.Player)
mySprite.sayText("My name and grade")
mySprite.sayText("Fact #1")
mySprite.sayText("Fact #2")
mySprite.sayText("Fact #3")
mySprite.sayText("Goodbye!")
mySprite.setPosition(80, 60)
```
Loading
Loading