Computer Science for Everyone

CSI11 D01 (61330)

Tuesday, Thursday, 10:00 am - 11:50 am, room ME 320

 
 
Date Details HW assignment

Week 16
 
12/11 Preparation for Final Exam

Here is the study guide: CSI11_final_exam_studyGuide.pdf
Answers/solutions: CSI11_final_exam_studyGuide-Answers.pdf
 
review Midterm Exam study guide as well!

Week 15
 
12/06 topics to be covered:
Anki Cozmo Robots

To do at home: Download and install Anki Cozmo app from Apple AppStore (for iPhones) or Google Play (for Android phones)
Bring to class: USB charger for your phone

Programs: 01_hello_world.py, 02_drive_and_turn.py, 03_count.py, 04_drive_square.py, 05_face_follower.py, 06_roll_cube.py, 07_lookaround.py

Instructions: CSI11_AnkiCozmo.pdf
Group Project 3

due date: Thursday, December 20th, 11:59pm
send file functions.py to my e-mail: natna20@gmail.com

Description of the project: CSI11GroupProject3.pdf
Files: source1.txt, functions.py, statistics.py
12/04 topics to be covered:
Chapter 13

13.1 Reading files
13.2 Writing files

Lecture slides: CSI11-Day24_lectureSlides.pdf

Programs: workWithFiles1.py, workWithFiles2.py, workWithFiles3.py, workWithFiles4.py, workWithFiles5.py, workWithFiles6.py

Input files: source.txt, source2.txt

In-class activities: CSI11_Day24_InClassActivity.pdf
HW 24 (due date: Saturday, December 8th, 11:59pm): last HW assignment

ZyBooks, HW24:
Chapter 13: Sections 13.1 - 13.2 / all participation and challenge activities

Programming Assignment: (to be sent to my e-mail: natna20@gmail.com)
1) grab the source file inputFile.txt
2) each line in the file is formatted in the following way:
    first_name_of_the_person age_of_the_person
For example:
  Jasmine 28
  Kevin 22
  Paul 21

3) the program should read all information from the source file and create a dictionary, where the first name will serve as a key, and the age will serve as a value, and
4) should display the dictionary

Use the following sketch with guidance: CSI11_hw24.py

Week 14
 
11/29 topics to be covered:
Chapter 12:
Sections 12.1 - 12.7

Lecture slides: CSI11-Day23_lectureSlides.pdf

Programs: SquaresOfNumbersInList.py, sortedNamesList.py, roundOffValues.py

In-class activity: CSI11Day21InClassActivity.pdf
HW 23 (due date: Wednesday, December 5th, 11:59pm):

ZyBooks, HW23:
Chapter 12: Sections 12.1 - 12.7 / all participation and challenge activities

Programming assignment: question 6 from in-class work
11/27 topics to be covered:
Encryption and Decryption

Here is the YouTube video we watched:
Cryptography: Crash Course Computer Science #33

Lecture slides: CSI11-Day22_lectureSlides.pdf

Programs: EncryptingTheMessage.py

In-class activities: CSI11Day22InClassActivity.pdf

In-class activity 3: https://studio.code.org/s/hoc-encryption/stage/1/puzzle/1
HW 22 (due date: Saturday, December 1st, 11:59pm):

Finish the in-class activity 3: https://studio.code.org/s/hoc-encryption/stage/1/puzzle/1
Take the pictures of the decrypted text and of the letters assignment and send them my way along with the information about which text (1-5) you decrypted.

Week 13
 
11/22-23 The college is closed.


11/20 topics to be covered:
Chapter 11:
Section 11.1 Loop else
Section 11.2 Getting both index and value when looping: enumerate()
Section 11.3
Section 11.4
Section 11.5
Section 11.6
We started on cryptography.
Here is the YouTube video we watched:
How does the ENIGMA MACHINE work in the IMITATION GAME

Lecture slides: CSI11-Day21_lectureSlides.pdf

Programs: FunctionsExample1.py, FunctionsExample2.py, FunctionsExample3.py

In-class activity: CSI11Day21InClassActivity.pdf
HW 21 (due date: Tuesday, November 27th, 11:59pm):

