Computer Science for Everyone

CSI11 D01 (52921)

Monday, Wednesday 10:00 am - 11:50 am, room ME G16

 
 
Date Details HW assignment

Week 16

Final Exam: Wednesday, May 22nd, 10am - 11:50am, at ME G16

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.

The additional review/practice meeting will be on Monday, May 20th, 10am - 12pm at CP 320.
The additional practice questions: CSI11-FinalExamPreparation_AdditionalQuestions.pdf
 
05/15 Preparation for Final Exam

Here is the study guide: CSI11_final_exam_studyGuide.pdf
 
review Midterm Exam study guide as well: CSI11_midterm_exam_studyGuide.pdf
05/13 topics to be covered:
Chapter 16

16.1 Introduction to plotting and visualizing data
16.2 Styling plots
16.3 Text and annotations
16.4 Numpy

Lecture slides: CSI11-Day25_lectureSlides.pdf

In-class activity: CSI11Day25In-ClassPractice.pdf
You can send the last problem from the in-class activity to me by this Friday night.

Programs: 01-oceanTemperatures.py, 02-oceanTemperaturesPirates.py, 03-alcRelatedFatalities.py, 04-alcRelatedFatalities_v2.py, 05-numpyTwoArrays.py, 06-numpyOperationsOnArrays.py
Data files: ocean_temp.csv, dd_stats.csv
 
HW 25 (due date: Monday, May 20th, 11:59pm): suggested HW assignment, not for grade

ZyBooks, HW24:
Chapter 16: Sections 16.1 - 16.4 / all participation and challenge activities


Week 15
 

1) Here you can see all your class grades: show my grades - updated on May 5th
Use last four digits of your school ID to locate your record.
2) We had 22 homework assignments in total. 15 top HWs' grades will be averaged (~70% of HWs).
3) Here is the updated grade distribution:
HWs: 25%
In-class Activity: 25%
Midterm Exam: 25%
Final Exam: 25%
05/08 topics to be covered:
Chapter 15

15.1 Security basics
15.2 Viruses and malware
15.3 Account security
15.4 Internet scams and spam
15.5 Cryptography
15.6 Denial of service (DoS) attacks

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

Lecture slides: CSI11-Day24_lectureSlides.pdf

In-class activity: CSI11Day24InClassActivity.pdf
Program: EncryptingTheMessage.py
 
HW 24 (due date: Friday, May 17th, 11:59pm): suggested HW assignment, not for grade

ZyBooks, HW24:
Chapter 15: Sections 15.1 - 15.6 / all participation and challenge activities
05/06 topics to be covered:
Chapter 14

14.1 Reading files
14.2 Writing files

Lecture slides: CSI11-Day23_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_Day23InClassActivity.pdf
Files for in-class activity: source3.txt
HW 23 (due date: Friday, May 17th, 11:59pm): suggested HW assignment, not for grade

ZyBooks, HW23:
Chapter 14: Sections 14.1 - 14.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_hw23.py

Week 14

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
05/01 topics to be covered:
Chapters 12 and 13

Lecture slides: CSI11-Day22_lectureSlides.pdf

In-class activity: CSI11Day22_InClassActivity.pdf

Programs: roundOffValues.py, sortedNamesList.py, SquaresOfNumbersInList.py
 
HW 22 (due date: Friday, May 10th, 11:59pm):

1) ZyBooks, HW22:
Chapter 12: Sections 12.1 - 12.5 / all participation and challenge activities
Chapter 13: Sections 13.1 - 13.11 / all participation and challenge activities

2) Programming assignment:CSI11Day22_HWassignment.pdf
 
04/29 topics to be covered:
Chapter 11: Sections 11.10 - 11.16

Lecture slides: CSI11-Day21_lectureSlides.pdf

In-class activity: CSI11Day21_InClassActivity.pdf
Program for in-class activity: CSI11Day21in_classActivity3.py

Programs: program1.py, program2.py, program3.py


 
HW 21 (due date: Monday, May 6th, 11:59pm):

