Skip to content

Syllabus

PDF Version

CS 149: Introduction to Programming
James Madison University | Fall 2025 | Dr. Simmons

Catalog 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.

Prerequisite: MATH 155 College Algebra or sufficient score on the Mathematics Placement Exam.

Class Times

  • Section 12: T/R 3:55–5:10pm

Locations:

EnGeo 2209 (Classroom) – Tuesday
EnGeo
EnGeo 2204 (Computer Lab) – Thursday
EnGeo

Instructor Info

Dr. Sharon Simmons, Professor of Computer Science
Head shot

Email: simmonsj@jmu.edu
The best way to contact me is by email, not via Canvas.

Office Hours: Wednesday 12:30pm–2:30pm and Tu/Th 2:15pm–3:15pm and 5:15pm = 6:00pm in King Hall 105. Online option is available.
* Wednesday zoom office hours *

Course Objectives

By the end of CS 149, you should be able to:

  • Explain fundamental programming concepts (e.g., variables, conditions, loops, classes, objects) using correct terminology.
  • Describe basic elements of high-level programming languages (e.g., expressions, statements, functions, modules, 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.

Teaching Methods

Spoiler alert! If you're hoping for a traditional lecture day after day, you signed up for the wrong course. Research has shown that active learning methods are more effective than passive methods like taking notes. This course uses a mix of Process Oriented Guided Inquiry Learning, Peer Instruction, and Interactive Lecture. Here is what a typical week looks like:

  • Monday: Complete the reading
  • Tuesday: Interactive lecture, additional examples and live demos, practice problems, hints on the homework. Introduce this week's topic. Ask questions about what you don't fully understand.
  • Wednesday: Homework due tonight, review material for quiz
  • Thursday: Discuss the homework solutions, take this week's quiz, mini-lecture on next week's topic. Group activity or hands-on lab that introduces the key concepts from the chapter and homework. Ask questions about what you don't fully understand.
  • Friday: Start reading the next week's material / working on the next homework, figure out what you need to learn.

Weekend Hours

I generally do not respond to emails between Friday at 5:00pm and Monday at 9:00am. TAs are available on Sunday to answer questions and help you learn. You are welcome to email me over the weekend, but I will mostly likely respond on Monday.

Laptop Classroom

You will need a laptop on some class days. If you don't have a laptop, the CS department can loan you one for the semester. Our classroom has a few spare laptops in case you don't bring your own to class. The only software you will need to install is Thonny (https://thonny.org/).

Technologies Used

All instructional materials including handouts, slides, videos, and sample code will be on the course website (https://w3.cs.jmu.edu/simmonsj/cs149/).
JMU CS logo

I will use Canvas (https://canvas.jmu.edu/) for posting announcements, sharing non-public files, and communicating grades. You will need to use Canvas for submitting work.
Canvas logo

You will use Gradescope (https://gradescope.com/) for grading homework, quizzes, exams. Gradescope provides automated feedback to help you improve your work. In the end, I will review and grade your work manually.
Gradescope logo

Required Textbook

Our textbook is provided by Runestone Academy, which provides free online textbooks. Our textbook is Python for Everybody. Runestone logo

Getting the Book

  • Register for an account on https://runestone.academy/runestone/default/user/register/ You must use your Dukes email to be connected to canvas and receive credit towards your reading grade.
  • Enter jmucs149-fa25-simmonsj for the course name

Culture of Learning

Please help us maintain a collaborative environment that encourages questions, provides opportunities for significant learning, and actively involves everyone in discussions.

Professional Conduct

The ACM Code of Ethics (https://www.acm.org/code-of-ethics) forbids discrimination and harassment of all types. If you believe someone is violating these principles (e.g., by making inappropriate or demeaning remarks), it is your responsibility to take action by informing me or, if you feel comfortable doing so, addressing the individual directly. I will do my best to preserve your confidentiality when addressing the issue.

Inclusive Excellence

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.

Academic Honesty

Don't Cheat

Students who violate the Honor Code (https://www.jmu.edu/honorcode/code.shtml) will receive a reduced or failing grade in the course. Other penalties may be imposed, and all violations will be reported to the Honor Council. Automated tools may be used on any assignment, at any time, to detect inappropriate collaboration and the originality of submissions.

Generative AI

You may use AI technology in general 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 inappropriate use.

In this course, programming assignments are primarily an instructional mechanism, not an assessment mechanism. Nonetheless, programming assignments will be graded and, in fact, will be graded strictly. There are two reasons for this. First, the grades will provide you with an assessment of how well you know the material. Second, experience has shown that beginning Computer Science students do not always make decisions that are in their own best interest and often do not complete ungraded assignments. In other words, in this course, programming assignments are designed to: (1) help you learn the materials; (2) help you understand what you have and have not learned; and (3) encourage you to do the work that is necessary for learning to occur.

You must not discuss programming assignments with students who are not currently enrolled in this course, except for the designated teaching assistants. Also, you must not discuss programming assignments with tutors of any kind – paid or volunteer, local or remote. Similarly, you must not use code from any source, whether human (e.g., "mechanical turk") or not (e.g., AI-based code generators), that was created based on information that is specific to the assignment (e.g., specifications, function/method/class declarations). When in doubt, assume that code obtained from the Internet must not be used. Finally, you must not make your solutions to programming assignments available in any form on any WWW sites, solution archives, etc… Failure to comply with these policies is a violation of the JMU Honor Code. Automated tools (like, for example, Moss) may be used on any submission (including "early" submissions), at any time, to detect violations of this policy. In addition, the instructor may ask you (privately) to discuss your code after you submit it. If you are unable to explain both the syntax and the functionality of the code you submitted, you will be given a grade of 0 on the assignment (as this is an indication that you did not write the code yourself and/or that you do not understand the material).

Methods of Evaluation

Runestone Academy Reading

Each week has 1–2 hours of assigned reading. The textbook includes many interactive activities. You are required to complete

In-Class Work

You are encouraged to work with other students during class. In-class activities and labs have points, because your participation impacts others. If you are absent occasionally, you will have the opportunity to make up missed work.

Homework

Written and/or programming exercises will be assigned each week. You are welcome to discuss homework with other students, but the solutions and source code you submit must be entirely your own work.

Be Careful!

Being able to understand someone else's code is very different from being able to write code on your own. If you become over-reliant on outside assistance, you won't develop the skills you need to succeed on quizzes and exams.

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

In place of midterm exams, we will have weekly in-class quizzes. Each quiz will be 25 minutes and focus on two weeks of the textbook readings, activities and homeworks. As shown in the table below, you will be quizzed on each pair of weeks twice. A practice quiz (not graded) will be given the day after the homework is due. This will give you a sense of what you know and what you need to study. A similar quiz (graded) on the same material will be given one week later. At the end of the semester, I will drop your lowest quiz score.

Quiz Weeks Practice Graded
1 1–2 Sep 04 Sep 11
2 3–4 Sep 18 Sep 25
3 5–6 Oct 02 Oct 09
4 7–8 Oct 16 Oct 30
5 9–11 Nov 06 Nov 13
6 12–13 Nov 20 Dec 04

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 week. The content and format of the final exam will be similar to the weekly quizzes, but the final will be a longer test and you will have two hours to complete.

Grading Criteria

Your grade in CS 149 will be based on:
Pie chart: 5% Reading, 10% In-Class, 7% Homeworks, 8% PAs, 45% Quizzes, 25% Final Exam

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. I do not assign WP or WF grades except in unusual circumstances.

Students who score below 60% on the final exam will receive a grade no higher than C– in the course. You must earn a B– or higher grade in CS 149 to enroll in CS 159.

University Requirements

Adding/Dropping

You are responsible for enrolling in courses and verifying your schedule on MyMadison. The last day to add a semester course without department permission is Friday, 08/29/2025. The last day to withdraw from a course with a W grade is Tuesday, 10/21/2025.

Attendance Policy

You are expected to participate in every class. I understand that things come up, and you might need to be absent occasionally. That's why I provide make-up opportunities for in-class work. If you are not feeling well or suspect you might be ill, please stay at home.

Stay Caught Up

Your attendance is not graded, but the work you do in class is graded. When you are absent, you need to make up the work you missed within 48 hours.

Disability Services

If you have a documented disability and need accommodations in this course, please register with the Office of Disability Services (http://www.jmu.edu/ods, Student Success Center, Room 1202, 540-568-6705). ODS will provide you with an Access Plan Letter to verify your need for services and make recommendations for the course.

Excused Absences

Students who are unable to attend class due to JMU sponsored activities (such as sports, band, academic competition, field trips, etc.) or personal religious observances may request reasonable accommodations. Please notify me during the first week of class regarding potential absences so that you and I can plan ahead.

University Closings

Given severe weather and other unexpected circumstances, be sure to watch for announcements relating to make-up dates. See http://www.jmu.edu/JMUpolicy/1309.shtml for JMU's cancellation policy. Although the schedule may adapt to canceled classes, assignment deadlines generally do not change.

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 https://www.jmu.edu/counselingctr 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.