ZyBooks, HW21:
Chapter 11: Sections 11.1 - 11.6 / all participation and challenge activities

Programming Assignment: (to be sent to my e-mail: natna20@gmail.com)
Define a function maximum that takes two numbers as parameters and returns the greatest of them.
For example, the function call maximum(12.5,9.5) returns 12.5.

Week 12
 
11/15 topics to be covered:
Chapter 10:
Section 10.11 Loop else
Section 10.12 Getting both index and value when looping: enumerate()
Section 10.13 Additional practice: Dice statistics

Lecture slides: CSI11-Day20_lectureSlides.pdf

Programs: 5positiveIntegers.py, enumeration1.py, twoDiceRolls.py, twoDice100Rolls.py

In-class activity: CSI11Day20InClassActivity.pdf
HW 20 (due date: Wednesday, November 21st, 11:59pm):

ZyBooks, HW18:
Chapter 10: Sections 10.11 - 10.12 / all participation and challenge activities,

11/13 topics to be covered:
Turtle library with loops and decision structures

Lecture slides: CSI11-Day19_lectureSlides.pdf

Programs: TurtleWithLoops1.py, TurtleWithLoops2.py, TurtleWithLoops3.py, TurtleWithStamps.py, TurtleWithManyRepetitions.py, Turtle_pyramidInTheWorks.py

In-class activity: CSI11Day19InClassActivity.pdf
HW 19 (due date: Saturday, November 17th, 11:59pm):

How To Think Like a Computer Scientist: http://interactivepython.org/runestone/static/thinkcspy/index.html
Sections 4.3, 4.6, 4.8
Since this textbook doesn't keep information about your work but still has some interactice practices, when you finished working on each chapter, save it as pdf file and send it to my e-mail.
Here are the instructions: Do a right click anywhere on the page (a menu will pop-up), choose print... , then change your printer to "save as pdf", click "save". Save the three files (for three sections) as different pdfs. Send them to me as attachment along with the programming assignment.

Programming Assignment : (to be sent to my e-mail: natna20@gmail.com)
1) Turtle race: http://interactivepython.org/runestone/static/thinkcspy/Labs/lab03_01.html
2) Grab the program Turtle_frame.py . I want to draw a frame in the graphics window. Finish drawing the frame.

Week 11
 
11/08 topics to be covered:
Chapter 10:
Section 10.7 While vs. for loops
Section 10.8 Nested loops
Section 10.9 Developing programs incrementally
Section 10.10 Break and continue

Lecture slides: CSI11-Day18_lectureSlides.pdf

Programs: twoLettersDomainName.py, ExampleWithContinue.py

In-class activity: CSI11_Day18_InClassActivity.pdf
HW 18 (due date: Saturday, November 17th, 11:59pm):

ZyBooks, HW18:
Chapter 10: Sections 10.7 - 10.10 / all participation and challenge activities,

11/06 topics to be covered:
Chapter 10:
Section 10.5 For loops
Section 10.6 Counting using the range() function
Section 10.7 While vs. for loops

Lecture slides: CSI11-Day17_lectureSlides.pdf

In-class activity: CSI11_Day17_InClassActivity.pdf
HW 17 (due date: Wednesday, November 14th, 11:59pm):

ZyBooks, HW17:
Chapter 10: Sections 10.5 - 10.6 / all participation and challenge activities,
Programming Assignment: (to be sent to my e-mail: natna20@gmail.com, by the due date)
Write the program that finds the average of all negative numbers in the list data, and the average of all positive numbers in the list data. Your program should display both results. You may use any list of values for data, to test your program. For example, test it on the list [1,1,2,2,3,3], on the list [-1,-2,-3,-4], on the list [1,-1,2,-3,5,-4,7], and on the list [1,0,-2,0,3,7,-9,10,0].

Week 10
 
11/01 topics to be covered:
Chapter 10:
Section 10.1 Loops
Section 10.2 While loops
Section 10.3 More while examples
Section 10.4 Counting

Lecture slides: CSI11-Day16_lectureSlides.pdf

Programs: CSI11Day16examples1.py CSI11Day16examples2.py CSI11Day16examples3.py CSI11Day16examples4.py,