1) ZyBooks, HW21:
Chapter 11: Sections 11.10 - 11.16 / all participation and challenge activities

2) Programming assignment:

recall the Statistics project from HW13. Let's use functions there!
Here is the description: CSI11Day21HW21assignment.pdf

Week 13
Spring Recess


04/19 - 04/28

picture: https://www.pinclipart.com/pindetail/hxwoRJ_cherry-blossom-clipart-at-getdrawings-transparent-cherry-blossom/
 

Week 12

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
04/17 topics to be covered:
Chapter 11: Sections 11.1 - 11.9

Lecture slides: CSI11-Day20_lectureSlides.pdf

In-class activity: CSI11Day20InClassActivity.pdf

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


 
HW 20 (due date: Wednesday, May 1st, 11:59pm):

1) ZyBooks, HW20:
Chapter 11: Sections 11.1 - 11.9 / all participation and challenge activities

2) Let's continue to work on the program from HW19 assignment:

1) Allow the user to enter the message to be encrypted: function getInput should take care of it (and it should return the message the user typed in);

2) Define function buildEncryption that will build the encryption association (dictionary) and return it;

3) Define a function encrypt that will take two parameters: the message to be encrypted and the encryption association;

4) Finally, define a function main, that will: ask the user to enter the message to be encrypted (calls function getInput), then builds the encryption association (calls function buildEncryption), encrypts the message (calls function encrypt) and displays it

Feel free to grab this sketch: randomEncryptionFunctions.py
04/15 Encryption and Decryption


Lecture slides: CSI11-Day19_lectureSlides.pdf

In-class activity: CSI11Day19InClassActivity.pdf

Code.org activity link: https://studio.code.org/s/hoc-encryption/stage/1/puzzle/1
 
HW 19 (due date: Wednesday, May 1st, 11:59pm):

Write a program for random substitution cipher.
Here are few key moments:
1) You need to store the information about the association of letters of the alphabet in the original (unencrypted) message, to the letters for the encryption (store this in a dictionary named ecr)
2) Your program needs to only encrypt the message, it doesn't need to get the message to encrypt from a user.
3) When the association of letters is ready, go ahead and iterate over all symbols in the message to encrypt and encrypt all the letters, ignore all other symbols (keep them as they are).
4) Our program will not understand the upper case letters, so don't forget to convert all those upper case letters to lower case

Feel free to grab this sketch: randomEncryption.py

Week 11

Final Exam: Wednesday, May 22nd, 10am - 11:50am, at ME G16

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
04/10 topics to be covered:
Chapter 10: Sections 10.1 - 10.7

Lecture slides: CSI11-Day18_lectureSlides.pdf

The YouTube video about the Enigma Machine and the Imitation Game:
How does the ENIGMA MACHINE work in the IMITATION GAME

 
HW 18 (due date: Friday, April 19th, 11:59pm):

ZyBooks, HW18:
Chapter 10: Sections 10.1 - 10.7 / all participation and challenge activities
04/08 More practice with loops:
Turtle library with loops and decision structures


Lecture slides: CSI11-Day17_lectureSlides.pdf

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

Programs for in-class Activity: TurtleWithManyRepetitions.py, Turtle_pyramidInTheWorks.py

In-class activity: CSI11Day17InClassActivity.pdf

Turtle Library Quick Reference Guide: QuickReferenceGuideForTurtleLibrary.pdf
HW 17 (due date: Monday, April 15th, 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 and I already started writing the program. Finish drawing the frame.
3) Let's create a spiral pattern. You have several options:
      (1) start at the center of the screen (the origin)
      (2) start at one of the corners (say lower left) of the screen.
In both options, use while loop.

Idea: start with some length, say 300 pixels, length = 300
Run a while loop. At each iteration of the while loop: draw the line of length, then decrease the length, and turn 90 degrees.

Here is a possible picture of the spiral (feel free to click on it to get a larger size picture):

Week 10

 Final Exam: Wednesday, May 22nd, 10am - 11:50am, at ME G16
 
