1. Welcome, Introduction, and Setup#
1.1. Introductions#
Dr. Sarah Brown
Please address me as Dr. Brown or Professor Brown,
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!
questions can 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
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?
This information will help me prepare
1.3. 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 to work in a way that works for you
1.3.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.3.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.4. 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.5. 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 can not add value for a company
learning deeply means you can actually use them effectively and add value beyond an AI
1.6. 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.7. “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
Note
We may not think that we use the fact that we know the order of letters in the English language very often. Most of us learned the alphabet with a song, but we do not sing that on a dialy basis.
However, we do fill out forms where we have to, for example, find the state we live in, in a dropdown and knowing the alphabetical order of the states helps us find ours faster.
When you know things really well, you apply them without noticing.
1.8. How does this work?#
1.8.1. In class:#
Memory/ understanding check
Review/ clarification as needed
New topic demo with follow along, tiny practice
Review, submit questions
1.8.2. Outside of class:#
Build your cookbook with your team
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.9. 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 repo
click on .gihub, then workflows, then track.yml
click the 3 dots menu and select delete
commit directly to main with the default message
back to the main code tab
Click the pencil to edit the readme
Add your name
Add a descriptive commit message
Choose create a branch and open a pull request
name the branch
Click on the list of commits, now you have one more!
1.10. 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.10.1. How it fits into your CS degree#
1.11. In your 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.12. 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.12.1. Programming is Collaborative#
There are two very common types of collaboration
code review (working 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.12.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.12.3. Get Credit for Today’s class#
Run your Experience Reflection (inclass) action on your kwl repo
Complete the file.
1.13. Prepare for next class/lab#
review notes after they are posted, both rendered and the raw markdown include links to each in your badge PR
map out your computing knowledge and add it to your kwl chart repo. this can be an image that you upload or a text-based outline in a file called prior-knowledge-map. (optional) try mapping out using mermaid syntax, we’ll be using other tools that will faciltate rendering later
1.14. Review#
Review the notes after I post them.
Fill in the first two columns of your KWL chart (on a branch for this badge).
review git and github vocabulary (include link in your badge PR)
Post an introduction to your classmates on our discussion forum
1.15. Practice#
Review the notes after I post them.
Fill in the first two columns of your KWL chart (on a branch for this badge).
review git and github vocabulary be sure to edit a file and make an issue or PR (include link in your badge PR)
Post an introduction to your classmates on our discussion forum