In-class activity: CSI11_Day16_InClassActivity.pdf
HW 16 (due date: Saturday, November 10th, 11:59pm):

ZyBooks, HW16:
Chapter 10: Sections 10.1 - 10.4 / all participation and challenge activities,
Programming Assignment: (to be sent to my e-mail: natna20@gmail.com, by the due date)
Write a program that will find the sum of the positive numbers entered by the user. The program should notify the user what does it do, then the user is prompt for positive integers (while loop). If the user enters a negative number, this is the signal for the while loop to stop. Don't forget to add all those positive numbers the user entered! At the end, the program should display the sum.
10/30 topics to be covered:
Tynker: CSI 11 class : Programming 100 (2 lessons)

Lecture slides: CSI11-Day15_lectureSlides.pdf

Handout: Tynker.pdf

HW 15 (due date: Saturday, November 3rd, 11:59pm):

Tynker: CSI 11
Complete two lessons: Candy Quest and Dragon Dash

Extra practice: Spooky Brew in Tynker: CSI 11 class

Week 9
 
10/25 topics to be covered:
Chapter 9:
Section 9.7 Order of evaluation
Section 9.8 Code blocks and indentation
Section 9.9 Conditional expressions
Section 9.10 Additional practice: Tweet decoder

Lecture slides: CSI11-Day14_lectureSlides.pdf

In-class activity: CSI11-Day14_lectureInClassPractice.pdf
submit the paper by the end of the class, send the code to my e-mail by Saturday night, October 27th (11:59pm)
HW 14 (due date: Tuesday, October 30th, 11:59pm):

ZyBooks, HW14:
Chapter 9: Sections 9.7 - 9.9 / all participation and challenge activities,

Group Project 2 (due date: Wednesday, November 7th):
CSI11GroupProject2.pdf
two-people project: the project should have two files for the final submission: states.py and StatesProject.py

one-person project (Project Leader role): you are to submit one file: StatesProject.py
However, note that your program should import the file states.py and use the dictionary statesInfo from it. You can take care of the entire input/output (including request for the states two letters) or do as instructed in the handout - it is up to you!

You can use this file that already has information about the two states: states.py
10/23 topics to be covered:
Chapter 9:
Section 9.4 More if-else
Section 9.5 Boolean operators and expressions
Section 9.6 Membership and identity operators

Lecture slides: CSI11-Day13_lectureSlides.pdf

In-class work: CSI11_Day13_InClassActivity.pdf
submit by the end of the class
HW 13 (due date: Saturday, October 27th, 11:59pm):

ZyBooks, HW13:
Chapter 9: sections 9.4 - 9.6/ all participation activities, and challenge activities
Lab: Sections 9. 11 and 9.12 Automobile service

Extra practice: to be posted

Week 8


Few reminders:
  • There are no late submissions. All types of work have due dates and they are strict.
  • If you missed a class it is your responsibility to get the materials covered and the homework/group assignment. Go over the materials, get ready for the next class, submit the homework and group work on time. The in-class activities are only done in class. They are not taken home. You will be given an opportunity to do it in the next class only.
  • On Tuesday we will have review.
    Make sure you go over all questions on the first page and you know the answers to them. Look through the rest of the questions - do those you can, and leave for Tuesday those you cannot do. We will go over them.

    Remember: the questions in part 2 are not to be typed in Python Interpreter. You must understand the code without typing it and running it. So during the preparation you can and of course should type them in to see if you got them right, but beware: you will not have time to do it on the midterm exam, otherwise you will run out of time.

    The similar situation is with the questions from parts 1 and 4: there won't be enough time to search for the answers during the midterm exam. You should learn it before you come to take the midterm exam.
 
10/18 Midterm Exam

Midterm Exam is based on Chapters 1-9. It is open book, open notes, computer limited use is allowed (only ZyBook and Python Idle are allowed).

Phone use is not allowed. No group work. No talking to each other.
 
 
10/16 preparation for the Midterm Exam

More information about the Midterm Exam can be found on the Midterm and Final exams page. Study guide is posted there!
 
 

Week 7
 