04/03 topics to be covered:
Chapter 9:
Section 9.7 While vs. for loops
Section 9.8 Nested loops
Section 9.9 Developing programs incrementally
Section 9.10 Break and continue
Section 9.11 Loop else
Section 9.12 Getting both index and value when looping: enumerate()
Section 9.13 Additional practice: Dice statistics

Lecture slides: CSI11-Day16_lectureSlides.pdf

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

In-class activity: CSI11_Day16_InClassActivity.pdf
HW 16 (due date:Thursday, April 11th, 11:59pm):

1) ZyBooks, HW16:
Chapter 9: Sections 9.8 - 9.12 / all participation and challenge activities,

2) Programming Assignment: Simulations from the in-class activity handout
04/01 topics to be covered:
Chapter 9:
Section 9.5 For loops
Section 9.6 Counting using the range() function
Section 9.7 While vs. for loops

Lecture slides: CSI11-Day15_lectureSlides.pdf

Programs: AverageOfNumbers.py, phonesPrice.py

In-class activity: CSI11_Day15_InClassActivity.pdf
HW 15 (due date: Monday, April 8th, 11:59pm):

1) ZyBooks, HW15:
Chapter 9: Sections 9.5 - 9.7 / all participation and challenge activities,

2) Programming Assignment: (to be sent to my e-mail: natna20@gmail.com, by the due date)
(1) Write the program that given the list of decimal numbers data, finds:
   - the average of all negative numbers in the list data,
   - the average of all positive numbers in the list data, and
   - the average of all numbers in the list data.
Your program should display all three results clearly.
You may use any of the lists of values for data, to test your program:
data =[1,1,2,2,3,3], or data = [-1,-2,-3,-4], or data = [1,-1,2,-3,5,-4,7], or data = [1,0,-2,0,3,7,-9,10,0].
(2) Write a program that finds 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 or for loop to use?). 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 of all positive numbers entered by the user.

Extra practice (not for grade, not for submission):
consider the following program TurtleWithForLoops.py(it draws a star). Follow the comments to change it.

Week 9
 
03/27 topics to be covered: Chapter 9, Sections 9.1 - 9.4

Lecture slides: CSI11-Day14_lectureSlides.pdf

Programs: TurtleWithWhileLoops.py, TurtleWithWhileLoops2.py, TurtleWithWhileLoops3.py, TurtleWithWhileLoops4.py, CSI11Day14examples1.py, CSI11Day14examples2.py, CSI11Day14examples3.py, CSI11Day14examples4.py

Handout: CSI11_Day14_InClassActivity.pdf

HW 14 (due date: Friday, April 5th, 11:59pm):

1) ZyBooks, HW14:
Chapter 9: sections 9.1 - 9.4/ all participation activities, and challenge activities

2) Programming assignment: use the Turtle library to draw a zigzag line using a while loop.
Feel free to use this sketch: WhileLoopsWithTurtleHWAssignment.py
Here you can see some pictures of zig-zags: zigzag1.jpg, zigzag2.jpg
03/25 In-class projects: CSI11Day13TwoProjects.pdf

files:
statisticalDataAnalysis.py, input1.txt, input2.txt, input3.txt,
states.py, statesProject.py
HW 13 (due date: Monday, April 1st, 11:59pm):

finish the projects and send them to me (natna20@gmail.com) as attachments

Week 8

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
03/20 topics to be covered:
Chapter 8: Sections 8.5 - 8.10

Lecture slides: CSI11-Day12_lectureSlides.pdf

In-class work: CSI11_Day12_InClassActivity.pdf
HW 12 (due date: Wednesday, March 27th, 11:59pm):

1) ZyBooks, HW12:
Chapter 8: sections 8.5 - 8.9/ all participation activities, and challenge activities
Note that sections 8.7-8.9 are self-study

2) On Paper : CSI11HW12OnPaperAssignment.pdf, CSI11HW12OnPaperAssignment.docx,
submit electronically or in class on March 27th.

3) Programming assignment: CSI11HW12ProgrammingAssignment.pdf
03/18 Midterm Exam  

Week 7

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.

