Giter Club home page Giter Club logo

2nd-semester-introduction-to-computer-science-principles's People

Contributors

aaudiber avatar goldblatt avatar kenneychan avatar mmorearty avatar nathaniel-teals avatar petevanwesep avatar smeredith avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

2nd-semester-introduction-to-computer-science-principles's Issues

Lab 2.06 Item 2 (tic-tac-toe)

The item :
Depending on the position that the user inputs, update the position of the board to reflect that.

I think could be clarified:

Depending on the position that the user inputs, update the position of the board to an "X" to reflect that.

Python "input" command works differently in the interactive mode and the file mode

In the file mode, if the input string is not enclosed in quotes, it is interpreted as a Python
command, not an input string.

In the interactive mode, input acts as a string input, not requiring the string to be enclosed in quotes.

The command raw_input acts as a string input without requiring quotes. The command raw_input is not defined in the interactive mode.

The "input" command allows you to enter Python commands by typing which is a very clever way of programming. If you enter bill Python treats it as a variable, if you enter "bill" it is treated as a string and the quotes are kept.

Associated Reading 2.03 - Logical operators section

the line:

n2 == 4 or n 10 == 100 is true if either of the conditions is true, that is, if the number is 2 or 1

should read

n_2 == 4 or 10_*n == 100 is true if either of the conditions is true, that is, if the number is 2 or 1

It might be worth mentioning that and OR expression is true whenever one of the operands is true and an AND expression is false whenever one of the operands is false.

Lesson 1.02: UNIX/Linux and Python Interactive commands

You introduce the Bash shell, perhaps a little intro on UNIX commands might be in order. I know our students need background.

Example: using the interactive screen, user can enter cntrl D or exit() to exit the Python interpreter and get into the Bash shell. Entering the Bash command "clear" will clear the screen and entering python3 will get the user back into the interpreter with a clean screen.

To edit a python command interactively, you can use the up arrow to get to a previous command and left, right keys to move within the command. The delete key removes characters and typing will insert new characters.

I would suggest a minimal cheat sheet of UNIX/Bash commands as well as editing keys for the interactive interpreter. I know my students would get lost quickly. Perhaps a lesson?

Lesson 2.01 Binary Day - Suggestion for Demo

I would suggest an unplugged version of how a fax works sending 0, 1 and line feed.

Have the student draw a 5 X 15 grid on the board. From the top left either fill in the square (send 1) and advance or just advance (send 9) or send a line feed to go to the beginning of the next line.

image

This would demonstrate how 0s and 1s (and a line feed) can display intelligible information. It would also show how a black and white fax machine operates.

We need a general "Teacher's Notes" section

Would go under "Introduction" and would have a bunch of general notes/suggestions.

For example:

  • Worksheets/Labs can be either printed for students and filled out by hand, or filled in on the computer and submitted online.
  • Do Nows are generally meant to be projected on screen, but can be printed as well.
  • Pacing guide offers suggested time frames, however each class is different. Teachers need to recognize the pace at which their class moves and adjust lessons accordingly.

LP 1.01 - new page called "2 ways to submit work"

Page details two suggestions for having students submit work via cloud9:

  1. shared workspace, and then your Learning Management System just has a form they submit saying "I'm done" and/or asking reflection questions

  2. students download files from cloud9 to local machine and then upload/submit those files to a learning management system (canvas, google classroom, etc)

Do Now 4.02

Is it supposed to be print(range(0,10))? When I type the code for both part 1 and 2 nothing happens.

1.03 Worksheet

Number the sections (Printing/Bonus/etc)
Fix formatting errors
Add a table for "type this into interpreter" and "what did the computer return?" in first part

Bugs in Oregon Trail Project 3.05

Tried running the example code and ran into some errors.

Tried fixing and hit some snags. Didn't have time to really go through this and fix all bugs.

Debugging

I think a reference to Grace Hopper and the logging of a moth caught in a relay as the origin of the term computer debugging would introduce some of the "folklore" of programming. Could introduce the print command as a debugging tool to examine values of variables and the path the code is taking. On more complex programs, I would use a binary approach to determine which "half" of the code the error was occurring. Having determined which half, I would apply the same method to the half with the error until I traced the source of the bug.
For some errors, Cloud9 will put a little round orange circle containing an "x"in the leftmost column of the file source pane.
To debug syntax errors, you have to think like a compiler.

Programming Jokes - You might include these as a lighter touch

"A program is like a nose; sometimes it runs, sometimes it blows. "

  • Howard Rose - As quoted in Computer Lib, 1987 printing, page 42

Actually I read this in a "Datamation" magazine in 1968.

A doctor, an engineer were arguing over what is the oldest profession.
The doctor said doctoring is the oldest, God made Eve out or Adam, a great medical feat.
No said the engineer, engineering is the oldest, God created Heaven and Earth out of Chaos.
The programmer said, who do you think cerated Chaos?

Lesson 1.03: Cloud9 - Python summary

Is there a summary of how Cloud9 works with Python? The colors of the commands, variable completion, etc. If there is I believe a summary/cheat sheet or a lesson for these would of great benefit as I know my students will not have had any experience with an IDE. I have already created an issue about the interactive/BASH part of the Cloud9 Python IDE.

Confusion over Project 4 - Tic-Tac-Toe

Is it supposed to be a complete game or not? The project description was written in a way that led me to believe that it is, so that was the assumption I was riding on when editing the content of the project spec. The demo last night seemed to indicate that creating the "checker" is the only goal of the project.

Need clarification here ASAP

Associated Reading - Lesson 1.02

Under Operators and Operands in Associated Reading - Lesson 1.02,

"20+32 hour-1 hour60+minute minute/60 5**2 (5+9)(15-7) In some other languages, ^ is used for exponentiation, but in Python it is a bitwise operator called XOR."

Exponentiation should be the ** operator. Also the next sentence starts with "I will...". I don't think you want to use the personal pronoun I in this context.

General Comment - Software Engineering

I would like to see more emphasis on software design and problem solving. As has been discussed on TEALS piazza, most people taking computer science will not become programmers.

But the problem solving skills would always be useful. I have students tell me "I don't where to begin".

Addressing this issue with some paradigm such as abstraction and top down design would be of great benefit. Of course you still need the tool box of code to implement the design.

Examples such as the Fibonacci numbers and building triangles using the print command would be enlightening.

Lesson 3.4: Naming Conventions and Globals

Is there a section on naming conventions, especially as they apply to "industry standards" for ease of reading and getting used to coding in a "production" environment?

Also there should be a discussion of globals and maybe the convention of starting globals with "g_".

Conventions for naming Constants, variable names (use of "_"), methods/functions, etc.

"Associated Reading" parts are greyed-out/inaccessible

They were working yesterday -- and the first one, 3.2.2. was useful for class this morning -- but in both Firefox and Chrome the table of contents entries for all the associated reading are grayed out and inaccessible.

Do Now 2.07 loops indefienitely

The

while True:
print ('a')

loops indefinitely. It is hard to kill and ties up resources. Perhaps instructions on how to kill it would be appropriate.

Need example code for Lab 3.03 - War

Also need "shuffled deck" list to provide students.
Instructions need clarification - are they only thinking about comparing value 2 thru Ace? Is suit ignored in their "shuffled deck"?

Worksheet 1.02 improvements

Add more detailed instructions.
Change "explanation" column to "Did it do something unexpected?"
Add a letter name to each row of each table for easy reference

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.