1. Welcome, Introduction, and Setup#

Today:

  • intros

  • what the learning goals of the course are

  • see how in class time will work

  • start learning git/github by doing

Not Today:

  • syllabus review (on your own time/lab Monday)

  • cours policy discussion (next week)

1.1. Introductions#

  • Dr. Sarah Brown

  • Please address me as Dr. Brown or Professor Brown,

  • Ms./Mrs. are not acceptable

You can see more about me in the about section of the syllabus.

1.2. Why think like a computer?#

With Large Language Models (LLMs) able to write code from English (or other spoken languages, but LLMs are generally worse at non English)

Let’s discuss some examples.

Many things in this course are things you will use everyday some of it is stuff that will help you in the trickest times.

I was given this excerpt:

echo "# fall2024" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/compsys-progtools/fall2024.git
git push -u origin main

but since I had content already I needed to skip several of these steps I needed to know what each one did to skip the right ones.

Assume you have dates stored as a date type, is it the same to add 365 days and add 1 year?

In Python, let’s see

from datetime import date, timedelta
date.today() + timedelta(days=365)

What if we do last year?


date(2023,9,3) + timedelta(days=365)

I look forward to getting to know you all better.

1.3. Prismia#

  • instead of slides

  • you can message us

  • we can see all of your responses

  • emoji!

questions can be “graded”

  • this is instant feedback

  • participation will be checked

  • correctness will not impact your final grade (directly)

  • this helps both me and you know how you are doing

or open ended

And I can share responses, grouped up

1.4. This course will be different#

  • no Brightspace

  • 300 level = more independence

  • I will give advice, but only hold you accountable to a minimal set

  • High expectations, with a lot of flexibility

as an aside another Professor describing what she does not like about learning management systems (LMS). Brightspace is one, she talks about Canvas in the post, but they are similar.

I do not judge your reasons for missing class.

  • No need to tell me in advance

  • For 1 class no need to tell me why at all

  • For 1 class, make it up and keep moving

  • For longer absences, I will help you plan how to get caught up, and you must meet university criteria for excused absence

If you do email me about missing a single clss, I will likely not reply. Not because I do not care about your long term success; I do! I just get too many emails and cannot do the more important parts of my job if I answser every single email. Skipping these emails gives me more time to help students who actually need my help.

1.4.1. My focus is for you to learn#

  • that means, practice, feedback, and reflection

  • you should know that you have learned

  • you should be able to apply this material in other courses

1.4.2. Learning comes in many forms#

  • different types of material are best remembered in different ways

  • some things are hard to explain, but watching it is very concrete

1.5. Learning is the goal#

  • producing outputs as fast as possible is not learning

  • in a job, you may get paid to do things fast

  • your work also needs to be correct, without someone telling you it is

  • in a job you are trusted to know your work is correct, your boss does not check your work or grade you

  • to get a job, you have to interview, which means explaining, in words, to another person how to do something

1.6. How does this work?#

1.6.1. In class:#

  1. Memory/ understanding check

  2. Review/ clarification as needed

  3. New topic demo with follow along, tiny practice

  4. Review, submit questions

1.6.2. Outside of class:#

  1. Read notes Notes to refresh the material, check your understanding, and find more details

  2. Practice material that has been taught

  3. Activate your memory of related things to what we will cover

  4. Read articles/ watch videos to either fill in gaps or learn more details

  5. Bring questions to class

1.7. Getting started#

Your KWL chart is where you will start by tracking what you know now/before we start and what you want to learn about each topic. Then you will update it throughout the semester. You will also add material to the repository to produce evidence of your learning.

see the link on prismia if you missed class

There is a Glossary!!

repository

pro tip: links are often hints or more information

1.8. GitHub Docs are really helpful and have screenshots#

they pay people to update them so I direct you to theirs mostly instead of recreating them

Today we did the following:

  1. Accept the assignment to create your repo

  2. Edit the README to add your name by clicking the pencil icon (editing a file step 2)

  3. adding a descriptive commit message (editing a file step 5)

  4. adding prior knowledge

  5. created a new branch (named day1_kwl) (editing a file step 7-8)

  6. added a message to the Pull Request (pull request step 5)

  7. Creating a pull request (pull request step 6)

  8. Clicking Merge Pull Request

