Lecture Materials


Class Announcements

  1. Read the Syllabus!
  2. Assignment 0 is out. It takes 5 minutes to complete :-).

Questions & Answers


Q: Are we doing just logistics today or will material be taught?

A1:  Material will be taught as well


Q: that link in the ACE post is for fall 2020

A1:  I will fix it. Thanks !


Q: if we enroll in ACE, do we need to stay the entire time? it conflcits with a class of mine

A1:  Emai Sonja to ask her preferences. sonjyu@stanford.edu


Q: The syllabus says this class only counts for WAYS-FR when taken for a letter grade, but Stanford announced that for this academic year (because of COVID) courses taken credit/no credit can still count towards WAYS?

A1:  I think yes, but double check with your academic advising director


Q: If I took AP Computer Science A in high school and did well, should I take 106b instead?

A1:  Check out the course placement handout or come to office hours to chat more about this. But yes, you may be ready for 106b!


Q: how different are coding languages from each other?

A1:  Some are similar, some are very different! But once you learn one language, it becomes easier to learn others :)


Q: will we be able to do the excercises if we are not able to attend class live?

A1:  Yes! They are linked on the slides which are posted on the course website


Q: Is the workload same for 3 credits and 5 credits?

A1:  Yes


Q: Is there a clear version of syllabus i.e. the exact date and grading of assignments and projects?

A1:  We don’t have the exact date for assignments finalized yet, but check out the General Course Information handout for more details about grading and the course in general


Q: can a non-graduate student take the course for 3 units?

A1:  No. Non-graduate students must take the course for 5 units


Q: if we have some coding experience but no formal coding education would this be a good class to take still? would taking cme 193 in tandem be ok in this case?

A1:  Yes this is a good class to take in that scenario. You can try out cme 193 (maybe do an assignment or 2), but we usually recommend it after 106a.


Q: When can we expect to have the exact dates for assignments finalized?

A1:  They are usually due on Tuesday/Wednesday nights (11:55pm PT) each week.


Q: What’s the grading scheme for this class? Sorry I didn’t find it on the syllabus

A1:  Check out the general course information handout for grading info


Q: How does collaboration work in the course without Honor Code Violations/Concerns?

A1:  Check out the honor code section of the syllabus. High level ideal is that you do the work of coming up with how to turn high level ideas into code yourself.


Q: Do we get any of the hws or quizzes dropped?

A1:  Nothing is dropped


Q: What is the meeting time for CS 193Q? On Axess it’s 12 am to 12 am.

A1:  Thursday afternoon sometime. https://web.stanford.edu/class/cs193q/


Q: are there more options for section times? or is it just 3:30-5:30

A1:  There are tons of options for section times! They signups are available starting Thursday


Q: How much time should we budget for weekly assignments

A1:  We usually find students spend around 10 hours on the programming assignments


Q: Can you look for similar examples to help with homework or is that cheating?

A1:  You can look for similar examples from 106a course material this quarter, but not from the web


Q: on the website the cs 100a Ace course is closed. How do I sign up still?

A1:  I just updated it with the winter link. If it still isn’t working, send me an email (jwoodrow@stanford.edu)


Q: What percent do we need to earn to get an A, B, C, etc.?

A1:  It changes every quarter. But it is usually the same grade cutoffs and as you would expect


Q: do we have a homework due this week

A1:  Assignment 0! We are asking you to fill out some information about yourself :)


Q: is there a curve? What is the average grade in the class?

A1:  It varies every quarter. We do not curve down, Sometimes we curve grades up. Sometimes there is no curve. I think the average grade is around a B/B+ but every quarter is different.


Q: It looks like the ACE signup link is broken?

A1:  Try refreshing the website and clicking the link again. If it is still broken, send me an email (jwoodrow@stanford.edu)


Q: Are you allowed to work on homework assignments with other people as long as the final code/product is different and your own work?

A1:  We want to encourage collaboration! The general rule is that you can discuss high level ideas, but you have to translate those ideas into an aglorithm / code by yourself.


Q: is there Karel in this class?

A1:  We will use a robot similar to Karel called bit this quarter


Q: I took AP CompSci in high school, but I have zero experience with C++. Should I be taking CS106B?

A1:  I usually recomment trying out the first 106b assignment. It is the first class at stanford where students learn c++ so it is a new language for almost all of the students.


Q: should we have something open right now or just be watching nick?

A1:  You can follow along on the slides or just watch Nick’s screen


Q: What did "bit = Bit(filename)" do?

A1:  live answered

A2:  That brings the bit world into existence. You don’t need to worry about the exact details of how it works.


Q: How does bit know what direction to move?

A1:  Great question! It always moves in the direction it is facing.


Q: where are the slides posted? Thank you

A1:  On the course website (cs106a.stanford.edu). Then you click lectures->1. Welcome-> Part 2


Q: Is it normal that “Move” moves bit in any direction? Bit starts by going right and then goes down. Thanks

A1:  The move function moves bit in the direction it is facing


Q: Does move(bit) not work? Really new to this