10/11 topics to be covered:
Section 8.4 Logical equivalence
Chapter 9:
Section 9.1 If-else branches (general)
Section 9.2 If-else statement
Section 9.3 Equality and relational operators

Lecture slides: CSI11-Day12_lectureSlides.pdf

In-class activity: CSI11-Day12_lectureInClassPractice.pdf
HW 12 (due date: Tuesday, October 16th, 11:59pm):

ZyBooks, HW12:
Chapter 8: Section 8.4 Logical equivalence / all participation and challenge activities
Chapter 9: Sections 9.1 - 9.3 / all participation and challenge activities,
Lab: to be posted
10/09 topics to be covered:
Chapter 8:
Section 8.1 Propositions and logical operations
Section 8.2 Evaluating compound propositions
Section 8.3 Conditional statements
Section 8.4 Logical equivalence - will cover it in the next class

Lecture slides: CSI11-Day11_lectureSlides.pdf

In-class work: submit by the end of the class
HW 11 (due date: Saturday, October 13th, 11:59pm):

ZyBooks, HW11:
Chapter 8: sections 8.1 - 8.3/ all participation activities, challenge activities, and additional exercises
Lab: Section 7.12 Dictionary work

Extra practice:
look through the additional exercies in sections 8.1-8.4

Week 6
 
10/04 topics to be covered:
Chapter 7:
Section 7.7 String formatting
Section 7.9 Additional practice: Health data

Note that we are skipping section 7.8 because we already did it.

Lecture slides: CSI11-Day10_lectureSlides.pdf

Poison Wine Bottle questions answers: WinePoisonBottles_Questions-Answers.pdf

In-class activity / group project: flower garden
the program must be sent to my e-mail (natna20@gmail.com) by Thursday, October 11th, 11:59pm
HW 10 (due date: Wednesday, October 10th, 11:59pm):

ZyBooks, HW10:
Chapter 7: Sections 7.7, 7.9 / all participation and challenge activities,
Group project: must be sent to my e-mail (natna20@gmail.com) by Thursday, October 11th, 11:59pm
10/02 topics to be covered:
Chapter 7:
Section 7.3 Dictionary basics
Section 7.4 Common data types summary
Section 7.5 Additional practice: Grade calculation
Section 7.6 Type conversions

Lecture slides: CSI11-Day09_lectureSlides.pdf

In-class work solutions: Dict1.py

Starting from the next meeting you will be asked to send some of your classwork to my e-mail at the end of the class. Send them please to natna20@gmail.com. Classwork will comprise 10% of the final grade.
HW 9 (due date: Saturday, October 6th, 11:59pm):

ZyBooks, HW09:
Chapter 7: sections 7.3 - 7.6/ all participation and challenge activities,
Lab: section 7.11

Week 5
 
09/27 topics to be covered:
Chapter 7: Section 7.1 - 7.2

Lecture slides: CSI11-Day08_lectureSlides.pdf


In-class activity: Poison Wine Bottle
youTube link: https://www.youtube.com/watch?v=N3qmN6pYhi0&feature=youtu.be

Programs: stringsProg1.py, stringsProg2.py, stringsProg3.py
HW 8 (due date: Wednesday, October 3rd, 11:59pm):

ZyBooks, HW08:
Chapter 7: Sections 7.1 - 7.2 / all participation and challenge activities,
Lab: Section 7.10

due next class meeting: watch the poison wine bootle again (try to understand both the Poison Wine Challenge and the solution), then answer the following questions:
  • Instead of 1,000 bottles, there are 1,024 of them.
    How do you number the bottles, 1 through 1,024 or 0 through 1,023, and why?
  • Rats 0, 1, and 5 die. Which bottle was bad? Explain.
  • There are 64 bottles. How many rats do you need? Explain.
  • There are 8 rats. How many bottles can you test? Explain.
09/25 topics to be covered:
Chapter 6:
Section 6.1 Representing information as bits
Section 6.2 Number representation (up to The number of digits required to represent a number, not including)

Lecture slides: CSI11-Day07_lectureSlides.pdf
HW 7 (due date: Saturday, September 29th, 11:59pm):

