Syllabus
Table of Contents
Course Info
As an introductory course, COSC 111 is intended to demonstrate the effectiveness of problem-solving as a necessary component for programming and design. As such, students can expect to learn the steps required to successfully solve a problem, as well as appreciate the effectiveness of a high-level language as a tool in the implementation of a solution. In this course, students will learn to program in the Python programming language. At the end of this course, students will have strong knowledge of algorithm development as well as some familiarity with basic programming terminology.
This is a 4 credit course with no prerequisites. We will have both lectures and homework/projects every week. You should expect to spend several hours each week working on homework and projects outside of class.
Learning outcomes
At the end of the course, the student should be able to:
- Identify the pillars of computational thinking (CT) approaches
- Develop a standard algorithm, and illustrate it in pseudocode to solve any given problem
- Explain, differentiate, and apply the concepts of semantics, syntax, and abstraction in programming
- Practice the programming constructs sequence, selection, and iteration as part of programming assignments
- Identify and fix errors in a program
- Use built-in functions and import modules when a program requires
- Design and write their own functions and modules
- Apply basic data structures (list, tuple, and dictionary) to solve problems
Course materials
For all labs, homeworks, and projects, we will be submitting code assignments using EdStem (instructions in the first lab/homework that uses it). We’ll also use Slido for in-class interactions and Q&A. We’ll be using Canvas for grades.
There’s no required textbook for this course, but if you’d like an additional resource, there’s a free online textbook called Foundations of Python Programming that covers most of the material of this course.
Course Policies
These are how I expect you to give yourself and your classmates a functional, successful learning environment.
Attendance
Each class will have a lot of interaction with me, with the TAs, with the other students, and with the computer. In order to get the most out of it, you need to be present for classes with a computer. If for any reason you cannot attend class, please let me know as soon as possible. Absences will be handled on a case by case basis; please note that attendance is part of your grade.
Everyone will check in each day on Slido. You can open this on your phone or on your computer.
Academic Honesty
You are encouraged to get help from me, the TAs, the Internet, or other students, but you may not copy code directly from somewhere else. Each student must submit their homework, projects, and labs independently and elaborate on who they collaborated with and how. You may get general help from other students, but you may not discuss exact code or specific solutions. Exams and quizzes must be done independently.
The course staff will use plagiarism detection tools when grading assignments. The first time an assignment is found to be plagiarized, the assignment grade will be zero-ed out for all students with matching code.
Further incidents will be dealt with on a case-by-case basis, with disciplinary actions up to and including a grade of “F” for the course and a letter of fact in the student’s record.
If you are tempted to copy code from anywhere, please reach out to me first. We’ll figure something out! Also remember all the many ways to [get help] (#ways-to-get-help).
Technology
In Class
We will be holding class on campus in the classroom and on Zoom for the hybrid section. Throughout the course, we will often be writing code in class, so it is important that you have a computer accessible during class. You’ll also need a computer for the weekly quizzes.
Please do your best to refrain from using your computer or cell phone for non-class purposes during class. The classes will be much more enjoyable and productive for everyone if we are all fully engaged. We have a lot of material to get through and only one semester to cover it all, so let’s make the most of that precious time.
Out of Class
You will need access to a web browser (e.g. Chrome, Firefox, Safari, etc.) - preferably on a computer - and a high-speed internet connection.
Please check your @morgan.edu email and the course website daily. I will share materials and make course announcements through these channels. Assignments will be assigned and submitted through EdStem. We will set up an account with your @morgan.edu email address in one of the first labs of the class that you will use for the rest of the semester.
If you need any help with any of these out of class requirements, please ask! We’ll figure out a solution together.
Accessibility and Inclusion
I believe that every one of you belongs in this class. I want to work with you to help you succeed. If the format of the class is not working for you, please reach out to me and we can find a way to make things work for you. If you need specific accommodations, contact the Office of Student Disability Support Services (SDSS) to register. See morgan.edu/SDSS for more details.
I also want to hear from every one of you. I want you to ask questions when you don’t understand or tell me when you’ve got it already. If you ever feel like you have a question that’s “too silly/dumb to ask,” it’s not. There are other students who probably are having the same problem.
Likewise, I expect all of you to allow your classmates’ voices to be heard. When somebody is speaking, the whole class should be hands-down paying attention, whether it’s asking a question or answering one.
Ways to get help
- Ask me in class
- Ask the TAs in class
- Come to office hours
- Ask your peers in class
- Send me an email – I will always respond within 24 hours.
- Search the Internet (NOT for the exact answer, just to get you unstuck)
- Come to office hours
- Look at past assignments
- Look at the course materials
- Ask on EdStem
- Come to office hours
- Did I mention you should come to office hours?
If you feel uncomfortable asking a question with your name attached, I’ve set up an anonymous form. You can also provide feedback to the course staff via this form. I’ll monitor it throughout the semester and will cover answers to any questions in class.
Assignments and Grading
Problem-solving and programming are skills, just like playing a sport or musical instrument. The only way to get better is to practice. A lot. To that end, the course is structured to give lots of small, frequent practice as opposed to a few high-stakes exams or projects.
Late policy
Assignment due dates will be visible on the course website and on EdStem. All assignments will be due at 11:59 p.m. ET on the due date. A lot of the content we will cover builds upon previous content. As such, you need to make sure you’re keeping up with the course, including turning work in on time. Each day an assignment is turned in late will result in a 10% penalty. No work will be accepted more than three days late because I want to make sure that you understand the topics we’ve covered before moving on.
This means that any homework/project assignment that is turned in late will only be subject to the following adjustments:
- 1 Day Late: -10%
- 2 Days Late: -20%
- 3 Days Late: -30%
Labs
Labs are designed to help you explore a topic, so they will be graded for completeness not correctness. I want you to feel comfortable making mistakes in class. Lab assignments will be started in class and due 5 days later. For example, if the lab is started in class on Friday, it will be due Tuesday at 11:59 p.m. ET.
Homeworks and Projects
Homeworks will focus more on practicing a specific skill or principle, and may consist of several small questions/problems. Projects will consist of one larger problem where you’ll need to apply many different concepts you’ve learned in the class together for a complete solution. Homework and projects will be graded on correctness to demonstrate that you can apply the skills we’ve learned in class.
Homework and project assignments will be due at minimum 1 week after they are assigned. Projects will typically be larger in scope and more difficult, and accordingly you will have more time to complete these assignments.
Quizzes
There will be a short (~10 minutes) quiz at the last hour of lecture each week. these quizzes will cover what we talked about in class the week prior. they will be administered through edstem and will include multiple-choice, true/false, and short answer questions (e.g. writing a block of code or predicting output).
Quizzes are graded for correctness and must be done independently. Weeks that have exams will not have quizzes. Your lowest quiz grade will be dropped at the end of the semester.
Exams
There will be two exams in this class. The midterm exam will be during the week of October 14 and cover everything that we’ve done through that point. The final exam will cover everything after the midterm up until the end of the course.
Grading Breakdown
Final grades for the course will be calculated based on the weights below.
Labs | 10% |
Quizzes | 10% |
Midterm | 15% |
HW & Projects | 40% |
Final | 15% |
Attendance | 10% |
Final grades will be convert to letter grades according to this scale.
A | 90 - 100% |
B | 80 - 89% |
C | 70 - 79% |
D | 60 - 69% |
F | <59% |
n/a or None | 0 |