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#
Ayman Sandouk
Trevor Moy
Elijah Smith-Antonides
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.
What differentiates LLM (Large Language Modules) from Computer Scientists?
1.3. GitHub#
This class is not a GitHub class
GitHub is the main tool that we will be using in this course
Not expecting you to be familiar with it
Homework is submitted through GitHub in a non-traditional way
Great practice for real-life software development with a team or even individual work
More on that later
I look forward to getting to know you all better.
1.4. 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
Questions can be multi-choice
or open ended
And I can share responses, grouped up
1.5. 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 will not chase you.
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
1.5.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.5.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.6. 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.7. What about AI?#
Large Language Models will change what programming looks like, but understanding is always going to be more effective than asking an AI. Large language models actually do not know anything, they just know what languages loook like and generate text.
if you cannot tell it when it’s wrong, you do not add value for a company, so why would they pay you?
1.8. This is a college course#
more than getting you one job, a bootcamp gets you one job
build a long (or maybe short, but fruitful) career
build critical thinking skill that makes you adaptable
have options
1.9. “I never use what I learned in college”#
very common saying
it’s actually a sign of deep learning
when we have expertise, we do not even notice when we apply it
college is not about the facts, but the processes
1.10. Learning is hard#
1.11. How does this work?#
1.11.1. In class:#
Memory/ understanding check
Review/ clarification as needed
New topic demo with follow along, tiny practice
Review, submit questions
1.11.2. Outside of class:#
Read notes Notes to refresh the material, check your understanding, and find more details
Practice material that has been taught
Activate your memory of related things to what we will cover
Read articles/ watch videos to either fill in gaps or learn more details
Bring questions to class
1.12. 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.
Accept the assignment to create your repository (aka repo)
We have a glossary!!
1.12.1. What is a directory?#
A “directory” in computing is a file system structure that acts like a container, organizing and managing files and other directories (often called folders) on a computer
pro tip: links are often hints or more information
Commits represent a message to your future self/teammates/viewers.
They mark what signifigant change has been made between one "checkpoint" in the status of a project and the next.
1.13. What is this course about?#
In your KWL chart, there are a lot of different topics that are not obviously related, so what is this course really about?
practical exposure to important tools
design features of those tool categories
basic knowledge of many parts of the CS core
focus on the connections
We will use learning the tools to understand how computer scientists think and work.
Then we will use the tools to examine the field of Computer Science top to bottom (possibly out of order).
1.13.1. How it fits into your CS degree#
knowing where you’ve been and where we’re going will help you understand and remember
1.14. In your degree#
this describes the BS; BA drops some of the math
In CSC110, you learn to program in python and see algorithms from a variety of domain areas where computer science is applied.
Then in CSC 340 and 440 you study the algorithms more mathematically, their complexity, etc.
In CSC211, 212, you learn the foundations of computer science: general programming and data structures.
Then in 301, 305, 411, 412 you study different aspects of software design and how computers work.
In this class, we’re going to connect different ideas. We are going to learn the tools used by computer scientists, deeply. You will understand why the tools are the way they are and how to use them even when things go wrong.
1.15. 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:
Accept the assignment to create your repo: KWL Chart
Edit the README to add your name by clicking the pencil icon (editing a file step 2)
adding a descriptive commit message (editing a file step 5)
adding prior knowledge
created a new branch (named
prior_knowledge
) (editing a file step 7-8)added a message to the Pull Request (pull request step 5)
Creating a pull request (pull request step 6)
Clicking Merge Pull Request
we will use this for discussions and see more in lab, but having you join now makes it easier for me to make you a member and give you access to a special member view
1.16. 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.16.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.
Navigate to your actions tab
1.16.2. Get Credit for Today’s class#
**Run your Experience Reflection (inclass) action on your kwl repo **
talk with peers to make sure you remember what the right way to click on it is
On the created PR, go to the Files
section, edit the file, and commit the changes.
1.16.3. Fix your repo#
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.
1.16.4. Make the edits#
On each file in the .github/workflows folder that ends in .yml edit in some small way
Important
if the file has the word “reviewer” in, change the reviewer from “brownsarahm” to “AymanBx”
else: make any small change (eg add an additional blank line in a place where there is a blank line already).
1.16.5. Run forgotten badge action#
Go to the actions tab of your repo
Select the action that has the name
Forgotten Badge (Late, but was in class)
In the blue banner that appears click
Run Workflow
leave the branch set to main
Enter the date
2025-01-23
Wait a minute or so for it to run, when it has a green checkmark, go to your PR tab
select the PR with the title Experience Report 2025-01-23
Go to the files tab of that PR and edit it (use the 3 dots menu in the top right of the file box)
fill in the information and commit to the same branch (do not open an additional PR)
assign @instructors to review your PR.
For screenshots, see the Manually running a workflow, on GitHub
1.17. Prepare for next class#
(for lab Monday) Read the syllabus section of the course website carefully and explore the whole course website
(for lab Monday) Bring questions about the course
(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.18. Badges#
accept this assignment and join the existing team to get access to more features in our course organization.
Post an introduction to your classmates on our discussion forum (include link to your comment in PR comment, must accept above to see)
Read the notes from today’s class carefully
Fill in the first two columns of your KWL chart (content of the PR; named to match the badge name)
accept this assignment and join the existing team to get access to more features in our course organization.
Post an introduction to your classmates on our discussion forum (include link to your comment in PR comment, must accept above to see)
Read the notes from today’s class carefully
Create a profile readme and include a screenshot of your profile
Fill in the first two columns of your KWL chart (content of the PR; named to match the badge name)
1.19. We have a Glossary!!#
For example, the term we used above:
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.20. Questions after class#
1.20.1. Should I be doing some practice/review badges between classes?#
Before each class, you need to complete the tasks assigned in the
prepare
issueAt the end of each class, run the
experience report (in class)
action and fill out the file at your own timeAfter each class, you get to pick one of the two (Practice/Review) and do that one. You only get graded for one of them