The Midterm Exam will be on Monday, March 18th
The Review will be on Wednesday, March 13th

 
03/13 Preparation for the Midterm Exam

The Midterm Exam Study Guide: CSI11_midterm_exam_studyGuide.pdf

More information about the Midterm Exam can be found on Midterm and Final exams page
 
03/11 topics to be covered:
Chapter 8: Sections 8.1-8.4

Lecture slides: CSI11-Day11_lectureSlides.pdf

In-class Activity: CSI11Day11_inClassActivity.pdf, conditionalsCode.py

HW 11 (due date: Wednesday, March 20th, 11:59pm):

ZyBooks, HW11:
Chapter 8: sections 8.1 -8.4/ all participation and challenge activities

Week 6

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.

The Midterm Exam will be on Monday, March 18th
The Review will be on Wednesday, March 13th

 
03/06
topics to be covered:
Chapter 7: Sections 7.1 - 7.10

Lecture slides: CSI11-Day10_lectureSlides_new.pdf

In-class Activity: CSI11Day10InClassActivity.pdf

web-page: myAwesomeWebPage.html
 
HW 10 (due date: Monday, March 11th, 11:59pm):

ZyBooks, HW10:
Chapter 7: sections 7.1 -7.10/ all participation and challenge activities
03/04 All classes are cancelled due to inclement weather

Week 5

Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
02/27 topics to be covered:
Chapter 6: Sections 6.4 - 6.10

Lecture slides: CSI11-Day09_lectureSlides.pdf

In-class Activity: CSI11Day8In-classActivity.pdf, CSI11Day9In-classActivity.pdf

Programs: Dict1.py, listAndDict.py

Answers: listAndDict_answer.py
HW 9 (due date: Saturday, March 9th, 11:59pm):

1) ZyBooks, HW9:
Chapter 6: sections 6.6 - 6.10/ all participation and challenge activities,
Note that sections 6.6 and 6.10 are optional (for extra practice)

2) programming assignment:
(a) Python string assignment: PythonStringBasicsHWassignment_NN.pdf
(b) Python list assignment: PythonListBasicsHWassignment_NN.pdf
(c) Python dictionary assignment: PythonDictionariesHWassignment_NN.pdf
02/25 topics to be covered:
Chapter 6: Section 6.1 - 6.3

Lecture slides: CSI11-Day08_lectureSlides.pdf

In-class Activity: CSI11Day8In-classActivity.pdf

Programs: Dict1.py
HW 8 (due date: Monday, March 5th, 11:59pm):

ZyBooks, HW8:
Chapter 6: Sections 6.1 - 6.5 / all participation and challenge activities

Week 4

Note that on Monday, February 18th the college is closed - President's day


Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
02/20 topics to be covered:
Section 1.5 Representing information as bits

Lecture slides: CSI11-Day07_lectureSlides.pdf

In-class Activity 1: CSI11Day7In-classActivity.pdf

In-class activity 2: Poison Wine Bottle
youTube link: https://www.youtube.com/watch?v=N3qmN6pYhi0&feature=youtu.be
HW 7 (due date: Wednesday, February 27th, in class):

1) Convert
(a) 92 to its binary representation (you must show all your work!)
(b) (10101101)2 to the decimal form (you must show all your work!)
(c) 87643 to its hexadecimal representation (you must show all your work!)
(d) (34D2F)16 to the decimal form (you must show all your work!)

2) Watch the poison wine bootle again (try to understand both the Poison Wine Challenge and the solution), then answer the following questions:
  • (a) 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?
  • (b) Rats 0, 1, and 5 die. Which bottle was bad? Explain.
  • (c) There are 64 bottles. How many rats do you need? Explain.
  • (d) There are 8 rats. How many bottles can you test? Explain.

Submit your homework on paper.
 

Week 3

Note that on Tuesday, February 12th the college is closed - Lincoln's birthday
on Monday, February 18th the college is closed - President's day


Here you can see all your class grades: show my grades
Use last four digits of your school ID to locate your record.
 
02/13 topics to be covered:
Turtle

Lecture slides: CSI11-Day06_lectureSlides.pdf

