David A. Sykes, Ph.D.
Section A: MWF 11:30-12:20 in CCES 109.
MWF 2:00-3:30 P.M.
TR 9:00-10:45 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. (COSC 350 Data Structures & Algorithms is the first real 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 develop algorithms to solve problems and then translate those algorithms to Python so a digital computer can execute the algorithm.
Using Python 3 to Solve Problems Using a Computer, 2nd edition by David Sykes and Dave Toth, Linus Learning, ©2021, ISBN 978-1-60797-910-4. I do not make any money from your purchase of this book.
You need an account for Mimir Classroom. Accounts are free. Most homework assignments, projects, and tests will be completed in Mimir.
You need an account at Piazza. Accounts are free. We’ll be conducting all class-related discussion here this term. The quicker you begin asking questions on Piazza (rather than via emails), the quicker you’ll benefit from the collective knowledge of your classmates and instructors. I encourage you to ask questions when you're struggling to understand a concept—you can even do so anonymously.
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 meeting remotely, sometimes during class meetings and sometimes for office hours. Portions of class meetings will be recorded and then be made available on the web. I encourage you to install the app on your computer and/or mobile device instead of using a web browser. If you have a spare computer monitor, then I recommend your using it to extend the desktop on your laptop computer so you can view the screen being shared while also viewing a separate window on your computer.
The same meeting ID and password will be used for each class meeting all semester.
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 the weightings shown in the table. If at some point we are forced to switch to remote-only learning then the weightings for the tests and the final exam might be revised.
Component | Weight |
---|---|
Homework | 25% |
Projects | 30% |
Tests | 30% |
Final exam | 15% |
TOTAL | 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 usually due two hours 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.
The homework component of the final weighted average is computed using a simple weighted mean of scores: the percentage obtained by dividing the sum of points you earned by the sum of point values for the assignments. For example, let's say there are two assignments, the first worth 15 points and the second worth 25 points. If your score on the first assignment is 9 and your score on the second is 21, then your score for both is (9 + 21) ÷ (15 + 25) = 75%. Note that the result can be different from averaging the percentage scores for the two assignments, ((9 ÷ 15) + (21 ÷ 25)) ÷ 2 = (60% + 84%) ÷ 2 = 72%.
You will take two tests during the semester. The first will be administered after we cover Chapter 12. The second will be administered after we cover Chapter 19.
Tests will be given in Mimir or on paper. You may use an index card containing notes while taking a test on paper. You may use your notes and the textbook while you are taking a test in Mimir, but you may not use any other resources, including web resources, apps on your computer, and assistance from other people. Tests will be timed.
The average of the two test scores will be used in computing the final weighted score.
The best way to learn to code is to write a lot of it. Consequently, 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 projects component of the final weighted average is computed using a simple weighted mean of scores, the same method used for homework.
The final exam will assess how well you reached the objectives for the course. The final exam will be most likely be given online (Mimir) and will have a time limit.
You may use your index card, the textbook, and your notes from this class while taking the final exam. You may not use any other resources, including other people.
We are fortunate to be meeting in a classroom that can accommodate all of us even with appropriate social distancing. Consequently, all of us can attend class meetings in person starting with the second week of classes. The first week classes will meet remotely using Zoom.
Evaluate your own health regularly. Do not attend class or other on-campus events if you are not feeling well. Seek appropriate medical attention for treatment of illness. A doctor's note concerning absences is not required.
You are expected to attend class meetings in person if you are well. You must wear a mask covering nose and mouth in the classroom and sit at least six feet from others.
If you are not well, you are expected to attend class meetings remotely via Zoom if you can. The General Policy Regarding Attendance in the Wofford College Student Handbook makes you responsible for catching up on any missed classes.
If necessary, we will move to a synchronous, blended or a synchronous, remote model. Under those models, class meetings will be held in person and/or using Zoom. You will be expected to be in each of those Zoom meetings.
Bring a charged laptop to each class meeting if you can. We will often work in-class exercises using a laptop. However, I will expect your laptop to be closed unless I direct you to use it. Take notes on paper. Your open laptop is usually a distraction not only for you, but for other students near you.
If you are remote and using your laptop for a Zoom connection, try to get access to a second monitor. That will facilitate your being able to see what is being done via screen sharing and what you will do as part of an in-class exercise.
I will make every effort to keep the office hours listed at the top of this syllabus. If I must cancel or move office hours, I will announce the change in Piazza.
You do not need to make an appointment to meet with me during office hours. Just drop in via Zoom. The same meeting ID and password will be used for each instance of office hours. (They are different from the ones used for class meetings.) I am usually on campus during office hours and you can meet with me in my office as long as we observe social distancing. I will look at your computer screen by either connecting your computer to my external monitor or by having you share your screen using Zoom.
I appreciate your meeting me during my office hours since it is time I have set aside and cannot easily use for another purpose. However, I realize that you might have conflicts. You are welcome to contact me to set up an appointment. If you do, list some times that you are available. Please do not ask me when I am available. Or you are welcome to drop by my office if you think I might be there.
You must meet homework and project deadlines. You may be able to submit a project late if both of these conditions are met:
Post questions and comments about this course on the Q&A page at Piazza. You are encouraged to respond to a question or to edit a response to a question. We are all learning together. If you send me a question via email or via private Piazza 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. I will usually respond within 48 hours to messages 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. However, keep in mind that teaching is my job and not my whole life.
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.
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?
Collaboration
Ultimately, you must implement a solution to the problem yourself.
CheatingFor some projects, you might be allowed to work with other students in the class as a part of a team. 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 present and 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:
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. Take care of this during the first week of classes and before the first quiz.
The schedule below is based on chapters in the textbook. We will cover the chapters in order. If we can move faster, we will. The first test will be given after we complete Chapter 12. The second test will be given after we complete Chapter 19.
Week | Topics | Chapter |
---|---|---|
04 JAN |
Introduction
Problem Solving and Patterns
Syntax Highlighting
|
1
2
4
|
11 JAN |
Elementary Data Types
Variables and Assignment
Input and output
|
5
6
7
|
18 JAN |
Functions, Objects, Statements, and Expressions
The Python Standard Library
|
8
9
|
25 JAN |
Strings
|
10
|
01 FEB |
Lists
Program Errors
|
11
12
|
08 FEB |
Creating Functions
|
13
|
15 FEB |
Conditional Statements
|
14
|
22 FEB |
Definite Loops
Indefinite Loops
|
15
16
|
01 MAR |
File Input and Output (I/O)
|
17
|
08 MAR |
Dictionaries and Sets
|
18
|
15 MAR |
Classes
|
19
|
22 MAR |
Building applications—Part 1
|
—
|
29 MAR |
Building Applications—Part 2
Wrap-Up
|
—
20
|
05 APR | Final exam: Wednesday, April 7, 2:00–5:00 P.M. |