A1:  That does not work sadly. When we want to tell bit what to do, we start with bit and then call the funciton we want bit to do. So if we want bit to move we do: bit.move() or if we want to turn right we do: bit.right()


Q: Can bit do any color?

A1:  There are a list of colors it can use. Check out the bit reference on the course website under the “Resources” section


Q: so a parameter describes a function?

A1:  A paramter is information that you give to a function. We will go more in depth on parameters in a few lectures.


Q: why did it change directions without a parameter?

A1:  You can do something like bit.right() to change the direction in which bit is facing


Q: Should we be sad that we won’t be using Karel?

A1:  No! Karel is great, but so is bit :)


Q: will we have acess to the notes Prof Paralante is referencing?

A1:  Yes they are posted on the course website (cs106a.stanford.edu) under the Lectures tab


Q: Is the move function defined in the Bit file?

A1:  Yes


Q: Is there a code which detects why a code fails?

A1:  Yes! You will download software in which you will write your code and the software can find syntax errors in your code.


Q: how do we get into our discussions? through axcess or?

A1:  A signup link will be posted on the course website on Thursday evening


Q: will the lecture notes always be posted before class?

A1:  We try really hard to have them posted before class!


Q: Are all compile errors syntax errors?

A1:  Yes!


Q: During future classes (after we have pycharm) will we be coding during class along with the lecture? or will the practice only be during hw/exams?

A1:  You will be coding along during class! Even before we have pycharm


Q: should i use windows or os x for any software used in this class? or does it matter which operating system?

A1:  Pycharm works on windows or os x, so it is up to you


Q: I clicked on these bit error links from the lecture notes online but there aren’t any errors in them. Is that just me?

A1:  That is not just you. Not sure why they didn’t link properly. I will investigate


Q: You mentioned on average we spend 10 hours on each assignment. I was wondering if the assignments are super long or super challenging?

A1:  Given that the assignments are weekly this quarter, I imagine the average time may be less than 10 hours / assignment. Assignments in this course are challenging but we do offer a lot of support!


Q: What determines whether a program can’t be compiled, versus just not being able to run?

A1:  Great question! It depends on where the syntax error is. As you code more, you will gain more experience with each of these problems.


Q: Is it case sensitive?

A1:  yes


Q: what is the significance of indentation?

A1:  It is important because it tells the computer when certain pieces of code are run. We will learn more about the significance when we talk about control flow


Q: Will the program we’re typing into automatically indent the code or do we have to do it manually for each line?

A1:  I believe when you hit enter it brings you to the same level of indentation as you are on.


Q: when i clicked on the error exercise, all of them looked good? is there something wrong on my end?

A1:  Nothing wrong on your end.


Q: can bit only turn right?

A1:  there is a bit.left() command


Q: Don't know if this has anything to do with it, but I have "logged in:nick" on the lecture notes right now - just adding to previous questioner

A1:  Yes Nick will fix that soon :)


Q: where can i find this handout

A1:  Checkout Lectures->1. Welcome->Part 2 on the course webpage (cs106a.stanford.edu)


Q: where can we code along?

A1:  Go to the lecture notes on the course website


Q: Could you explain what is going on in the second line of code?

A1:  That creates the bit world. You do not need to worry too much about that right now.


Q: what is the significance of line 2 in the code (bit = Bit)?

A1:  That just creates the bit world. You do not need to worry too much about how that works for now.


Q: What is the significance of the auto-play button?

A1:  live answered


Q: Can the .move function take a parameter e.g., .move(2) if you want it to move two spaces before painting?

A1:  No, the move function does not take parameters


Q: why are the parentheses empty with bit.move() ??

A1:  bit.move() does not take in any parameters. In other words, you do not put anything in those paranthesis because you do not need to give that function any information.


Q: Why is it "do_bit1" and not "do_bit"? Where does the 1 come from?

A1:  that is just an arbitrary name of the function. We are just differentiating the exercises.


Q: what do the Diff marks represent? thank you!

A1:  live answered


Q: does while always start the loop?

A1:  Yes while is always at the start of the loop


Q: where do we find the links for lecture

A1:  on the course website (cs106a.stanford.edu) under the Lectures tab


Q: and why don’t u have to define what front_clear means to the computer?

A1:  That has already been defined to the computer by another programmer (Nick). Same with move() and right()


Q: why is their one clear square in that line that bit didn’t paint green?

A1:  It moved before it painted. So the first square is not painted.


Q: Is there a way we can get to practice with code before we get instructions to install the compiler next week like he said?

A1:  We will be using parlante.org to practice before downloading Pycharm


Q: I cant find the lecture slides on cs106a websit...

A1:  Under the Lectures Tab in the top navigation bar. Then it is under 1. Welcome and then we are on Part 2


Q: is this “while” function kinda like a conditional (if-then) in logic? or does it differ?

A1:  It is a bit different because while continues so long as something is true and then once that becomes false, it runs the rest of the code.


Q: what happpens when autoplay is off?

A1:  live answered


Q: how does bit know to stop in this example

