David A. Sykes, Ph.D.
Section A: MWF 10:30-11:20 in Olin 220.
MWF 1:30-3:30 P.M.
TR 8:30-9:20 A.M., 2:30-3:30 P.M.
Or by appointment or happenstance.
The main focus of this course is to learn how to write computer programs using the Python 3 programming language. While you are learning Python, you are also learning about the constructs that underly most computer programming languages. You'll also learn how to design algorithms to solve problems, a key step in writing a program. Python is a way to express an algorithm in a way that lets a computer run it.
This is a programming course and not really a computer science course. This is a prerequisite for COSC 350 Data Structures & Algorithms, our first course in computer science.
Computer science is the study of computation—what can be computed and how to compute it. When a computer follows the steps of an algorithm coded in a programming language, the computer is doing computation. After this course you will be able to write programs in Python and be a better problem solver.
Using Python 3 to Solve Problems Using a Computer, 2nd edition by David Sykes and Dave Toth, Linus Learning, ©2020, ISBN 978-1-60797-910-4.
Most homework assignments, projects, and tests will be completed in Mimir. You will access Mimir Classroom through Moodle.
You need an account at Piazza. Accounts are free. Most communication outside of class will be done using our Piazza Q&A page.
The COSC 235A Moodle course page will have a link to Mimir and to Piazza. Scores for homework, exams, and projects will be recorded in Moodle. The cumulative grade shown in Moodle should reflect your final weighted score. If you notice a problem, please let me know and I will try to correct it.
We will use Zoom for class meetings. Portions of class meetings will be recorded and then be made available on the web. Note: It’s best to install the app on your computer and/or mobile device instead of using a browser.
The same meeting ID and password will be used for each class meeting all semester.
You need to install Python 3.8 on the computer you will use for assignments and projects this semester. The computer app is free.
Your grade for the course will be based on a weighted average of scores for quizzes, programming projects, and a paper/presentation. The usual grading scale applies: 93–100: A, 90–92: A-, 87–89: B+, 83–86: B, 80–82: B-, 77–79: C+, 73–76: C, 70–72: C-, 60–69: D, 0–59: F.
A final average will be calculated using two methods based on the weightings shown in the table. The higher of the two values will be mapped to a letter grade. Under Method #2, neither homework scores nor exam scores factor into the calculation.
Component | Weight | |
---|---|---|
Method #1 | Method #2 | |
Homework | 25% | 0% |
Projects | 30% | 30% |
Exams | 30% | 0% |
Final exam | 15% | 70% |
TOTAL | 100% | 100% |
Homework assignments help you to prepare for class and will usually consist of some reading in the textbook and some exercises (to be completed in Mimir). Homework is due before the start of the class for which it was assigned. Deadlines are enforced by Mimir.
Homework is graded. Partial credit will seldom be awarded for incorrect answers to homework problems. If you are struggling with a homework problem, post a question about it at Piazza. You are allowed to use any resources you find useful for completing homework assignments, including consulting other students in the class.
You will take two exams during the semester. The first will be administered after we cover Chapter 12. The second will be administered after we cover Chapter 19.
All exams will be given online (in Mimir). You may use your notes while you are taking the exam, but you may not use any other resources, including web resources and assistance from other people. Exams will be timed. You may select your start time, but you must complete the exam in the time allotted.
Projects play an important role in this course. Each of the projects will give you the opportunity to write a Python program that utilizes what you’ve learned so far. It is important that you start coding right after a project is assigned so you can get help if you have trouble getting started or fixing bugs.
The final exam will assess how well you reached the objectives for the course. The final exam will be given online (Mimir) and will have a time limit.
You may use the textbook and your notes from this class while taking the final exam. You may not use any other resources, including other people.
This class will run in accordance with a Blended Synchronous (Flipped Classroom). You will be expected to prepare for a class meeting by performing a variety of tasks, including:
You will be in one of three groups: A, B, or C. Groups A and B will attend class in-person one day a week and attend class remotely one day a week. Students in Group C will work fully remotely. Students in all groups should work synchronously unless there are extenuating circumstances.
During class meetings, in-person and remote students will work together in small teams to solve problems. That way in-person students can grab my attention to address issues.
Social distancing allows only half of the students to be in our classroom at one time. The first day of class will be completely remote. On the first day we will determine whether you are in Group A or Group B. Group C has already been set up. Some of you might join Group C temporarily if necessary. Note: I might revise group assignments during the semester.
Students in Group A will attend “in person” on Wednesday of the first week of classes and every other class meeting after that. Students in Group B will attend “in person” on Wednesday of the first week of classes and every other class meeting after that. The class on November 20, the Friday before Thanksgiving break, will be remote only. Check out the calendar.
We will use Zoom to support remote access. The links for class meetings and for office hours will be available in Piazza and Moodle. Portions of every class meeting will be recorded and made available online. The videos for a class meeting will be available in a Piazza post for that class.
Wearing a mask covering nose and mouth in the classroom is mandatory. A facemask is not a substitute for social distancing. Do not modify the seating arrangement in the classroom.
Please evaluate your own health regularly. Do not attend class or other on-campus events if you are not feeing well. Seek appropriate medical attention for treatment of illness. A doctor's note concerning absences is not required.
You are expected to attend class sessions either in-person or remotely. The General Policy Regarding Attendance in the Wofford College Student Handbook makes you responsible for catching up on missed classes.
Class participation and active learning are important aspects of this class, so your engagement is critical to your success. However, I understand that sometimes you must miss examinations or other academic obligations affecting your grades because of illness, personal crises, and other emergencies. As long as such absences are not excessive (beyond two weeks of classes), I will work with you as best I can to help you succeed in the course. Contact me as soon as possible when such absences arise so we can make arrangements to get you caught up. This policy will not apply in the case on non-emergency absences.
If you will miss class on an “in person” day,
please post without any details (anonymously if you prefer) a follow-up
message to my Piazza post about the class
and tag your post with
open-seat
so that a student in the
other group can occupy your seat in the classroom.
If you are in the other group and would like that seat
then be the first to post in Piazza a claim for it.
If you will miss a class on a “remote” day, then let me know as soon as you can.
The final exam period is scheduled for 9:00-noon on Wednesday, December 9. You will take the final exam online in Mimir. You must complete the exam in the time allotted.
When attending class in person or remotely, you should dedicate your full attention to class activities. When attending in person, take notes and keep your laptop and other devices put away until we need them. When attending remotely, keep your video on and take notes. Give a holler if you have a question.
You must meet project deadlines. To submit a project late, you must contact me at least a day before the deadline to get an extension. Let me know how much more time you need. I will still expect you to submit the work you have completed so far even if you receive an extension.
Note: Any code you submit that contains syntax errors will receive a score of zero.
Post questions and comments about this course at Piazza. Feel free to respond to a question or to edit a response to a question. We are all learning together.
All questions about the course, including about projects, must be posted at the Piazza Q&A page. If you send me a question via email or via private post that should be posted publicly at Piazza, my reply will direct you to post your question publicly.
Do not post working code at Piazza. Do not include in a response either “fixed” code or a detailed description of how to change code to get it to work. It is okay to post non-working code.
I usually respond to email messages sent Sunday through Thursday within 24 hours—longer when sent on a Friday or a Saturday. I usually respond much sooner to Piazza posts since I have the Piazza app on my phone and receive notifications.
You can send me email messages for private matters, such as letting me know you will be absent or that you'd like to schedule a meeting. However, I prefer that you post a private message via Piazza.
Note: Anonymous Piazza posts are anonymous to classmates but not to me.
The Honor Code requires faculty, staff, and students to maintain a high standard of individual honor and integrity. Work represented as your own must be your own.
I encourage you to collaborate with others in the class—that is, help or get help from others. However, you may not write code for another student or provide code to copy. Doing any of these things is a violation Honor Code.
What is the distinction between collaboration and cheating?
During collaboration,
Ultimately, you must implement a solution to the problem yourself.
For some projects, you might be allowed to work with other students in the class. In this case, you are allowed to share all your work with your teammates. However, you are expected to do all of the work together. One student should not work without the others contributing.
Don’t cheat because you are up against a deadline. Start each assignment as soon as it is given. If you run into a glitch:
Mimir has extensive capabilities for detecting plagiarized Python code. When completing a project or a coding problem on an exam, don’t copy another student’s code or allow another to copy yours.
If you need accommodations, go to the Student tab in myWofford and investigate the Request Accommodations channel. I’ll make every effort to work with you.
The schedule below is based on chapters in the textbook. We will cover the chapters in order. If we can move faster, we will.
Week | Topics | Chapter |
---|---|---|
31 AUG |
Introduction
Problem Solving and Patterns
Getting Python
Syntax Highlighting
|
1
2
3
4
|
07 SEP |
Elementary Data Types
Variables and Assignment
Input and output
|
5
6
7
|
14 SEP |
Functions, Objects, Statements, and Expressions
The Python Standard Library
|
8
9
|
21 SEP |
Strings
|
10
|
28 SEP |
Lists
Program Errors
|
11
12
|
05 OCT |
Creating Functions
|
13
|
12 OCT |
Conditional Statements
|
14
|
19 OCT |
Definite Loops
Indefinite Loops
|
15
16
|
26 OCT |
File Input and Output (I/O)
|
17
|
02 NOV |
Dictionaries and Sets
|
18
|
09 NOV |
Classes
|
19
|
16 NOV |
Building applications—Part 1
|
—
|
23 NOV | Thanksgiving Break | |
30 NOV |
Building Applications—Part 2
Wrap-Up
|
—
20
|
07 DEC | Final exam: Wednesday, December 9, 9:00-noon. |