Syllabus for CS149 Fall 2023
Dr. Sharon Simmons¶
Class Times¶
Section 12: 9:35am - 10:50am
Section 13: 11:10am - 12:25pm
Location: King Hall 260 and EnGeo 2204
First day of classes: meet in EnGeo 2204
Instructor Info¶
Dr. Sharon Simmons, Professor and Academic Unit Head
Email: simmonsj@jmu.edu
include CS149 in the subject
The best way to contact me is by email (not via Canvas).
Office Hours: Tu/Th 12:45–2:45pm in King Hall 221 or by appointment
Please see more information for options.
Objectives and Expectations¶
Official course description: Fundamental problem-solving techniques using a modern programming language. Topics include variables, input/output, decisions, loops, functions, arrays, and objects. Students learn about algorithm development, testing strategies, and software tools. 3 credits
By the end of this course, you should be able to:
- Explain fundamental programming concepts (e.g, variables, methods, decisions, loops, arrays, objects) using appropriate terminology.
- Describe basic elements of high-level programming languages, including expressions, statements, functions, modules, and libraries.
- Read and interpret software specifications and write source code from them.
- Use automated software tools and processes to test your programs thoroughly.
- Distinguish appropriate collaboration from cheating on assignments and exams.
- Evaluate your own work for compliance with requirements and style guidelines.
- Develop correct and efficient algorithms to solve problems using computation.
Required Textbook¶
Miller, Bailey et al. (Aug 2022). Programming in Python 3.
https://www.zybooks.com/catalog/programming-in-python-3/
Getting the book
We have customized this zyBook for CS 149. Please do the following to purchase:
- Create an account on https://learn.zybooks.com using your dukes email.
- Enter the zyBook code:
JMUCS149Fall2023
. - Select
Simmons
as your course section - Your subscription will cost $64 and last until December 30, 2023.
Classrooms and laptops¶
There are two rooms reserved for this class: King Hall 260 and EnGeo2204. EnGeo2204 is a computer lab and plan to meet in this room on Thursdays. King Hall 260 is a classroom without computers and plan to meet in this room on Tuesdays. On Tuesdays, you will need a laptop in King Hall 260. If you have a laptop, please bring to class. You will be instructed to install needed software on your laptop. If you do not own a laptop, please contact me via email.
On some days the room we meet in may change. This will be announced on canvas and on the CS149 home page.
Grading Criteria¶
You are responsible for all material discussed in lecture, and the discussion section and posted on the class web page, including announcements, deadlines, policies, etc.
Your final course grade will be determined according to the following percentages:
Item | Subitems | Percentage |
---|---|---|
Homework/Programming assignments(PA) | 7 Homework Labs and 3 PAs | 15% |
Participation | Reading assignments and inclass activities | 15% |
Quizzes | Weekly on Thursday | 45% |
Final Exam 3 | 25% |
Important Notes
1. You must achieve a B or better grade to continue on to CS 159.
2. Adding and Dropping the Course:
Students are responsible for adding and dropping courses. Please consult the appropriate academic calendar for the exact deadlines. I will not request a "WP" or "WF" grades to students requesting a drop after the deadline except in extraordinary circumstances.
Participation
This portion of your grade will be based on two parts: reading exercises that are done outside of class and inclass activities such as small programming challenages or group problem solving. All of these will help prepare you the homework, programming assignments, and quizzes. Attendance will be taken every day
Homeworks and Programming Assigments
These will be Python programs you are submitting from Canvas that connects the submission with GradeScope. Each of these will be due on the indicated Wednesday by 11pm.
Late Work Policy
Deadlines exist so that we can discuss solutions in class. Therefore, late work will not be accepted without special permission. I am willing to work with you if your circumstances suddenly change. Please don't wait until the night before to get started!
Quizzes
Quiz | Chapters | Opportunity 1 | Opportunity 2 |
---|---|---|---|
1 | 1 - 2 | Sept 07 | Sept 14 |
2 | 3 - 4 | Sept 21 | Sept 28 |
3 | 5 - 6 | Oct 05 | Oct 12 |
4 | 7 - 8 | Oct 26 | Nov 02 |
5 | 9 - 10 | Nov 09 | Nov 16 |
6 | 11 - 12 | Nov 30 | Dec 07 |
Each quiz is 25 minutes long, taken in-class and will focus on two chapters of the textbook and the associated work during those two weeks (homeworks, in-class assignments, etc.) You will have two opportunities for each quiz grade. The quizzes will vary from one another and one is not harder than the other but may have a different format. Your score for the quiz will be whichever is higher.
Final Exam
This course is inherently cumulative; each week builds on the prior weeks. We will have a two-hour written and programming exam during finals. The content and format of the final exam will be similar to the weekly quizzes.
If you must be absent during an quiz for a legitimate reason, you must contact me at least one week beforehand to make special arrangements. Failure to make prior arrangements for a missed quiz will result in a zero grade. The instructor reserves the right to give students who do not earn 60% of the points on the final exam no higher than a C for the course. Except in extraordinary situations, you will not be excused from exams. Your instructor will be the sole arbiter of whether a situation qualifies as extraordinary. Hence, you should behave as if you will not be excused from exams for any reason.
Grades
Letter grades will be assigned on the scale A=90-100, B=80-89, C=70-79, D=60-69, F=0-59, with potential minor adjustments after considering the overall performance of the class and actual distribution of numeric scores. I will use “+” and “-” grades at my discretion.
If you believe I have made an error while grading your work or calculating your final score, please bring it to my attention during office hours. If I determine that there has been a simple mistake, I will fix it.
If you believe a quiz question or assignment has been graded unfairly, you must submit a written formal request for a regrade. Such requests must be submitted within one week of when the assignment in question is returned to you. Any coursework submitted for reconsideration may be regraded in its entirety
Attendance and Participation¶
Attendance is required. I strongly recommend you attend every class session and participate fully in order to derive the maximum benefit of this course.
Classroom Conduct¶
Please silence your cell phone while class is in session. If you have a laptop or tablet, you are encouraged to bring it to class and use it to work along with programming examples and exercises. Mute the volume to avoid unintended interruptions, and do not use any electronic devices for activities that may distract other students. You will be asked to leave the class if repeated interruptions occur. Repeated violations of this policy may result in disciplinary action or a grade penalty in the course.
Keeping Current¶
I strongly encourage you to check the main website, canvas announcements, and the Piazza web forum regularly for important announcements (usually regarding programming projects). You may also use the Piazza forum to ask general questions of interest to the class as a whole (e.g., administrative issues or project clarification questions) as well as to offer each other general advice on class assignments. However, do not post any information that would violate the university academic integrity policy. For example, in this class, do not post any software you have written for an assignment. If you are unsure about this, please email me for approval before you post.
Software submissions and policies: homeworks and programming assignments¶
Rule of Thumb: Programming assissments always take longer than expected, even for the most experienced software developer. There are numerous things that can happen that may be out of your control. Always start as early as possible to meet your deadline.
Working with classmates You are permitted to discuss homeworks and programming assignments. You can work together as in discussion approaches to solve the problems. You can not explicitly share your solutions and you can not copy one another. You must complete and submit your own work.
Testing and submission Work must be submitted electronically following the instructions given in class and on the website. Assignments may not be submitted by any other means (e.g., do not email your projects to me unless I request that). It is your responsibility to test your program and verify that it works properly before submitting it.
You are responsible for developing your own techniques for testing your projects before submitting it.I will grade your assignment based on test cases not provided to you in advance. Because grading may be done automatically, you must follow the project specification exactly. Deadline All assignments are due at 23:00 (11:00pm) on Wednesday as indicated on the assignment unless noted otherwise.
Project extensions will not necessarily be granted due to server congestion, system problems, network problems, power outages, etc., so do not wait to submit a program until the night it is due. No consideration in grading will be made for errors made in transferring files or submitting the wrong version of your project. Having a working, non-submitted version will not count; only submitted code will be be counted.
Your code will be graded on a combination of correctness, completeness, documentation, and code style Any "hard coding" in a project assignment will result in a score of zero for that assignment, and is considered a bad-faith effort. Hard coding refers to attempting to make a program appear as if it works correctly, when in fact it does not. One example of hard coding would be printing the desired output instead of computing it. If you have any questions as to what constitutes hard coding for a particular assignment, be sure to ask ahead of time.
Generative AI¶
You are encouraged to use AI technology in ways that support your learning. However, do not ask ChatGPT or similar tools to do your homework for you. The use of AI is strictly prohibited during quizzes and exams, so make sure you can program without AI. See the Generative AI in Computing Education Student Guide for examples of permitted use.
Attribution: Acknowledgement of Work Statement¶
A key component of academic integrity is giving credit where credit is due. If you receive assistance, either from another student, an online source, or an AI-enabled tool, you must provide a clear and explicit acknowledgment of that assistance in your submission. To that end, every homework assignment must include a statement describing your process for completing the work. Here is an example illustrating the format that I expect:
"I was able to complete questions one and two with no assistance after reading the zyBook chapter. I got stuck on question three, but TA Jamie talked me through the solution during office hours. My solution for that question is based on her advice. I had no idea how to get started on question four, so I put the prompt into ChatGPT and asked it for an annotated solution. I didn't understand the resulting code, so I talked it over with my friend Xavier. He explained how negative string indexing works, which helped me to understand the code. My final submission for that question is copied from the ChatGPT output."
Any submission without such an acknowledgment statement will receive an automatic zero.
Full credit for homework assignments is conditional on making a good-faith effort to develop the skills necessary to answer each question independently. Submissions like the following would result in a zero on the assignment.
"I was in a hurry so I just copied all of the prompts into ChatGPT and uploaded the resulting code."
"My friend Bill had already completed the assignment and sent me a copy of his solution. I submitted a copy of his code after reading it over and improving some variable names."
Academic Honesty¶
You are expected to comply with the JMU Honor Code as stated in the Student Handbook and available from the Honor Council webiste on all assignments, projects, quizzes, and exams.
Consulting with other students about problems and solutions is not necessarily a violation of the honor code, depending on the particular assignment. All final work turned in for an assignment must be your own unless it is a group project. In particular,you may not share source or binary code on programming assignments unless the project specification explicitly allows it. If you are in doubt about whether something is an honor code violation, please contact me immediately.
If I find evidence of a violation of the honor code, I will bring the matter to the attention of the involved individuals via email and request a face-to-face meeting. As per section IV of the honor code, first time student offenders may agree that a violation has occurred and accept an appropriate penalty by submitting an "Informal Resolution Agreement Form" to the honor council. If the student is not a first-time offender or if there is disagreement about the violation or penalty, the matter will be refered to the honor council under section V of the honor code.
Diversity and Inclusion¶
Learning environments should be built on mutual respect and support a diversity of thoughts, perspectives, experiences, and identities. Please advise me regarding any concerns or personal circumstances (including your name's proper pronunciation, any name or pronouns not reflected on MyMadison, or significant extracurricular commitments) that would be relevant to your full participation in this course.
Your Well-Being¶
As a university student, there may be times when personal stressors interfere with your academic performance and/or negatively impact your daily life. If you or someone you know is experiencing mental health challenges at James Madison University, please connect with the Counseling Center located within the Student Success Center on the 3rd floor. You can learn more about available services by visiting JMU Counseling Center or calling 540-568-6552. These services are free and confidential. Other available support resources to consider include, but are not limited to, the Office of the Dean of Students, the Health Center, and Learning Strategies Instruction.
Disability Accommodations¶
If you need an accommodation based on the impact of a disability, you must contact the Office of Disability Services if you have not previously done so. Disability Services will provide you with an Access Plan letter that will verify your need for services and make recommendations for accommodations to be used in the classroom. Once you have shown me this letter, we will sit down and review the course requirements, your disability characteristics, and your requested accommodations to develop an individualized plan appropriate for this course. I will not make any accommodations without the appropriate documentation, as I am not qualified to diagnose disabilities.
Excused Absences¶
Besides the policies in this syllabus, the University's policies apply during the semester. Various policies that may be relevant appear in theUndergraduate Catalog
Excused absences will be granted at my discretion and only with appropriate documentation.Please notify me during the first week of class regarding potential absenses so we can determine alternative methods to complete the required work.
Inclement Weather¶
In case of inclement weather, we will hold class online via Zoom. A link will be sent via an annoucement in Canvas. Otherwise, this class will operate in accord with JMU's official cancellation policy
Catalog Description¶
CS 149.Introduction to Programming.3 credits.
Fundamental problem-solving techniques using a modern programming language. Topics include variables, input/output, decisions, loops, functions, arrays, and objects. Students learn about algorithm development, testing strategies, and software tools.