1. Welcome and Introduction#
1.1. Introductions#
You can see more about me in the about section of the syllabus.
I look forward to getting to know you all better.
1.2. Prismia#
instead of slides
you can message us
we can see all of your responses
emoji!
Are emoji fun or do they make me Old? no penalty, this is for fun & to practice
[ ] fun
[ ] not cool
questions can also be “graded”
this is instant feedback
participation will be checked, not impact your final grade
this helps both me and you know how you are doing
What is the topic of this course?
[ ] hardware
[ ] programming
[x] computer systems and programming tools
or open ended
What is one thing you want the TAs and I to know about you?
1.2.1. Some Background#
What programming environments do you have?
What programming environments are you most comfortable with?
what programming tools are you familiar with? send exactly one tool name per message, but you can send multiple messages
This information will help me prepare
1.2.2. 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.3. Getting started with KWL charts#
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.
Today we did the following:
Accept the assignment to create your repo: KWL Chart
Edit the README (only file there) to add your name by clicking the pencil icon (editing a file step 2)
adding a descriptive commit message (editing a file step 5)
created a new branch (named
priorknowledge
) (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
1.4. 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.5. 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.5.1. How it fits into your CS degree#
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.6. Course Admin#
1.6.1. Programming is Collaborative#
There are two very common types of collaboration
code review (workign independently and then reviewing)
pair programming (sitting together and discussing while writing)
We are going to build your skill in the code review model. This means you need to collaborate, but collaboration in school tends to be more stressful than it needs to. If students have different goals or motivation levels it can create conflict. So you will have no group graded work but you will get the chance to work on something together in a low stakes way.
You will have a “home team” that you work with throughout the semester to build a glossary and a “cookbook” of systems recipes.
Your contributions and your peer reviews will be assessed individually for your grade, but you need a team to be able to practice these collaborative aspects.
Important
Remember to fill out the team formation survey
1.6.2. Class forum#
This community repository “assignment” will add you to a “team” with the whole class. It allows us to share things on GitHub, for the whole class, but not the whole internet.
Important
When you click that link join the existing team, do not make a new one
1.6.3. Get Credit for Today’s class#
Run your Experience Reflection (incalss) action on your kwl repo
today’s evidence is your KWL repo existing and having the commits as above
1.7. Review today’s class#
Review the notes after I post them.
Fill in the first two columns of your KWL chart.
review git and github vocabulary (include link in your badge PR)
1.8. Prepare for Next Class#
Find the glossary page for the course website. Preview the terms for the next class: shell, terminal, bash, git, GitHub
Check your kwl repo before class and see if you have recieved feedback,reply or merge accordingly.
Make sure you have a working environment, see the list in the syllabus. Use the discussions to ask for help
1.9. More Practice#
Review the notes after I post them.
Fill in the first two columns of your KWL chart.
review git and github vocabulary (include link in your badge PR)
Read more about version control in general and add a “version control” row to your KWL chart with all 3 columns filled in.
1.10. Questions After Today’s Class#
Note
I will add the rest later, today I had a one time conflict.
1.10.1. How to directly merge all suggestions without clicking commit suggestion?#
Unfortunately, that is not an option on a PR review, but in general, you will not make a lot of changes in a review. We will learn other ways to do this
1.10.4. Easy way to remember everything we learned about pull requests?#
Keep coming to class and practicing. We will do them very many times and I will re-explain and explain in more detail over time.
1.10.5. How do I add collaborators to my repository?#
In the kwl repo you don’t have the permissions. But otherwise, on the GitHub Settings tab.
1.10.6. How does the grading work in this class?#
You earn badges by completing assigned activites.
1.10.7. Is attendance mandatory#
Mostly, yes. You can make up a missed class, but it will always be easier to participate in class.
1.10.8. How do these git commands work in the terminal?#
So far we used the terms, but have not seen the command directly yet. We will see them on Tuesday 1/31.
1.10.9. What are checks used for in the pull request tab?#
Checks can run tests or other quality checks on the code. For example, they can check that the code follows good style or that contributions do not change the test coverage.
1.10.10. Will we go more in depth in creating forks and features that git has?#
Yes we will go in depth on git features. We may not spend a lot of time on forks though (which are a GitHub feature). We will cover git in a way that does not cover every possible command, but focuses on How the most important ones work so that you have the foundation to understand the other parts (and new features that are introduced) quickly.
1.10.11. How are these systems used in work outside college?#
We will learn more about this later when we discuss the Stack overflow developer survey.
1.10.12. why does the branch have more commits then the main. I think i understand, but it could be clarified#
This is a good question. The branch had more commits than main because we told GitHub to make the new commit on a new branch. New branches have all of the history of the branch used to create them, plus any commits made to that branch.