SCMP 138.0X Introduction to Computer Science S20

James Skon, Hayes 310, 740-427-5369

Department of Mathematics and Statistics
Spring 2020

Information on shift to online

This course will transition to a complete online format starting March 23, information about the change will be posted here.The class will meet as scheduled, but online, using Google Meet. There will be a durable Google Meet links for the class, as well as sub-groups POGIL groupsOnline Office hours:These are my scheduled office hours. I am available at other times by appointment, just email with a request. You may join the meet and listen as others asking questions. If you wish to speak to me privately please just ask, and I will create a private conference link.Monday-Thursday 1:00-2:30 pm. Google Meet Link. Phone in: ‪+1 631-619-8958‬ PIN: ‪927 696 037‬#You may contact me via google hangout as skonjp@kenyon.edu ( https://hangouts.google.com) anytime between 8:00am-6:00pm EST. If I don’t answer I’m unavailable, try again later.Emails will be answered as quickly as possible, but may not be answered evenings or weekends.

Google Meet Links:Google Meet Link Phone: ‪+1 405-939-0022‬ PIN: ‪159 460 425‬#Group 1 Meet Phone: ‪+1 385-275-0157‬ PIN: ‪807 761 984‬#Group 2 Meet Phone: ‪‪+1 508-970-9168‬ PIN: ‪991 542 240‬#Group 3 Meet Phone: ‪‪+1 912-712-4303‬ PIN: ‪330 933 566‬#Group 4 Meet Phone: ‪+1 916-836-2515‬ PIN: ‪119 142 162‬#Group 5 Meet Phone: ‪+1 252-843-1146‬ PIN: ‪958 013 007‬#Individual Student MeetIf the meetups is not working for you, you can call in via phone and I will give you instruction on how to do the work on your own.All assignments will still be due, but the due dates shifted one week later.Office hours will be at he usual time, using Zoom. These will be open meeting whers you can all join, and listen as with students. If you need a private meeting please email me with some possible date/times, and we can set that up. In general, you can always send an email question, and I plan to be aviable general between the hours of 8-5 each weekday. You can also call me 9during qworking hours) at 740-358-9417.It is important to remember that you must to the lab assignments indivitually. You cannot send each other your code.Please remebe I am available to help you.
Location and Time:
  • Online (Google Meet)
  • 9:40-11:00am Tuesday and Thursday
  • Lab: 7:00-10:00pm Monday
Office hours:
  • Monday 1:00-3:00
  • Tuesday 1:00-2:30
  • Thursday 1:00-2:30
  • Emails will be answered as quickly as possible, but may not be answered evenings or weekends.
Tutoring

This course is an introduction to the intellectual scope of computer science and to the art or computer programming. This entry-level course is for students of all majors, including those with and without previous programming experience. The Python programming language is learned to teach programming concepts. The course covers topics in abstraction, algorithm and program design, basic data structures, security, networking, privacy, and history. Web technologies including HTML, CSS and Javascript are examined. Offered every semester.

Course Overview

  • An introduction to computer science in general
  • An introduction to programming with Python
  • Two daily classes Tuesday/Thursday at 9:40-11:00 am
  • Evening lab session Mondays 7:00-10:00 pm (required)
  • POGIL group activities during most classes
  • Regular individual lab assignments
  • Computer history essays weekly

Course Objectives:

  • Provide an understanding of the role computation can play in solving problems.
  • Give students an overall perspective on the breadth of computer science as a discipline
  • Become proficient in the Python programming language
  • Help students feel confident of their ability to write small programs that allow them to accomplish useful goals.
  • Position students so that they can compete for research projects and excel in subjects with programming components.

Texts

  • How To Think Like A Computer Scientist: Interactive edition (HTT): link (Free online text). You need to register for a free account, and join the class.
  • Think Python 3 (TP) – free download: link (Free PDF)

Methodology