1.9. Git and GitHub terminology#

We also discussed some of the terminology for git. We will also come back to these ideas in greater detail later.

1.9.1. GitHub Actions#

GitHub allows us to run scripts within our repos, the feature is called GitHub Actions and the individual items are called workflows.

Action files are stored in the .github/workflows folder in yaml files (key value pairs that hold settings and script steps).

Some run automatically, like on any PR or when a commit is to main. The ones in your KWL repo are “manual” so we run them from the Actions tab.

1.9.2. Fix your repo#

Important

So, it is apparently a weird bug in GitHub, that the actions were not working, but it is easy (though a little annoying) to fix.

You can do this before or in Lab on Monday.

On each file in the .github/workflows folder that ends in .yml edit in some small way (eg add an additional blank line in a place where there is a blank line already) and commit directly to main.

1.9.3. Get Credit for class#

You can use the same content you sent on prismia at the end of class, but for the script to count it at the end of the semester, it has to be in your repo.

  1. Go to the actions tab of your repo

  2. Select the action that has the name Forgotten Badge (Late, but was in class)

  3. In the blue banner that appears click Run Workflow

  4. leave the branch set to main

  5. Enter the date 2024-09-05

  6. Wait a minute or so for it to run, when it has a green checkmark, go to your PR tab

  7. select the PR with the title Experience Report 2024-09-05

  8. Go to the files tab of that PR and edit it (use the 3 dots menu in the top right of the file box)

  9. fill in the information and commit to the same branch (do not open an additional PR)

  10. assign @instructors to review your PR.

For screenshots, see the Manually running a workflow, on GitHub

1.10. Prepare for next class#

  1. (for lab Monday) Read the syllabus section of the course website carefully and explore the whole course website

  2. (for lab Monday) Bring questions about the course

  3. (for class Tuesday) Think about one thing you’ve learned really well (computing or not). Be prepared to discuss the following: How do you know that you know it? What was it llike to first learn it? (nothing written to submit, but you can use the issue to take notes if you would like)

1.11. Badges#

  1. accept this assignment and join the existing team to get access to more features in our course organization.

  2. Post an introduction to your classmates on our discussion forum (include link to your comment in PR comment, must accept above to see)

  3. Read the notes from today’s class carefully

  4. Fill in the first two columns of your KWL chart (content of the PR; named to match the badge name)

  1. accept this assignment and join the existing team to get access to more features in our course organization.

  2. Post an introduction to your classmates on our discussion forum (include link to your comment in PR comment, must accept above to see)

  3. Read the notes from today’s class carefully

  4. Create a profile readme and include a screenshot of your profile

  5. Fill in the first two columns of your KWL chart (content of the PR; named to match the badge name)

1.12. We havea Glossary!!#

For example, the term we used above:

repository

Tip

In class, on prismia, I will sometimes link like above, but you can also keep the page open if that is helpful for you.

In the course site, glossary terms will be linked as in the follwing list.

Key terms for the first class:

1.13. Questions after class#

1.13.1. How do I actually use Git/Github with one of my coding projects?#

We will build that up

1.13.2. What conceptually are we supposed to take from today lesson aside from just how pull requests work?#

the key vocabulary.

1.13.3. What kind of projects will we be completing?#

Optionally, you may complete projects. You can see examples in the build section.

1.13.4. Will this class go over topics that will help me on CSC 212 content?#

the collaboration on github will help

1.13.5. what a day to day looks like in this class#

a lot like this class, but the 3rd class will be more typical than the first 2.

1.13.6. will we need to access git without using github#

we will use the git program without GitHub yes, locally on your computer

1.13.7. how to create branches and merge branches to the main. Other basic features of github#

We will learn over time

1.13.8. I want to learn all of github’s functions.#

We will not get to every function, but we will cover the main categories

1.13.9. Something that I want to learn more about is using git from the command line#

Soon!

1.13.10. Nothing specific, I would just like to learn more about GitHub in general because I know how important of a tool it is#

perfect! that is what we will do

1.13.11. just how to utilize github more and all the futures we haven’t covered#

we will get there