A quick reference guide for the Turtle library: QuickReferenceGuideForTurtleLibrary.pdf

Programs: Turtle_fun1.py, Turtle_fun2.py, Turtle_fun3.py, Turtle_fun_4shapes.py, Turtle_fun_5fence.py, Turtle_backgroundPlay.py
backgound pictures of the last program: background1.gif, background2.gif
Note that the background pictures MUST be in the same folder where the program is!

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, February 20th, 11:59pm):


programming assignment: use Turtle library and Python Idle: write a program that draws a house or a flower. Send the program to me via e-mail as attachment (natna20@gmail.com). Group work and nice pictures are very welcome!

02/11 topics to be covered:
Chapter 5: Sections 5.6 - 5.10

Lecture slides: CSI11-Day05_lectureSlides.pdf

In-class Activity: CSI11Day5InClassActivity.pdf

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

1) ZyBooks, HW05:
Chapter 5: sections 5.6-5.10 / all participation and challenge activities,

2) programming assignment: write a program to find solutions of a quadratic equation ax2+bx+c = 0. The user should be prompt for three values: a, b, and c. Then the formulae

x1 = -b - √ b2-4ac   ,   and
                    2a

x2 = -b + √ b2-4ac   .
                    2a

should be used to find the two solutions.

To test your program use the following information:
1) quadratic equation x2 + 4x + 4 = 0 has one solution: x = -2
(note that the constants a = 1, b = 4, c = 4)
therefore your program should produce both x1 = -2 and x2 = -2

2) quadratic equation x2 - 4x + 4 = 0 has one solution: x = 2
(note that the constants a = 1, b = -4, c = 4)
therefore your program should produce both x1 = 2 and x2 = 2

3) quadratic equation x2 - 2x - 3 = 0 has solutions: x = -1, 3
(note that the constants a = 1, b = 4, c = 4)
therefore your program should produce both x1 = -1 and x2 = 3

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

In-class Activity: CSI11Day04InClassActivity.pdf

Lecture slides: CSI11-Day04_lectureSlides.pdf
HW 4 (due date: Wednesday,February 13th):

1) ZyBooks, HW04:
Chapter 5: Sections 5.1 - 5.5/ all participation, challenge activities;
2) programming assignment: to be sent to my e-mail natna20@gmail.com as attachments
(a) Lemonade: the description can be grabbed here: lemonade.pdf, the file to work on: lemonade.py
(b) Deli shop: the description can be grabbed here: deliShop.pdf, the file to work on: deliShop.py
02/04 topics to be covered:
Chapter 3: Introduction to Python (sections 3.8 - 3.10)
Chapter 4: Operating Systems

In-class Activity: CSI11Day03InClassActivity.pdf

Lecture slides: CSI11-Day03_lectureSlides.pdf

Programs: myThirdProgram.py, myFourthProgram.py
HW 3 (due date: Monday, February 11th, 11:59pm):

1) ZyBooks, HW 2:
Chapter 3: sections 3.7-3.10
Chapter 4: all sections

2) programming assignment: to be sent to my e-mail natna20@gmail.com as attachments
(a) Write a program that will display a tree, save is with the name myTree.py
(b) Write a program that asks the user two enter two integer numbers, and then displays their sum, product, and difference. Here is the draft of the program, use it: twoIntegers.py
 

Week 1
 
01/30 topics to be covered:
Chapter 2: Hardware and Software (sections 2.6 - 2.8)
Chapter 3: Introduction to Python 3 (sections 3.1 - 3.7)

In-class Activity: CSI11-Day02-InClassPractice.pdf

Lecture slides: CSI11-Day02_lectureSlides.pdf


Programs: helloWorld.py, mySecondProgram.py
HW 2 (due date: Sunday, February 10th, 11:50pm):

ZyBooks, HW 2:
Chapter 2: sections 2.6-2.8
Chapter 3: sections 3.1 - 3.7 / all participation and challenge activities
01/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: Sunday, February 10th, 11:50pm) :

ZyBooks, HW 1:
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)