This course uses a variety of learning strategies in order to both enrich and enhance learning for every student of every background, as well as to keep the course interesting. Methods include:

  1. Group (collaborative) activities:
    • POGIL (Process Oriented Guided Inquiry Learning). Discussed below, this is a team oriented, discovery based approach to learning with small groups of students. Teams report back to the whole classroom and share their discoveries.
    • In class small group programming. This is to allow learners to explore and solve a problem as a small group, such that each student engages with the material and each other, experimenting, teaching, and learning together.
  2. Individual activities:
    • Laboratory assignments. These programming assignments give each learner the opportunity to develop skill, experience, and confidence as programmers as individuals.
    • Programming problem solving. These small guided exercises, based on the repl.it online programming platform, provide small problems for the learners to gain experience programming with, and are automatically checked by the environment to give immediate feedback to the learner.
    • Homework Assignments. These activities, based on readings, give each student familiarity with important course concepts outside of class.
    • History essays – these small writing assignments, about one a week, give each learning the change to explore computer science in its larger historical context. These are shared in class on they day they are due.
  3. Instructional Presentation and discussion. Occasionally the instructor with give a presentation related to the course topics. These will normally include discussion, and sometime be interleaved with in-class hands on programming activities.
  4. Exams. Given at midterm and as a final, these assess the students mastery of the concepts learning in class.

Evening Labs

Every Tuesday the course includes a 3 hours session. Computer programming can be challenging, and time consuming. Often students will spend many hours trying to achieve a small goal on their own, where help from another student, a lab assistant, or the instructor, can quickly help them past these problems. Thus the evening labs are provided, and required, to give students time to master the difficulties of programming with more efficiency and enjoyment. This time will be primarily for two types of activities. The first is for POGIL group activities. The extra time afforded by the evening hours gives learns time to explore the material, and try out the solutions while the professor and lab assistant is available. The second is for the individual labs. During the labs the time will include the presentation of the lab, and include time for the students to begin working on the assignments. There is not a one-to-one correspondence between the individual labs and the laboratory assignment.

Course Attendance

Given the methods of instruction, especially the group work and the hands on work, attendance is essential. Students are expected to attend all classes until they are ill or involved in official collegiate sporting activities. In the case of any absence students are expected to contact the instructor prior to the absence. In the case of such excuses absences the student will normally be assigned work to compensate for the misses class activities. Up to 3 unexcused absences will be allowed, with a 2% overall grade reduction for each. The instructor reserves to right to dis-enroll any student with more than three absences.

Python 3

In this course we will be learning the Python 3 programming. We will be using and online programming environment repl.it. This allows you to program anywhere with any device (including smartphones and tablets!), while maintaining access to all your current and previous work.

You can also install Anaconda Python and an IDE (Intregrated Development Environment) call Spyder by following these instructions: PythonInstall

POGIL

Process Oriented Guided Inquiry Learning (POGIL) is a pedagogy that is based on research on how people learn and has been shown to lead to better student outcomes in many contexts and in a variety of academic disciplines. Beyond facilitating students’ mastery of a discipline, it promotes vital educational outcomes such as communication skills and critical thinking. Its active international community of practitioners provides accessible educational development and support for anyone developing related courses.

We will be learning about POGIL early in the class, and using this method on a daily basis.

Each activity is a link to a Google Doc. You must be logged into your Kenyon account to access. One member of the team will open the link, and make a copy in the same directory with your team name (color). The team will then work together to document the process on that document.

Useful POGIL links

POGIL Roles:

On teams of less then four students some will have 2 roles

Group Assignments

POGIL Quality Indicators

POGIL Process Analyst Report – The Process Analyst completes this after every activity

POGIL Feedback – complete this after every activity

Online resourses

