Tags: %TAGME{ tpaction="" web="Main" tag="" }% view all tags

SCMP 118 Introduction to Programming, Section 1 & 2

James Skon, Hayes 310, 740-427-5369

Department of Mathematics and Statistics
Fall 2020
Section 1: Tuesday, Thursday 9:40-11:00, Zoom Link ( Full invitation)
Section 2: Tuesday, Thursday 1:10-2:30, Zoom Link ( Full invitation)
Office hours: MW 1-3, F 8-10, TH 2:30-3:30, Zoom Link

Information for remote class

This course is offered completely online

  1. The class will meet as scheduled, but online, using Zoom. There will be a durable Zoom links for the class, as well as sub-groups for POGIL groups
    • Zoom Meet Link
    • Meeting information (Includes information on how to call in from phone)

    • Alternate: Google Meet Link. If the zoom meeting doesn't work, or fails during class, we will shift to the Gooogle meet to do the class.

    • If a class link breaks or stops working, please check your email immediately. IF you don;t see anything, send me an email ASAP and let me know what is going on.
    Online 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.
    • MW 1-3, F 8-10, TH 2:30-3:30. Zoom meeting Link. Phone in: ‪+1 631-619-8958‬ PIN: ‪927 696 037‬#
    • You may contact me via email at skonjp@kenyon.edu. Emails will be answered as quickly as possible, but may not be answered evenings or weekends.
      Alternate Google Meet link: Link
  2. If the Zoom is not working for you, you can call in via phone or send email and I will give you instructions on how to do the work on your own.
Location and Time:
  • Online (Zoom)
  • 2:40-4:00pm Tuesday and Thursday
Tutoring (MSSC)
  Sunday Tuesday Thursday
7:00 Dev Dev  
7:30 Dev Dev  
8:00   Dev  
8:30 Sejin Dev Sejin
9:00 Sejin   Sejin
9:30 Sejin   Sejin
This course presents an introduction to computer programming intended both for those who plan to take further courses in which a strong background in computation is desirable and for those who are interested in learning basic programming principles. The course will expose the student to a variety of applications where an algorithmic approach is natural and will include both numerical and non-numerical computation. The principles of program structure and style will be emphasized. The course teaches both Python and C++ programming. Offered every semester. Offered every semester.

Course Overview

  • An introduction to computer science and computing systems
  • An introduction to algorithm development and problem solving
  • An introduction to programming with Python
  • Anintroduction to C++
  • Two daily classes Tuesday/Thursday at 9:40-11:00 am
  • POGIL group activities during many 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 and C++ programming languages
  • 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

  1. How To Think Like A Computer Scientist: Interactive edition (KenyonPythonF20) (Python): link(Free online text). You need to register for a free account, and join the class.
  2. C++ for Python Programmers (KenyonCPPF20) (C++). link
  3. Think Python 3 (TP) - free download: link (Free PDF)
Texts 1 & 2 must be access online through a registered account on Pythonps://runestone.academy/. Create an account using your name and kenyon email address, and then register for BOTH texts. This will require signing up with one, then adding the second.

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.

Course Attendance

Given the methods of instruction, especially the group work and the hands on work, attendance online 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 and C++

In this course we will be learning the Python 3 and C++ programming langauges. 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:
  • Spokesperson
  • Process Analyst
  • Facilitator
  • Quality Control
On teams of less then four students some will have 2 roles

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 (KenyonPythonF20 and KenyonCPPF20) These are two online interactive books. You must register, and complete the exercises in the assigned readings. Use "KenyonPythonF20" and "KenyonCPPF20" as the course names. You will be assigned problems in this book. You should compete the work, and copy and paste ALL the final code for each assignment into a single file, and turn it in on Moodle for credit.
  • SCMP11801F2020 - 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 notifications: Everytime 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 Essays 10% No Due by class time on day assigned. Not accepted Late
POGIL Activities 10% Yes
Individual Labs 40% 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 15% 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 15% 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.
Quizzes 10% No A quiz at the beginning of each class. The quiz opens 10 minutes before class, and you are encouraged to finish the quiz prior to class starting. You must finish the quiz in the first 5 minutes of the class, and you have 5 minutes total to do the quiz. You cannot make up quizzes. Each quiz is on the content from the previous class.
TOTAL 100%

Schedule

Date Topics Reading Notes/Activities Slides &
Video
Assignments Due
Sept 1 Introduction to Computer Science and course, Introduction to POGIL
Text Book.
  Student Information Form
POGIL Role Wheel
POGIL Roles
POGILQualityIndicators
POGIL Process Analyst Report
POGIL Activity 1
POGIL Feedback
Day 1
Video
PW: *M1Usr^9
Create Accounts:
How to think like a Computer Scientist
Sept 3

Programs, languages, simple programming
Introduction to algorithms
History Assignments

First Python Program

Python Chapter 1 Quiz 1
POGIL Introduction Python
repl.it - link

Student Information Form
Create Accounts:

Repl.it

Sept 8 Input and Variables
Variables, data types, names, keywords, statements and expressions, operators and operands
Python Chapter 2.1-2.7 Quiz 2
POGIL Input and Variables

POGIL - Arithmetic Operations and Assignment Statements
Intro Python

1930s

Sept 10 Python Work
Algorithms
Python Chapter 2.8-2.11 Quiz 3
Fun with candy bars
Algorithms
Video
 
