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:#

  1. Memory/ understanding check

  2. Review/ clarification as needed

  3. New topic demo with follow along, tiny practice

  4. Review, submit questions

1.8.2. Outside of class:#

  1. Build your cookbook with your team

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

  3. Practice material that has been taught

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

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

  6. 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

  1. click on .gihub, then workflows, then track.yml

  2. click the 3 dots menu and select delete

  3. commit directly to main with the default message

  4. back to the main code tab

  5. Click the pencil to edit the readme

  6. Add your name

  7. Add a descriptive commit message

  8. Choose create a branch and open a pull request

  9. name the branch

  10. 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#

  1. Run your Experience Reflection (inclass) action on your kwl repo

  2. Complete the file.

1.13. Prepare for next class/lab#

  1. review notes after they are posted, both rendered and the raw markdown include links to each in your badge PR

  2. 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#

  1. Review the notes after I post them.

  2. Fill in the first two columns of your KWL chart (on a branch for this badge).

  3. review git and github vocabulary (include link in your badge PR)

  4. Post an introduction to your classmates on our discussion forum

1.15. Practice#

  1. Review the notes after I post them.

  2. Fill in the first two columns of your KWL chart (on a branch for this badge).

  3. review git and github vocabulary be sure to edit a file and make an issue or PR (include link in your badge PR)

  4. Post an introduction to your classmates on our discussion forum