This course uses several online tools for learning and assessing student progress. All of these resources are free of cost but some require the creation of a login account. It is essential that everyone participaite in the associated activities as all are part of the learning process, and some are graded activities.

  • How To Think Like A Computer Scientist: Interactive edition – This is an online interactive book. You must register, and complete the exercises in the assigned readings. Use “KenyonIntroCS2020” as the course name. You will be assigned problems in this book. You should compete the work, and copy and paste ALL the final code into a single file, and turn it in on Moodle for credit.
  • IntroCSKenyon2020 – This is an environment for learning Python learning Environment that is based on repl.it. Regular Python exercises will be assigned as graded homework from this environment. Follow the link and create an account. Select Kenyon College as your college. The you should see the class. You must sign up for the course, using your Kenyon Email address, here: Repl.it course link. For your assignments here you need to merely complete the problems and submit them by the due date.
    Note on notificationsEverytime I assign a problem you will get a notification from repl.it. (And there will beover 100) I can’t stop the notifications, but you can. Just log into repl.it. Then click on your username in the upper right, and select account. If you scroll down to the bottom, you can open up the “Email Settings” section, and un-select the checkbox for “Receive email notifications”.

Assignments

Due Date: All assignments are due as specified in the grading table below.

Missing Lab Assignments: Labs are an important part of this class; the effort spent on them is a crucial part of the learning process. Failure to submit labs is unacceptable: students earning 0s on two labs cannot receive a grade higher than a B- for the course; students earning three 0s on labs will receive an automatic F for the course.

Collaboration and Academic Honesty: In order to facilitate learning, students are encouraged to discuss assignments amongst themselves. Copying a solution is not, however, the same as “discussing.” A good rule of thumb is the “cup of coffee” rule. After discussing a problem, you should not take away any written record or notes of the discussion. Go have a cup of coffee or cocoa, and read the front page of the newspaper. If you can still re-create the problem solution afterward from memory, then you have learned something, and are not simply copying. (The assignments that are designated as “group work” are exempt from this, as they are intended to be done together.)

Academic Honesty and using code you did not write: Turing in code you did not write is cheating.

  • You should never receive code from other students, use code from the internet, or use instructor solutions from past semesters. Any code you submit must be written entirely by you. (See the “cup of coffee” rule under collaboration.)
  • Likewise, “facilitating academic dishonesty” is a violation of academic honesty. Thus sharing your code with other students is also forbidden.
  • The instructor has tools for checking the similarity of code, and will use them periodically to see if students code is too similar to be explained by coincidence.
  • If you suspect someone has used your code, you should report it.

Academic Honesty and use of Repl.it: By default all programs you create on repl.it are public. That means anyone who can guess your username can then look at your code. This is cheating, and is not allowed for any non-colaborative assignments. You should ALWAYS set your programs to “Private” so that no one else can see them. If you leave your code public, and someone finds it and uses it, it will be flagged as a possible infraction, and you may find yourself in the difficult situation of having to explain what happened to the AIB. So please keep your work private!

Computer History Assignments: Once a week you will turn in a brief essay on some computer history fact from the Computer History Museum ( Timeline) (or other computer history source). One or two people people will be chosen each week to oraly describe what they found in 2 minutes at the beginning of class. I will ask for volunteers, but will cycle through everyone before I repeat anyone. The idea is give to us all an opportunity to explore the history of computer science, and to find something that interests each of us. Start by going to the computer history timeline, and for each assignment explore the requested years until you find something interesting. Then write up a 200-300 word essay about what you found, what you found compelling, and why you think it is significant. Write the essay in Moodle, and include a link to the item you found so it can be displayed while you share in class. These are due midnight before the day they will be presented (and appear in the calendar below). Late submissions will not be accepted on these assignments.

Grading

Category%Collaboration
Allowed
Notes
History Essays10%NoDue by class time on day assigned. Not accepted Late
POGIL Activities15%YesSmall group activites done in class. Participation and team results. No credit if absent. Alternative assignment with medical note or sports participation. Due at the end of class or lab.
Individual Labs30%NoDue by midnight on day due. 5% penalty for for up to 12 hours late. One assignment may be up to 24 hours late with no penalty with instructor notification.
Homework Assignments20%NoDue by class on the day due. One assignment may be up to 24 hours late with no penalty with instructor notification. This includes questions in the interactive text ( How to think like a Computer Scientist: Interactive edition) and the assigned exercises in repl.it. ALso includes questions from the other texts.
repl.it Problems10%NoThese are problems within the repl.it course. These are autograded by the system, and you have as many tried as you need. Due by midnight on day due.
Exams15%NoMidterm and Final
TOTAL100%

