SCMP 191 - Introduction to Computer Science

Fall 2018

  • Class: 9:40-11:00am Tuesday and Thursday
  • Lab: 7:00-10:00pm Tuesday
  • Generally avalable if door is open, and not I'm meeting with someone else.
  • Emails will be answered as quickly as possible, but may not be answered evenings or weekends.

Instructor: James Skon, Hayes 309c, 740-427-5369

Office hours: 10-11 MWF, 2-3 M-F

This course is a introduction to the intellectual scope of computer science and to the art or computer programming. This in an entry-level course for students of all majors, both with and without previous programming experience. The topics of the course includes abstraction, algorithms, data structures, security, software engineering, and web development. The languages include Python, SQL, Javascript, and also CSS and HTML. The problems are based on real life domains such as ..... 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 Tuesday 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

  • Invitation to Computer Science 8th Edition (ICS), by G.Michael Schneider, Judith Gersting, Cengage Learning, 2018, link
  • How To Think Like A Computer Scientist: Interactive edition (HTT): link (Free online text). link (PDF Text).You need to register for a free account, and join the class.
  • Think Python 3 (TP) - free download: link (Free PDF)
  • Programming In Python (PP) : 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.

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 Process Skills - skills you want to develop

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 "KenyonIntroCS" as the course name.
  • Introduction to Computer Science @ Kenyon - This is an environment for learning Python learning Environment that is based on repl.it. Regular Python exercises will be assignmed 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.

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 “group work” are exempt from this, as they are intended to be done together.)

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 Essays 10% No Due by class time on day assigned. Not accepted Late
POGIL Activities 15% Yes Small 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 Labs 30% No Due 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 Assignments 20% No Due 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 Problems 10% No These 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.
Exams 15% No Midterm and Final
TOTAL 100%    

Schedule

Date Topics Reading
(before class)
Notes/Activities/Code SamplesSorted ascending Slides Assignment
Due
Lab HTT CH 17 Objects and Classes
Privacy
HTT Ch 17 Candidate Class
POGIL Privacy in the Digital Age
   
Dec 11 Web Animation - Javascript, Canvas, HTML5 Javascript Tutorial Canvas Activity   Plotting Activity
Plotting Group Lab
Dec 13 Lab Work, Review   Final Topics   2000-2004
Konvajs Group Activity
Sep 3 Optional - install Python on your computer   Hayes 311: 7:00-9:00pm    
Lab Web Animation - Javascript with Konvajs (and canvas) Konvajs Tutorial Konvajs Group Activity   Canvas Activity
Oct 18 Python Lists and Strings

HTT Ch 9 .9-9.14


List and String Activity
  1965-1969
Lab 5
HTT 9.1-9.7
Oct 9 Strings HTT 9.1-9.7
ICS Ch 7.3
Making Sentences Lab Strings HTT Ch 8.8-8.11
HTT 8.14
Nov 8 Recursion HTT Ch 15 Maze Search, Recursion

1980-1984
Lab 8
Nov 13 Computer Instructions   Maze Search, Recursion   HTT 12.1-12.4, 12.7
Repl.it 8.1-8.7
Oct 11 October Break        
Nov 17-25 Thanksgiving Break        
Dec 18 Final Exam - 8:30am Final Exam      
Lab Python Plotting Sample plots in Matplotlib Plotting Activity
Plotting Group Lab
   
Sep 6 ICS 2 - Algorithms
HTT Chapter 2.1-2.7 - Variables, data types, names, keywords, statements and expressions, operators and operands
ICS 2:
HTT Chapter 2.1-2.7
POGIL - Arithmetic Operations and Assignment Statements
Fun with candy bars
In Class Exercises (Start 2.1-2.D)
  HTT Ch 2.1-2.7
1930s
PythonHW 1 (2.1.-2.D)
Lab HTT Chapter 7.1-7.9 HTT Chapter 7.1-7.9 POGIL - Boolean Expressions
POGIL - If then else
POGIL - While Loops
Expressions, Conditionals and Loops  
Dec 6 Censorship   POGIL - Digital Censorship   1995-1999
Lab 11 - BlackJack
Sep 11 HTT Chapter 2.8-2.11 - Input, Order of operation, reassignment, updating variables HTT Chapter 2.8-2.11 POGIL - Formatting Output
Format Cookbook
Division and Formatting HTT Ch 2.8-2.11
Lab Internet, Strings   POGIL - Internet 1
Video: Warriors of the Net
Intro Networking  
Lab The internet ICS Ch 7.1-7.3
Watch: The Internet: Wires, Cables & Wifi
The Internet: IP Addresses & DNS
The Internet: Packets, Routing & Reliability
POGIL - Internet 2 Net Neutrality  
Lab Internet 3, Lists   POGIL - Internet 3
2 Dimensional Lists
Hangman Lab
Mac Address Activity
Networking IP and DNS
Lookup IP Address
List Activities
 
Oct 23 Lists HTT 10.1-10.10 POGIL - Lists Lists and Tuples HTT 9.8-9.14
Oct 30 List and Strings HTT 10.11-10.20 POGIL - More Lists and Strings   HTT 9-22 Exercises
ICS 7 Exercises 3, 4, 6, 13, 16, 17, 20
Repl.it 7.1-7.D
Sep 13 HTT Ch 4.1-4.6 Turtle Graphics HTT Chapter 4.1-4.6 POGIL - Turtles TurtlesClasses
Turtle Documentation
HTT 7.1-7.8
HTT 2.13 Exercises
1940-1944
Oct 25 List Functions   POGIL Additional List Functions
  1970-1974
Lab 6
HTT 9-15-9.19
Repl.it 5.1-5.C
Sep 27 Binary Numbers   POGIL Binary Numbers
Turtle Animation
  HTT Ch 6.13