A1:  When the front is not clear, bit exits the while loop and then there is no more code for bit to do so it stops


Q: Why are the worlds created each time different sizes in each example?

A1:  live answered


Q: Does the amount of times we indent matter? For example do we have to use tab once, twice, etc?

A1:  live answered


Q: How does the computer know what these words mean? Like front_clear and paint?

A1:  live answered


Q: how much is attendance worth re grades?

A1:  Lecture attendance is not graded. Section participation is 5%


Q: I was trying to tinker with the "go-green" code, but whenever I try to type anything it appears several spaces to the left. Is this a known issue (easy fix of some kind?)

A1:  I think this is because we are all on the same account. This will be fixed soon.


Q: re: that last question, if you changed the order of bit.move and bit.paint, would it have painted the first square?

A1:  live answered


Q: does the front_clear function contain an if statement?

A1:  live answered


Q: Where is there list of the pre-exsiting bit functions that have been made by Nick?

A1:  live answered


Q: Do you always have to use while to call a loop or are there anyways to do that?

A1:  live answered


Q: just to clarify, is there a space or not between the parentheses when there is no parameter?

A1:  live answered


Q: when do we find out about ace acceptances or not :(

A1:  live answered


Q: How did he get to the different cases

A1:  live answered


Q: How do I know what section am I in? and when does it meet?

A1:  live answered


Q: for ace there is no 106a option in the form

A1:  Interesting. Email Sonja (her email is on the course website).


Q: Can you run other tests with the ‘while’ loop, and how do you know what tests you can run?

A1:  live answered


Q: What if you wanted to paint the row below green?

A1:  you can change the parameter to bit.paint() to be ‘green’ instead of ‘blue’ for that row


Q: Anything we need to get done before Weds?

A1:  There will be a link on the course website on Thursday evening.


Q: lol what is homework?

A1:  Check out the syllabus and general course information handout


Q: Do we have any homework today?

A1:  Assignment 0! We want to know abut you


Q: Any readings we need to do ahead / after class?

A1:  Nope! but you can checkout assignment 0 and read over the course website


Q: Can you expand on LaIR? How accessible is it? Is it chaired by a rotating cadre of TA’s? etc. Thanks!

A1:  It is from 5-9pm Sunday-Thursday run by our awesome section leaders. If you have certain accessibility needs and feel comfortable doing so, please email me! You sign up for one on one help.


Q: where do we enroll in section?

A1:  Between Thursday evening and Sunday afternoon


Q: Where does the "filename" come from?

A1:  live answered


Q: Where can we find our homework for each class?

A1:  live answered


Q: So, in order to paint the whole world, do you turn right, paint and then turn right

A1:  That is one strategy!


Q: will we be walked through installation of any relevant software when the time comes?

A1:  Yes there will be a handout explaining how to do so.


Q: When do we need to download pycharm by? Where can we find it again?

A1:  Sometime next week. We will post information when it is time to download.


Q: I’m having trouble logging into Ed. Will the sign-up for sections be on Ed?

A1:  No that will be on the course website. Send me an email about Ed access. (jwoodrow@stanford.edu)


Q: what do we type for the “filename” in the code?

A1:  live answered


Q: How do we get to the bit website to practice?

A1:  There are links in the lecture info from today on the course website


Q: re: trouble logging into Ed… what is “Ed” ??

A1:  Checkout the announcment about Ed on the course website


Q: what do we use ed for?

A1:  Questions you have about the class! Post there rather than emailing us.


Q: When does software end and hardware begin?

A1:  Great question! We will go into this a little at the end of the quarter. There are tons of CS courses about this at Stanford. CS110, CS107E, CS144


Q: where do we get to know all functions associated with 'bit'?

A1:  bit reference page under “Resources” on the course website


Q: Is while the only way to create a loop?

A1:  nope. There is also a for loop.


Q: If a function has no parameters, do you still need to put the parenthesis ()?

A1:  Yes


Q: In the last example could you paint the entire world? Like when it hits the wall can you make it turn and then keep painting?

A1:  Yes. Try it out


Q: What other conditions can Bit check for?

A1:  Checkout the bit reference


Q: Is this world where the person in the box that paints things a special case of python? Does python always require bit., or is that special to this case?

A1:  Bit is a special version of python. We will leave Bit in a week or so and go into “normal” python


Q: How do I know what section I am in and when do we meet?

A1:  Signups for section and more info comes out Thursday evening on the course website


Q: Do we always continue on the notes where we left off in the previous class? Or is there a specific note to click on for each lecture

A1:  There is a specific note for each lecture


Q: how do we do the hw assignments starting wednesday if we aren’t getting pychart until next week?

A1:  We will do them on a website. More info to come when we release the assignment.


Q: can we use the same link on the lecture page to play with bit on our own?

A1:  Yes!


Q: so is homework assigned on Wednesday and due next week Tuesday?

A1:  Yes usually.


Q: Someone mightve asked this already, but are we supposed to have bit/python donwloaded?

A1:  Nope. Not yet!


Q: should we go ahead and do assignment 0?

A1:  yes!