Schedule

DateTopicsReading
(before class)
Notes/Activities/Code SamplesSlidesAssignment
Due
Jan 13
(Lab)
Introduction to Computer Science and course
Introduction to POGIL
First Python Program
Intro to Python
Python Lab 1
Student Information Form
POGIL Role Wheel
POGIL Roles
POGILQualityIndicators
POGIL Process Analyst Report
POGIL Activity 1
 POGIL Feedback
POGIL Introduction Python  repl.it – link
Day 1
 Intro Python
Create Accounts:
How to think like a Computer ScientistRepl.it
Jan 14Programs, languages, simple programming
Introduction to algorithms
History Assignments
HTT 1POGIL Process Analyst ReportPOGIL FeedbackDo all questions in HTT Ch 1
Student Information Form
Jan 16Input and VaraiblesPOGIL CS Activity on Algorithms
POGIL Process Analyst Report

POGIL Feedback
Jan 20 (Lab)HTT Chapter 2.1-2.7 – Variables, data types, names, keywords, statements and expressions, operators and operands
HTT Chapter 2.1-2.7
POGIL Input and VariablesPOGIL – Arithmetic Operations and Assignment Statements
 Fun with candy bars
AlgorithmsHTT Ch 2.1-2.7
1930s
Jan 21HTT Chapter 7.1-7.9HTT Chapter 7.1-7.5POGIL – Formatting Output
 Format Cookbook

 In Class Exercises (2.1-2.D)
Repl.it:1.1-1.7HTT Ch 2.8-2.11
Jan 23HTT Chapter 2.8-2.11 – Input, Order of operation, reassignment, updating variablesHTT Chapter 2.8-2.11POGIL – Boolean Expressions
Expressions, Conditionals and LoopsRepl.it:2.1.-2.7
Jan 27 (Lab)HTT Chapter 7.1-7.9
While Loops
Lab 1 review
POGIL – If then else
POGIL – While Loops
 Teams
Hands On
Expressions, Conditionals and Loops

HTT 7.1-7.8

HTT 2.13 Exercises
1940-1944
Jan 28Nested If then else.HTT Chapter 7.6-7.8POGIL Nested If-else statementsPrimeNumbersRepl.it:2.8.-2.B,2.D
Fun with candy bars
Jan 30HTT Chapter 4.1-4.6
HTT Chapter 6
POGIL – TurtlesTeams
Choose Random Color
TurtlesClasses
 Turtle Racing
Turtle Documentation
Repl.it (3.1.-3.C)
Feb 3 (Lab)HTT 5 – Python ModulesNested If-ElseHTT Ch 5POGIL Built-In Functions
 POGIL Void Functions
Functions
 Function List
 Math Functions
Lab 1
Repl.it (3.D.-3.O)
1945-1949
 HTT Ch 4 4.1-4.9
Feb 4For-LoopsHTT Ch 6POGIL FOR Loops
POGIL Functions Returning Values
HTT Ch 4.11
HTT Ch 6.1-6.6
Feb 6
HTT Ch 8 – Iteration
HTT Ch 8POGIL Nested Loops
Computing Loan Payoff
HTT Chapter 5
HTT Ch 6.7-6.11
Feb 10 (Lab)FilesHTT 11 Files
POGIL Reading FIles
 .
 Emily Dickinson Experiment
Repl.it HW 4.1-4.8
1950-1954
 Lab 2 – Turtle Drawing
Feb 11File, Animation,
Introduction to Computer Hardware,
Binary Numbers
POGIL Writing Files
POGIL Number Systems 1

Base Converter
HTT – 5.6
HTT Ch 6.13
Feb 13Writing FilesHTT 11 FilesTurtle AnimationRepl 4.9-4.A 
Feb 17 (lab)Number Systems
Lists
POGIL Binary NumbersPOGIL – ListsList and String ActivityMoores Law
Gates Notes
1955-1959
 HTT Ch 8.1-8.7
HTT Ch 7.10
Feb 18Strings, ListsHTT 9.1-9.7List and String Activity
Lab 4 – Start
Strings
 Lists and Tuples
HTT Ch 11.1-11.8
HTT Ch 8.8-8.11
Lab 3 -Turtle Animation
Feb 20Hardware, Image representation
Strings
POGIL CS – Hardware Abstraction 2
Feb 24 (Lab)Python Lists and StringsHTT Ch 9 .9-9.14POGIL CS – Hardware Abstraction 3
Image Fun

Python

POGIL – More Lists and Strings

Study Guide
Lists and Tuples1960-1964

HTT 9.1-9.7
Repl 5.1-5.6
Emily Dickinson
Feb 25Midterm ExamMidterm ExamIntro NetworkingHTT 8.14 (questions 11-15 are optional)
Feb 27The internetWatch: The Internet: Wires, Cables & Wifi
The Internet: IP Addresses & DNS
 The Internet: Packets, Routing & Reliability
POGIL – Internet 1Video:  Warriors of the Net1965-1969
 HTT Ch 11.9
Mar 23 (Lab)List Functions, Net Neutrality
Google Meet Link
POGIL – Net Neutrality
POGIL 2 Dimensional ListsFractals Lab
Group 1 Meet
 Group 2 Meet
Group 3 Meet
Group 4 Meet
Group 5 Meet
Networking IP and DNS
Lookup IP Address
List ActivitiesJohn Oliver Net Neutrality
Repl.it 5.7-5.C
HTT 9.8-9.14
Mar 24Internet 3, ListsHTT 10.1-10.10POGIL Additional List Functions Hangman LabHTT 10.1-10.10
Mar 26List and StringsHTT 10.11-10.20POGIL Dictionary
Lab 4
1970-1974HTT 9-15-9.19
Mar 30 (Lab)HTMLHTT Ch 12POGIL HTML 1, 
POGIL HTML 2
 HTML Tutorial
Shakespeare Lab 7
HTML
CSS
HTML How To
 Colors
 HTML Validator
CSS Validator
 PostImage
HTT 10.11-10.20
Mar 31Lab Work Day
Work on labs 5 and 6, meet with professor
Google Form to fill out
HTT Ch 12
Individual Student Meet
(Start class at the regular meet here)
Google Hangout Meet

Dictionary Activity (For reference)
HTT 9-22 Exercises
Lab 5 -systems with Turtles
Apr 2ExceptionsHTT 13POGIL ExceptionsExceptions
 Exception List
HTT 10.21-10.29
1975-1979
Apr 6 (Lab)RecursionHTT Ch 15POGIL Recursion 1
Lab 8 MazeSearchRecursion

Recurrsion
Repl.it 6.1-6.A
Lab 6
HTT 10-30 Exercises
Apr 7HTML 2
Recursion
HTT 10.26-29POGIL Recursion 2Comprehension1980-1984

Web Page
Apr 9Classes
HTT Ch 16 Objects and Classes
Bank
OOP Slides
HTT 12.1-12.4, 12.7Repl.it 7.1-7.D
Apr 13 (Lab)Classes
HTT CH 17 Objects and Classes
HTT Ch 15POGIL Classes
 Model 1 Code
 Model 2 Code
Model 3 Code
 Bank Activity
OOP Slides1985-1989
HTT 13 all
Repl.it 8.1-8.7
Apr 14HTT Ch 16POGIL TuplesRequired Meeting Signup
 https://meet.google.com/mtd-poyv-njk
Apr 16Tic Tac Toe LabTic Tac Toe LabLab 7
Apr 20 (Lab)Python PlottingNumPy Repl
 pandas repl
