Department of Mathematics and Statistics
James Skon, Chalmers Library 428, 740-427-5369
- Section 1: Pierce 09, Tuesday, Thursday 9:40-11:00
- Section 2: Chalmers 300 Tuesday, Thursday 1:10-2:30
- Office hours:
- Tuesday-Thursday 8-9am, 12-1am (Chalmers 428). Book Meeting LINK
- Monday-Wednesday 10-12 pm (Location TBA) Book Meeting LINK
- Please sign up for an appointment here: Link
- Walk-ins are welcome, but people with appointments are given priority.
- I also plan on eating in the cafeteria most Tuesdays and Thursdays. Let me know if you want to eat with me!
Tutoring (MSSC)
Tutors:
- Rose Winston
Sunday 7:00-8:30
Tuesday 8:30-10:00 - Godwin Idowu
Tuesday: 7 PM – 8:30 PM
Thursday: 8:30 PM – 10 PM
Course Overview
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.
- An introduction to computer science and computing systems
- An introduction to algorithm development and problem solvingDemos
- An introduction to programming with PythonDemos
- An introduction to C++
- Two daily classes Tuesday and Thursday.
- POGIL group activities during most classes
- Regular individual lab assignments
- Computer history essays weekly
Course Objectives
- Learn basic principles and structures of computer programming.
- Provide an understanding of the role computation can play in solving problems in various disciplines.
- 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/Online resources
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 (KenyonCOMP118Fall24) This is an interactive book. You must register, and complete the exercises in the assigned readings. Follow this link and register using your Kenyon email. Use “KenyonCOMP118Fall24” as the course name. You will read the text as assigned in the calendar below, and I encourage you to do the included problems in the text. I will give you a grade
- C++ for Python Programmers (KenyonCOMP118Fall24CPP) This is an interactive book. You must register, and complete the exercises in the assigned readings. Follow this link and register using your Kenyon email. Use “KenyonCOMP118Fall24CPP” as the course name. As in the Python book, you will be assigned readings.
- CodeBoard.io This is an the environment for programming Python and C++. You can complete your assignments here Link. You should go to the site and create an account using your Kenyon College email address.
- CodeLab This is an online platform that gives you problems to solve. You will be assigned problems on a regular basis. You can keep trying until you get the problem right with no penality. You must sign up with your Kenyon email, then click the “+ Add A Course” button. You then add an access code. The two access codes for this class are: “TCAB-31831-MKBW-62” (Python) and “TCAB-31850-QCPA-62” (C++).
- Trinket.io This is an IDE for programming in Pythion with graphics. You should sign up before Lab 3 with your Kenyon email.
Alternate Python IDEs
- https://www.onlinegdb.com
- https://www.online-python.com/
- https://www.programiz.com/python-programming/online-compiler/
- https://www.jdoodle.com/python3-programming-online/
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:
- 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.
- 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 CodeLab online learning 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.
- Reading Assignments. These are readings and assocaited activities, which give each student familiarity with important course concepts outside of class.
- History essays – these small writing assignments, about one a week, give each learner the change to explore computer science in its larger historical context. These are shared in class on they day they are due.
- Instructional Presentation and discussion. Occasionally the instructor will give a presentation related to the course topics. These will normally include discussion, and sometime be interleaved with in-class hands on programming activities.
- Pair Programming: This course may at times use a methodology called pair programming to enhance learning. This collaborative process is structured to improve learning as well as outcomes.
Group generator: https://www.randomlists.com/team-generator
Course Attendance
Given the methods of instruction, especially the group work and the hands on work, attendance in class meetings with full engagement is essential. Students are expected to attend all classes unless they have a legitimate excuse such as illness, participation in official collegiate athletic activities. In the case of any absence students are expected to contact the instructor prior to the absence. In the case of such excused absences the student will normally be required to complete course activities they missed in class. According to the Math Department’s attendance policy any student who missed six class meetings will be expelled from the course. Missing class will result in no credit that for day’s in-class activities. After one unexcused absence, each unexcused absence will lower your overall course grade by (n-1)*1% where n is the number of unexcused absence
Python 3 and C++
In this course we will be learning the Python 3 and C++ programming languages. We will be using an online programming environment CodeBoard. 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 (Integrated Development Environment) call Spyder by following these instructions: PythonInstall. Contact the instructor if you are interested in installing C++ programming environment.
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 course, and then use 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/Facilitator
- Process Analyst
- Quality Control
Teams will normally have 3 people. On teams of less than three students some will have 2 roles
POGIL Process Analyst Report – The Process Analyst is encouraged to fill this out to give feedback to the instructor.
POGIL Feedback – complete this after every activity
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 in class assignments are exempt from this, as they are intended to be done together.)
Academic Honesty and using code you did not write: Turning 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.
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)., but they will be accepted without penalty until noon on the class when they will be discussed. Late submissions will not be accepted on these assignments.
Grading
| Category | % | Collaboration allowed? | Notes |
| History Essays | 5% | No | Due by midnight the day before. |
| POGIL Activities | 10% | Yes | You must be in class to get credit for these, except in cases of excused absence. |
| Individual Labs | 35% | No | Due by midnight on the day due. |
| CodeLab | 15% | No | These are problems in the online learning tool CodeLab. Due by noon on the day due. You will get 100% for completing 80% of the problems assigned. |
| Quizzes | 15% | 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-10 minutes of the class. You cannot make up quizzes, but the lowest 7 quiz scores will be dropped. Each quiz will include questions from the previous class as well as on the content of the reading assignment for that day. |
| Midterm(5%) Final Exam(15%) |
20% | No | Taken in class during the final exam period. 2 hours in length. |
| TOTAL | 100% |
Late Assignment policy
Getting work done is essential to success in this course. Late assignments are problematic, they create a backlog of work for the student, as well as a grading backlog for the professor. Neither of these are optimal. Late assignment will be allowed, but ONLY when application has been made in advance. The following three options are permissible. The form for requesting a extention is here: Request Form.
- One week extension. This is for major conflicts with academic or other college responsibilities are known of in advance, and can be planned for. For example a major assignment in another class (or classes) is overlapping with this assignment, and you believe more time will with needed. This request MUST be made at least one week before the assignment is due.
- Three day extension. This is for conflicts or issues with course work or responsibilities that emerge while the assignmebnt is being worked on. For example perhaps you hit a roadblock on the assignment, or you are srtruggle to keep up with all your courses due to somethinng that was not known in advance. Appplications MUST be make at least three days before the assignment is due.
- 24 hour extension. This is for when you are just struggling to get it right, but almost there. This application can be made up to the due date/time.
Schedule
Create groups: Section 1, Section 2
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 IX
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/
Tutoring (MSSC)
[Details to come with hours and location]