Sept 15 Formatting Data Python Chapter 3.1-3.6 Quiz 4
POGIL - Formatting Output
Debugging
  Python Ch 2.13 Ex 1-6
Fun with Candy Bars
1940-1944
Sept 17 Decision Making in Python Python Chapter 7.1-7.3 Quiz 5
POGIL - Boolean Expressions

In Class Exercises (2.1-2.C)
Video Part 1, Part 2
*
Repl.it:1.1-1.7
Sept 22 Selection in Python Python Chapter 7.4-7.5 Quiz 6
POGIL - If then else
Selection 1945-1949
Repl.it:2.1-2.7
Sept 24 Looping in Python Python Chapter 8.1-3 Quiz 7
POGIL - While Loops
POGIL FOR Loops
Loops and Interation
Class Video
Feedback Form
Sept 29 Nested Selection, Strings Python Chapter 7.6-7.8, 9.1-9.9 Quiz 8
POGIL Nested If-else statements
Computing Loan Payoff
Selection 1950-1954
Repl.it:2.8-2.C
Oct 1 Python Turtle Graphics, Strings Python Chapter 4.1-4.6, 9.10-9.19 Quiz 9
POGIL - Turtles
Choose Random Color Lab 1 - Payroll
Repl.it 3.1-3.9, 5.1-5.7
Loan Payoff
Oct 6 Built in and Void Functions Python Chapter 5.1-4, Chapter 6.1-6.5 Quiz 10
POGIL Built-In Functions
POGIL Void Functions
Functions Lab 2 - Turtle Drawing
1955-1959
Repl.it 3.A-3.O,
Oct 8 Functions, local variables, parameters Python Chapter 6.6-6.10 Quiz 11
POGIL Functions Returning Values
  Repl.it 5.8-5.C
Python 4.11 Ex 1,2,5,6,9
Oct 13 Nested Loops, Strings Python Chapter 8.1-3
Chapter 9.1-13
Quiz 12
POGIL Nested Loops
Strings 1960-1964
Python Ch 7.10 Ex 1,2,3,6,7,8,9
Repl.it 4.1-4.A
Oct 15 Reading Files Python Chapter 11.1-11.5 Quiz 13
POGIL Reading Files
Emily Dickinson Experment
  Lab 3 - Bouning Balls
Python Ch 6.13 Ex 1,2,3,4,5,6,7,9,10
Oct 20 Writing Files Python Chapter 11.6.11.7 Quiz 14
POGIL Writing Files
  Python Ch 5.6: 15, 17, 18, 19
1965-1969
Repl.it 6.1-6.A
Oct 22 Lists, Passing lists Python Chapter 10.1-10.5 Quiz 15
POGIL - Lists
  Emily Dickinson
1970-1974
Python Ch 9 Ex 1-12
Oct 27 Lists and Strings Python Chapter 10.6-10.9 Quiz 16
POGIL - More Lists and Strings
  Lab 4 Hangman
Python Ch 11.9 Ex 1-5
Oct 29 2 dimensional lists Python Chapter 10.10-10.24 Quiz 17
POGIL 2 Dimensional Lists
Exercises
  1975-1979
Repl.it 7.1-7.D
Nov 3 Dictionaries Python Chapter 12.1-12.5 Quiz 18
POGIL Dictionary
Exercises
Comprehension

Python Ch 10 EX 1,2,3

Nov 5 Dictionary Python Chapter 12.1-12.5 Quiz 19
Census Name Data, Dictionary
   
Nov 10 Python Classes Python Chapter 17.1-17.6 POGIL Classes
Model 1 Code
Model 2 Code
Model 3 Code
  Lab 5 TicTacToe
1980-1984
Python Ch 10 Ex 4,5,6,7,8,11,12
Nov 12 Python Classes Python Chapter 17.7-17.9 Quiz 20 ClassesWork Census Name Data
Python Ch 12 Ex 1,2,3,4,5
Repl.it 8.1-8.7
Nov 17 Introduction to C++, First program CPP Chapter 1   Slides 1985-1990
Repl.it A.1-8.8
CPP Ch 1.6, 1.8
Nov 19 C++ Data types, control structures CPP Chapter 2, 3 C++Activity 1   Lab 6 - Blackjack
CPP Ch 2.7, 2.8
Repl.it CPP 1-8
Nov 24 C++ Arrays, Functions CPP Chapter 4, 5.1-5.3 Quiz 21
C++ Activity 2
  Lab 7 - Payroll
990-1994
CPP Ch 3.4,3.7,4.7 Matching
Repl.it CPP 9-16
Dec 1 C++ Data collections, Standard Template Library CPP Chapter 4 Quiz 22
C++ Classes
  Repl.it CPP 17-25
Dec 3 C++ Classes CPP 5.4-5.5
Quiz 23
C++ Files
EmilyDickenson
  Lab 8 - Hangman
1995-1999
Repl.it CPP 26-35
Dec 8   CPP 6.1-6.6 Quiz 24
C++ STL
  Repl.it CPP 36-45
  Final Demos       Lab 9 - Blackjack

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:
Pythonps://www.kenyon.edu/directories/offices-services/ocr/title-ix-vawa/kenyon-policies/title-ix-policy/

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

ADA & Section 504:
Pythonps://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:

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

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

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

ADA & Section 504:

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

Edit | Attach | Watch | Print version | History: r59 < r58 < r57 < r56 < r55 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r59 - 2020-09-24 - JimSkon
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback