Skip to content

Syllabus

CS 149 - Introduction to Programming

James Madison University - Fall 2024 - Dr. Mona El-Kadi Rizvi

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 Time and Place

  • Section 1: Mon/Wed/Fri 9:10 - 10:00AM
  • Section 2: Mon/Wed/Fri 10:20 - 11:10AM

Locations:

  • King Hall 250 (Computer Lab)
  • King Hall 260 (Classroom)

Instructor

Dr. Mona A. El-Kadi Rizvi, Associate Professor, Computer Science Department

Email: elkadima@jmu.edu Telegram: @maerizvi

Office Hours in King Hall 253:

  • Monday 1:00 - 4:00 PM, Tuesday/Thursday 2:30 - 3:30 PM
  • OR, stop by if you see me in my office
  • OR, email me to make an appointment (for in-person or online meeting times)

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

Research has shown that active learning methods are more effective than passive methods like taking notes. Active learning techniques we will use include Guided Inquiry Learning and hands-on lab exercises. Here is what a typical week will look like:

  • Monday: (in class) Lecture, additional examples and live demos, practice problems, hints on the homework. Reading due in the evening.
  • Tuesday: (outside class) Work on the homework. Start the new reading.
  • Wednesday: (in class) Discuss the homework solutions, take the bi-weekly quiz, lab exercise or group activity. Homework due in the evening.
  • Thursday: (outside class) Start the next homework.
  • Friday: (in class) Group activity that introduces the key concepts from the new chapter or practice quiz.

It is critical that you start all assignments early so that when you have some problem, you can spend a reasonable amount of time struggling, leave it and come back to it rested with a clear mind or after having some questions answered. Students who start early spend less time overall on the assignments. Programming homework problems that will be assigned later in the semester cannot be completed in a single day.

Technologies Used

  • Instructional materials including handouts, slides, videos, and sample code will be on Canvas or on the shared course website or both.

  • Canvas will also be used for posting assignments and announcements, sharing non-public files, and communicating grades.

  • You will use Gradescope to submit programming assignments and exams. Gradescope provides automated feedback to help you improve your work. Most work will also be checked manually.

  • We will use Piazza for homework Q&A and asynchronous discussions. All instructors, TAs, and 150+ students enrolled in CS 149 will be in the same Piazza course.

Required Textbook

Miller, Bailey et al. (Mar 2023). Programming in Python 3

"An online introduction to both the principles and the practice of programming, in the increasingly popular Python language. Uses extensive interactivity (animations, learning questions, tools), and challenge programming exercises (homework). A web-based programming environment gives immediate access to the Python interpreter; no downloads required. Replaces traditional textbooks."

We have customized this zyBook for CS 149. Please do the following to purchase:

  • Use the first reading assignment to reach the book's purchase and register page.
  • Register using your JMU email
  • Select Rizvi as your course section.
  • Your subscription will cost $64 and last until the end of the semester.
  • If you are retaking the course, you should be able to get the book again for a reduced rate (or free)

Laptops in the Classroom

You will need a laptop on some class days. If you don't have a laptop, the CS department may be able to loan you one for the semester. The software you will need to install is Thonny.

Methods of Evaluation

zyBook Reading

Each week has 1–2 hours of assigned reading. The textbook includes many interactive activities. You are required to complete the participation (orange) activities. The challenge (blue) activities are useful but optional.

In-Class Work

You are encouraged to work with other students on these activities both during and after class. In-class activities and labs have participation points, because your attendance impacts others.

Homework

Written and/or programming exercises will be assigned each week. These exercises are meant to give you a chance to practice the skills you need to develop in this course. You are welcome to discuss assignments with other students.

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. Contact me if you are facing unavoidable circumstances that will prevent you from submitting an assignment on time, and I will do my best to work with you to make appropriate accommodations. Please don't wait until the night before to get started!

Quizzes

In place of midterm exams, we will have bi-weekly in-class quizzes. Each quiz will be about 20-25 minutes long and focus on two chapters of the textbook. As shown in the table, you will be quizzed on each pair of chapters once. On the off weeks, a practice quiz (on the same topics as the upcoming quiz) will be given and/or reviewed.

Quiz Chapters Practice Quiz
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 23 Oct 30
5 9–10 Nov 06 Nov 13
6 11–12 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 the final exam week###. The content and format of the final exam will be similar to the weekly quizzes.

Grading Criteria

The overall grade will be calculated using the following weights:

  • Reading: 5%
  • In-class activities: 10%
  • Homework: 15%
  • Quizzes: 45%
  • Final Exam: 25%

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. Plus/minus + and – grades will be used at my discretion. I do not assign WP or WF grades unless there are exceptional 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.

Culture of Learning

Professional Conduct

The ACM (www.acm.org) is the main professional organization for computer scientists. It is expected that your work in this course will conform to the ACM Code of Ethics, which 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. If you inform me, I will do my best to preserve your confidentiality when addressing the issue.

Mutual Respect

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

Honor Code

Students who violate the Honor Code (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. Representing someone else's work as your own, in any form, constitutes an honor code violation. It is also a violation of the honor code to "render unauthorized assistance to another student by knowingly permitting him or her to see or copy all or a portion of an examination or any work to be submitted for academic credit." Automated tools may be used by the CS149 instructors, across all sections, on any assignment, at any time, to detect inappropriate collaboration and the originality of submissions.

Generative AI

You may use AI technology in ways that support your learning, but NOT to generate code for your homework assignments. The use of any AI is strictly prohibited during quizzes and exams, so make sure you can program independently. Refer to the Generative AI in Computing Education Student Guide for examples of appropriate use.

Attribution

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 is expected:

"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 talked it over with my friend Xavier. He explained how negative string indexing works, which helped me to start and create my solution."

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

You may be called on to explain your code while it is being graded. If you are unable to explain your code, you may not receive full credit, even for working solutions.

University Requirements

Attendance Policy

You are expected to participate in every class. I understand that things come up, and you might need to be absent occasionally. Please email me about planned absences as soon as you know about them, and unplanned absences as soon as you are able to. If you are not feeling well or suspect you might be ill, please stay at home.

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.

Adding/Dropping

You are responsible for enrolling in courses and verifying your schedule on MyMadison. The last day to withdraw from a course with a W grade is October 23, 2024.

Disability Services

If you have a documented disability and need accommodations in this course, please register with the Office of Disability Services (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.

University Closings

Given severe weather and other unexpected circumstances, be sure to watch for announcements relating to make-up dates. See 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 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.

Student Support Hub

JMU has resources for all types of support including financial issues, food and housing insecurity, counseling, etc. A good central place to find these is the Student Support Hub website: www.jmu.edu/ssh/index.shtml.

Inclusivity

James Madison University is a community dedicated to diversity and inclusivity. I believe that learning environments should support a diversity of thoughts, perspectives, experiences, and identities. Please feel free to share with me anything that you think might help make this class a more inclusive and welcoming learning environment.