ZyBooks, HW07:
Chapter 6: all sections / all participation and challenge activities (except participation activity 6.2.6), look through all additional exercises and their solutions;

Week 4
 
09/13 topics to be covered:
Chapter 5: Section 5.10
Turtle

Lecture slides: CSI11-Day06_lectureSlides.pdf

Programs: Turtle_fun1.py, Turtle_fun2.py, Turtle_fun3.py, Turtle_fun_4shapes.py, Turtle_fun_5fence.py

Other recource: Turtle library methods https://docs.python.org/3/library/turtle.html#overview-of-available-turtle-and-screen-methods

HW 6 (due date: Wednesday, September 26th, 11:59pm):

ZyBooks, HW06:
Chapter 5: Section 5.10 / all participation and challenge activities,
Lab (due Thursday, September 27th): use Turtle library and Python Idle: write a program that draws a house or a flower. Send it to me via e-mail (as attachment) - group work and nice pictures are very welcome!

09/18 No classes scheduled on Tuesday-Wednesday, 09/18-09/19  

Week 3
 
09/13 topics to be covered:
Chapter 5: Sections 5.6 - 5.9

Lecture slides: CSI11-Day05_lectureSlides.pdf

Programs: qr.py, circleMath.py
HW 5 (due date: Wednesday, September 19th, 11:59pm):

ZyBooks, HW05:
Chapter 5: sections 5.6-5.9 / all participation and challenge activities,
Lab: 5.13

09/13 The college is closed. Rosh Hashanah.  

Week 2:

Monday, September 3rd the college is closed. Labor Day!

 
09/06 topics to be covered:
Chapter 5: Variables and Expressions (Sections 5.1 - 5.5)

Lecture slides: CSI11-Day04_lectureSlides.pdf
HW 4 (due date: Wednesday, September 12th): - the due date is extended to 09/16

ZyBooks, HW04:
Chapter 5: Sections 5.1 - 5.5/ all participation, challenge activities;
labs: See Section 5.11 and 5.12
09/04 topics to be covered:
Chapter 4: Basic Input and Output (all sections)

Lecture slides: CSI11-Day03_lectureSlides.pdf

Programs: helloWorld.py, mySecondProgram.py, myThirdProgram.py, myFourthProgram.py
HW 3 (due date: Sunday, September 9th): - the due date is extended to 09/16

ZyBooks, HW03: Chapter 4: all sections / all participation, challenge activities and labs

Week 1
 
08/30 topics to be covered:
Chapter 2: Hardware and Software (sections 2.6 - 2.8)
Chapter 3: Operating Systems (sections 3.1 - 3.2)

In-class Activity: The Orange Game

Lecture slides: CSI11-Day02_lectureSlides.pdf
HW 2 (due date: Wednesday, September 5th, 11:59pm):

ZyBooks, HW02: Chapter 2: sections 2.6-2.8 and Chapter 3: sections 3.1 - 3.2 / all participation and challenge activities

Optional (not for grade):
Chapter 3: Sections 3.3-3.5 in ZyBooks
08/28 topics to be covered:
Chapter 1: History and Basics (all sections)
Chapter 2: Hardware and Software (sections 2.1 - 2.5)

In-class activity: Harold the robot

Lecture slides: CSI11-Day01_lectureSlides.pdf

videos mentioned in lecture slides:
1) video about 10 amazing robots that really exist (~10 minutes) https://youtu.be/sZ_-yb-TN9M
2) video about Hardware (~30 minutes): https://youtu.be/ctAVC2JwEwI
program: myFirstProgram.py

HW 1 (due date: Monday, September 3rd, 11:59pm) :

ZyBooks, HW01: Chapter 1: all sections and Chapter 2: sections 2.1 - 2.5 / all participation and challenge activities

Install Python 3.7:
1) Download the distribution of the Python from here (latest release 3.7): https://www.python.org/downloads/release/python-370/ (scroll down)
This distribution includes compiler, standard libraries and a simple IDE called IDLE.

2) Install Python.
Check "add Python to the PATH" during the installation.

3) After installation you can run IDLE by clicking:
  Start -> All Programs -> Python 3.7 -> IDLE (Python GUI)