POGIL Plotting Introduction to NumPy
Introduction to Pandas
Plotting Examples
 Pandas Cheat Sheet
Repl.it A.1-A.8
Apr 21Python PlottingHTT Ch 17COVID 19 Plotting ExerciseVideo of classPython Plotting With Matplotlib (Guide)Lab 8 – Maze Search, Recursion
Apr 23Running your own PythonPlotting Activity
Video of class
Installing AnacondaBank Assignment
Apr 27 (Lab)Web Animation – Javascript, Canvas, HTML5Javascript Tutorial HangManStart 
 Form Example
Canvas ActivityVideo of classIntroduction to JavaScriptLab 9 – Tic Tac Toe
1990-1994
Apr 28List comprehensionRead: List Comprehension TutorialList ComprehensionList Comprehension Info
 List Comprehension Homework
on HTT 16 – Ex 1-4
Plotting Activity
Apr 30Introduction to C++BlackJack StartVideo of classC++ Slides1995-1999
May 4 (Lab)CForPythonProgrammers
 Introduction to C++
C++Activity 1List Comprehension Homework
May 5Introduction to C++C++ Activity 22000-2004
Canvas Activity
May 7C++ RecapAshleigh Zarley TalkLab 10 – BlackJack
May 13Final Exam – 1:30 pmFinal Topics

<a name=”Non_Discrimination_Statement”> </a>Non Discrimination Statement

Kenyon College does not discriminate in its educational programs and activities on the basis of race, color, national origin, ancestry, sex, gender, gender identity, gender expression, sexual orientation, disability, age, religion, medical condition, veteran status, marital status, genetic information, or any other characteristic protected by institutional policy or state, local, or federal law. The requirement of non-discrimination in educational programs and activities extends to employment and admission.

All employees, including faculty, are considered Responsible Employees and must notify the College’s Civil Rights & Title IX Coordinator with any relevant information.

For further information, please refer to the following Kenyon College policies:

Sexual Misconduct & Harassment: Title IX, VAWA, Title VII:
https://www.kenyon.edu/directories/offices-services/ocr/title-ix-vawa/kenyon-policies/title-ix-policy/

Discrimination & Discriminatory Harassment Policy (non sex or gender):
https://www.kenyon.edu/directories/offices-services/ocr/discrimination/

ADA & Section 504:
https://www.kenyon.edu/directories/offices-services/ocr/discrimination/504-ada-grievance/student-grievance-procedure-resolving-complaints-under-ada-section-504/

<a name=”Disabilities”> </a>Disabilities

If you have any disability and therefore may have need for some type of accommodation in order to participate fully in this class, please feel free to discuss your concerns in private with Erin Salva, director of Student Accessibility and Support Services (SASS). (phone: (740) 427-5453).

Statement on Title XI

Kenyon College does not discriminate in its educational programs and activities on the basis of race, color, national origin, ancestry, sex, gender, gender identity, gender expression, sexual orientation, disability, age, religion, medical condition, veteran status, marital status, genetic information, or any other characteristic protected by institutional policy or state, local, or federal law. The requirement of non-discrimination in educational programs and activities extends to employment and admission.

All employees, including faculty, are considered Responsible Employees and must notify the College’s Civil Rights & Title IX Coordinator with any relevant information.

For further information, please refer to the following Kenyon College policies:

Sexual Misconduct & Harassment: Title IX, VAWA, Title VII:

https://www.kenyon.edu/directories/offices-services/ocr/title-ix-vawa/kenyon-policies/title-ix-policy/

Discrimination & Discriminatory Harassment Policy (non sex or gender):

https://www.kenyon.edu/directories/offices-services/ocr/discrimination/

ADA & Section 504:

https://www.kenyon.edu/directories/offices-services/ocr/discrimination/504-ada-grievance/student-grievance-procedure-resolving-complaints-under-ada-section-504/

Plotting Activity
Plotting Group Lab

Sample plots in Matplotlib

Plotting Group Lab

PleaseJoinPrevGroup

Scroll to Top