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: CSI11FinalExamPreparation_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: CSI11Day25_lectureSlides.pdf Inclass activity: CSI11Day25InClassPractice.pdf You can send the last problem from the inclass activity to me by this Friday night. Programs: 01oceanTemperatures.py, 02oceanTemperaturesPirates.py, 03alcRelatedFatalities.py, 04alcRelatedFatalities_v2.py, 05numpyTwoArrays.py, 06numpyOperationsOnArrays.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 

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:


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: CSI11Day24_lectureSlides.pdf Inclass 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: CSI11Day23_lectureSlides.pdf Programs: workWithFiles1.py, workWithFiles2.py, workWithFiles3.py, workWithFiles4.py, workWithFiles5.py, workWithFiles6.py Input files: source.txt, source2.txt Inclass activities: CSI11_Day23InClassActivity.pdf Files for inclass 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 email: 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: CSI11Day22_lectureSlides.pdf Inclass 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: CSI11Day21_lectureSlides.pdf Inclass activity: CSI11Day21_InClassActivity.pdf Program for inclass 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_cherryblossomclipartatgetdrawingstransparentcherryblossom/ 

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: CSI11Day20_lectureSlides.pdf Inclass 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: CSI11Day19_lectureSlides.pdf Inclass activity: CSI11Day19InClassActivity.pdf Code.org activity link: https://studio.code.org/s/hocencryption/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: CSI11Day18_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: CSI11Day17_lectureSlides.pdf Programs: TurtleWithLoops1.py, TurtleWithLoops2.py, TurtleWithLoops3.py, TurtleWithStamps.py Programs for inclass Activity: TurtleWithManyRepetitions.py, Turtle_pyramidInTheWorks.py Inclass 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 email. Here are the instructions: Do a right click anywhere on the page (a menu will popup), 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 email: 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: CSI11Day16_lectureSlides.pdf Programs: twoLettersDomainName.py, ExampleWithContinue.py, 5positiveIntegers.py, enumeration1.py, twoDiceRolls.py, twoDice100Rolls.py Inclass 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 inclass 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: CSI11Day15_lectureSlides.pdf Programs: AverageOfNumbers.py, phonesPrice.py Inclass 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 email: 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: CSI11Day14_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 zigzags: zigzag1.jpg, zigzag2.jpg 

03/25  Inclass 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: CSI11Day12_lectureSlides.pdf Inclass 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.78.9 are selfstudy 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.18.4 Lecture slides: CSI11Day11_lectureSlides.pdf Inclass 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: CSI11Day10_lectureSlides_new.pdf Inclass Activity: CSI11Day10InClassActivity.pdf webpage: 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: CSI11Day09_lectureSlides.pdf Inclass Activity: CSI11Day8InclassActivity.pdf, CSI11Day9InclassActivity.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: CSI11Day08_lectureSlides.pdf Inclass Activity: CSI11Day8InclassActivity.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 18^{th} 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: CSI11Day07_lectureSlides.pdf Inclass Activity 1: CSI11Day7InclassActivity.pdf Inclass 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:
Submit your homework on paper. 

Week 3 Note that on Tuesday, February 12^{th} the college is closed  Lincoln's birthday on Monday, February 18^{th} 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: CSI11Day06_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#overviewofavailableturtleandscreenmethods 
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 email 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: CSI11Day05_lectureSlides.pdf Inclass Activity: CSI11Day5InClassActivity.pdf Programs: qr.py, circleMath.py 
HW 5 (due date: Wednesday, February 20th, 11:59pm): 1) ZyBooks, HW05: Chapter 5: sections 5.65.10 / all participation and challenge activities, 2) programming assignment: write a program to find solutions of a quadratic equation ax^{2}+bx+c = 0. The user should be prompt for three values: a, b, and c. Then the formulae x1 = b  √ b^{2}4ac , and 2a x2 = b + √ b^{2}4ac . 2a should be used to find the two solutions. To test your program use the following information: 1) quadratic equation x^{2} + 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 x^{2}  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 x^{2}  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) Inclass Activity: CSI11Day04InClassActivity.pdf Lecture slides: CSI11Day04_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 email 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 Inclass Activity: CSI11Day03InClassActivity.pdf Lecture slides: CSI11Day03_lectureSlides.pdf Programs: myThirdProgram.py, myFourthProgram.py 
HW 3 (due date: Monday, February 11th, 11:59pm): 1) ZyBooks, HW 2: Chapter 3: sections 3.73.10 Chapter 4: all sections 2) programming assignment: to be sent to my email 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) Inclass Activity: CSI11Day02InClassPractice.pdf Lecture slides: CSI11Day02_lectureSlides.pdf Programs: helloWorld.py, mySecondProgram.py 
HW 2 (due date: Sunday, February 10^{th}, 11:50pm): ZyBooks, HW 2: Chapter 2: sections 2.62.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) Inclass activity: Harold the robot Lecture slides: CSI11Day01_lectureSlides.pdf videos mentioned in lecture slides: 1) video about 10 amazing robots that really exist (~10 minutes) https://youtu.be/sZ_ybTN9M 2) video about Hardware (~30 minutes): https://youtu.be/ctAVC2JwEwI program: myFirstProgram.py 
HW 1 (due date: Sunday, February 10^{th}, 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/python370/ (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) 