Python HW 4.9-4.A
1950-1954

Lab Functions

HTT Chapter 5,6

ICS 4.1-4.2


POGIL Built-In Functions
POGIL Functions Returning Values
Function List
Math Functions
Turtle Racing

HTT Chapter 5
Nov 27 HTT Ch 16 Objects and Classes HTT Ch 16 POGIL Classes
Model 1 Code
Model 2 Code
Model 3 Code
OOP Slides  
Sep 20

ICS 4.1-4.2 - Logic Gates, data representation
HTT 5 - Python Modules

Nested If-Else

ICS 4.3-4.4
HTT Ch 5

POGIL CS - Hardware Abstraction 2
POGIL Nested If-else statements
Gates Notes 1945-1949
HTT Ch 4 4.1-4.9
HTT Ch 6.1-6.6
Oct 4 Image representation   POGIL CS - Hardware Abstraction 3
ImageExample
  1955-1959
HTT Ch 8.1-8.7
HTT Ch 7.10
HTT Ch 11
Turtle Animation
Sep 4 Programs, languages, simple programming
Introduction to algorithms
ICS 1:General Introduction POGIL CS Activity on Algorithms
POGIL Process Analyst Report
POGIL Feedback
Algorithms Do all questions in HTT Ch 1
ICS Ch 1: 4, 9, 10, 11, 13
Lab Dictionary, Python HTT Ch 12 POGIL Dictionary
Examples
Dictionary Activity  
Nov 6 Exceptions HTT 13 POGIL Exceptions
Exception Exercise
Exceptions HTT 10-30 Exercises
Web Page
Sep 25 For-Loops
HTT Ch 7 - Selection
FOunders Day - Class ends at 10:40
HTT Ch 8
POGIL FOR Loops
Computing Loan Payoff
  HTT Ch 4.11
HTT Ch 5.6
HTT Ch 6.7-6.11
Lab 2 - Turtle Drawing
Nov 1 HTML HTT Ch 12 POGIL HTML 1, JSFiddle
HTML Tutorial
HTML Example 1
HTML Example 2
HTML
CSS
HTML How To
Colors
HTML Validator
CSS Validator
1975-1979
Lab 7
Lab Intro to Python
Python Lab 1
HTT 1 POGIL Introduction Python
POGIL Input and Variables
POGIL Process Analyst Report
POGIL Feedback
Intro Python  
Lab
HTT Ch 8 - Iteration
HTT Ch 8 POGIL Number Systems 1
Base Converter
POGIL Nested Loops
Computing Loan Payoff
  Python HW 4.1-4.8
Dec 4 Python Plotting Python Plotting With Matplotlib (Guide) POGIL Plotting   Candidate Class
Nov 29 Python Plotting   POGIL Plotting
  1990-1994
Lab 10 - Tic Tac Toe
HTT 16
Lab HTML 2
Recursion
HTT 10.26-29 POGIL Recursion List Comprehension  
Lab HTT Ch 16 Objects and Classes HTT Ch 15 POGIL Tuples
POGIL Digital Abstraction 4, Representing Instructions
   
Sep 18 Introduction to Computer Hardware,
Functions
ICS 4.1-4.2
HTT Chapter 5, 6
POGIL Void Functions
Functions PythonHW 2 (3.1.-3.O)
Lab 1
Nov 15     POGIL Web Search   1985-1989
HTT 13 all
Lab 9 - Maze Search, Recursion
Lab More Files   POGIL Writing Files
Emily Dickinson Write
  HTT Ch 7.10
Computing Loan Payoff
Aug 30 Introduction to Computer Science and course
Introduction to POGIL
First Python Program
History Assignments
 

Student Information Form
POGIL Role Wheel
POGIL Roles
POGIL Process Skills
POGIL Process Analyst Report
POGIL Activity 1
POGIL Feedback

ActiveCode Overview

repl.it - link
Day 1  
Oct 16 Midterm Exam   Study Guide   1960-1964
HTT Ch 11.9
Lab 4
Oct 2 Files HTT 11 Files Turtle Animation Revisited
POGIL Reading FIles
.
Emily Dickinson Experiment
  Lab 3
HTT - 5.6

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/

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/

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf Activity_1_-_Team_Roles_Student.pdf r1 manage 105.9 K 2018-08-16 - 01:20 JimSkon  
Unknown file formatcsv CollegeCost.csv r1 manage 0.5 K 2018-12-03 - 04:55 JimSkon  
Unknown file formatcsv CollegeDebt.csv r1 manage 0.2 K 2018-12-03 - 04:55 JimSkon  
PDFpdf POGIL-CSP_-_Hardware_Abstraction_1_What_is_a_Computer_Student.pdf r1 manage 250.2 K 2018-08-22 - 20:43 JimSkon  
PDFpdf POGIL_role_cards_HACH.pdf r1 manage 129.5 K 2018-08-14 - 20:41 JimSkon  
PDFpdf POGIL_role_wheel_-_Mary_Bartholomew.pdf r1 manage 269.2 K 2018-08-14 - 20:43 JimSkon  
JPEGjpg Pixel.jpg r1 manage 275.6 K 2018-11-01 - 04:12 JimSkon  
PDFpdf ProgrammingInPython.pdf r1 manage 10003.8 K 2018-08-14 - 17:30 JimSkon  
PDFpdf howtothink.pdf r1 manage 2371.7 K 2018-08-16 - 03:05 JimSkon  
PNGpng kenyon.png r1 manage 8.6 K 2018-11-01 - 04:15 JimSkon  
Edit | Attach | Watch | Print version | History: r147 < r146 < r145 < r144 < r143 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r147 - 2019-04-25 - JimSkon
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback