Skip to main content Link Search Menu Expand Document (external link)

MI 250: Intro to Applied Programming - Syllabus

Table of contents
  1. Spring 2025 Time and Location
  2. Instructors
  3. Course Description
  4. Required Technology
    1. In-class technology usage
  5. Course Structure
    1. Pair Programming
  6. Coursework
    1. Summary + Questions
    2. Labs
    3. Studios
    4. Homework
    5. Final project
    6. Turning in work
    7. Honors option
  7. Coursework Expectations and Grading
    1. Grading scale
  8. Communication Policies
    1. Announcements
  9. Attendance / Absence / Lateness Policy
    1. Late Homework
    2. Illness
    3. Exceptions
  10. Other Policies
    1. Accommodations for disabilities
    2. Spartan Code of Honor
    3. Academic honesty
    4. Mental health
    5. Technical assistance
    6. Tolerance and civility

Spring 2025 Time and Location

Mondays and Wednesdays, 3:00pm-4:50pm
Holden Hall C131
Synchronous, in person – no hybrid options available

Instructors

Instructor: Caitlin Geier (she/her/hers)
Email: [email protected]
Office hours: By appointment, virtually or in person - email or talk to after class to find a time
Office: Room 525, Communication Arts and Sciences building

Course assistant: Shiyu (Daria) Xiang (she/her/hers)
Email: [email protected]
Office hours: By appointment, virtually - email or talk to after class to find a time

Course Description

This course is an undergraduate course aimed at students who have little to no programming experience and who don’t intend to be programmers. There are many roles in the tech industry today which don’t involve programming, but which work alongside programmers. The goals of this course are to teach students enough to be “dangerous” at programming, to learn about computers and programming environments, and to practice skills around talking about programming, co-learning, and collaboration. These skills are incredibly useful not only for programmers, but also for other media and technology roles, such as user experience, graphic design, game design, digital storytelling, data analytics, and more.

This course is NOT appropriate for students with programming experience; for example, students who have taken CSE 231 or similar courses in the past. This is a required course for multiple majors and minors in media and information, but the requirement can be waived in many cases for students who have taken other programming courses or have demonstrated experience with programming.

Required Technology

All students are REQUIRED to bring a laptop computer to class running either MacOS or Windows. Linux is not supported in this class. Every student will be creating a development environment on their own computer in the first 2 weeks of class. Every student will be required to practice writing and running code on their own computers.

If you need a new computer, the MSU Tech Store sells both Apple and Windows laptops at discounted prices for students. If your laptop breaks or is temporarily unavailable during the semester, talk with Caitlin about accommodations. MSU also has a Laptop Loan program which students who have a temporary need for a laptop can apply for.

All course materials can be found on:

You will not be required to purchase any software for this course. The course will be using the Python programming language, Git, and related tools, all of which are open source and/or freely available. You do not need to install anything ahead of time – we will be doing all of that work in class.

In-class technology usage

Students are expected to use their laptops in class for in-class work, and should bring their laptops to every class. Smartphone and tablet usage is fine so long as they are being used for class purposes (like taking notes, looking things up, etc). Phone calls in class are prohibited. If you need to make or receive a phone call, step outside of the classroom first. Talking on your phone in class is disrespectful to the instructors and to your classmates and will result in a lower grade for the day.

Course Structure

This course has 5 main elements:

  • Summary+Questions: reading / watching content and summarizing / asking questions about content in ways that relate to students’ own lives (every week, due before the first class of the week).
  • Labs: set exercises for learning and practicing concepts in programming, done in class with partners (usually on Mondays)
  • Studios: open-ended creative exercises for practicing and applying programming concepts, done in class in groups of 2-3 (usually on Wednesdays)
  • Homework: larger homework assignments to learn/practice skills and think about programming in practice (every 2-3 weeks, 5 in total)
  • Final project: a two week project at the end of the semester started in class and due at the end of the class’s final exam period (5pm, Wednesday April 30).

This course does NOT have any quizzes or exams. Aside from the final project, which students have the option of working on outside of class, all programming work will be done IN CLASS. It’s therefore very important to attend class as much as possible.

Pair Programming

Students in this course will practice a concept called pair programming, which originated with programmers at tech companies. Pair programming is based on the idea of “two programmers, one computer:” two programmers work together on the same code using one computer between them. One person is the driver: they are the person using the computer and typing the code. The other person is the observer, also known as the navigator: they do the bigger picture thinking, look up relevant information, and help spot mistakes. In this class, students will switch roles on a regular basis. Students who participate in pair programming get stuck and frustrated less often than students working by themselves and are also able to practice teamwork and communication – which is why we practice it in this class!

In labs: students will be randomly assigned in pairs at the beginning of class. You’ll likely work with someone different every week. You will practice pair programming for every lab.

In studios: students can choose who they work with and can work in groups no smaller than 2 people and no larger than 3. We encourage you to practice pair programming in whatever way makes sense for your group rather than all working on your own computers. You should be talking with your group members frequently.

Coursework

Summary + Questions

Every week students will be asked to read or watch a few articles and videos about programming and to submit a “Summary + Question” on D2L which is due before the first class of that week (usually Monday). These are under Quizzes on D2L and are labeled by week and are graded based on the check/check-plus/check-minus rubric. This should take you between 30 minutes and 1 hour each week.

All readings and videos are available for free and are linked on the readings page for each week (found in the Topics/Readings column on the course schedule). You will not be required to purchase any textbooks or other materials to complete the summary+questions.

Summary: one paragraph max (at least 3 sentences). These will always be guided summaries rather than just repeating facts. There will be a prompt on the readings page for each week which will usually ask you to explain what you’ve learned in your own words and to apply it to your own experiences. If your summary is too short or too long, or doesn’t answer the prompt, you may be marked down for it.

Question: one question relating to that week’s topic. The question can be about one of these things:

  • Confusion: something you didn’t understand and want clarification on
  • Curiosity: something you want to learn more about
  • Connection: apply one of the concepts from the week’s topic to your own life or work (this might be a statement rather than a question; that’s okay)

If your summary+question is missing either a summary or a question, OR if it’s turned in late (after class starts), you will get a 0. We use your summaries and questions to understand what students are having trouble with so we can talk about it at the beginning of class on Mondays, so it’s important to turn them in on time.

Labs

Labs will usually be on Mondays. Labs cover one or more specific concepts relating to the topic of the week; their goal is to give you a chance to put the concepts in practice. Programming is very hard to learn through reading alone, which is why we practice it in class with partners. Each lab has a series of small, structured exercises that you and your partner will go through together using pair programming. Partners for labs are assigned randomly at the beginning of class.

Labs are graded using the check/check-plus/check-minus system. Grades are based on:

  • Effort (did you work on the lab for the entire class?)
  • Attendance (did you attend the whole class OR did you complete all of the exercises satisfactorily?)
  • Teamwork (did you help others?)

Labs are NOT graded based on how much you complete or how “good” your code is.

Studios

Studios will usually take place on Wednesdays. Unlike labs, studios are more open-ended exercises that allow you to practice – and be creative with – the concepts you learned in the lab that week and over the course of the semester. Studios are done in groups of 2-3 people. You can choose who you work with for studios.

Studios are also graded using the check/check-plus/check-minus system. Grades are based on:

  • Effort (did you work on the studio for the entire class?)
  • Attendance (did you attend the whole class?)
  • Teamwork (did you collaborate consistently with your group?)

Studios are NOT graded on how “good” your code is or whether everything works as intended at the end of class.

Homework

Throughout the semester (every 2 to 3 weeks), students will be asked to complete homework assignments in addition to the weekly summary+question. These are longer form assignments and will not generally involve writing code. The goal of them is to give you skills that will help you in the labs and studios, and to make you think more about how programming fits into your life and into the world more broadly.

Homework assignment schedule:

# Topic Due
HW 1 Google Search Week 4
HW 2 Error Messages Week 7
HW 3 ChatGPT Week 9
HW 4 Jobs Week 11
HW 5 Ethics Week 13

All homework assignments will be due on Wednesdays before the start of class. Instructions for each assignment will be on the course website and will be available at least 2 weeks before the due date. You’ll turn the assignments in on D2L. Each assignment will likely take 1-2 hours to complete.

You will be required to complete 4 homework assignments throughout the semester. If you complete all 5, the assignment with the lowest grade will be counted as extra credit (between 1.75% and 2.5% added on top of your final grade).

Homework is also graded using the check/check-plus/check-minus system. Grades are based on:

  • Thoroughness (did you follow all of the instructions / do all of the tasks?)
  • Effort (did you make an honest attempt at doing the assignment?)

Final project

The final project is a long-form studio done with a group starting the last week of the semester. Unlike a normal studio, students will be expected to work on the same project over multiple class periods (the full last week of class will be devoted to this project) and also outside of class if the project can’t be completed during class.

Final projects are due at the end of the final exam period: 5pm Wednesday, April 30, 2025. There is no final exam for this class.

Turning in work

In-class work will be turned in via a combination of D2L and Gitlab. You will turn in summary+questions and homework individually on D2L. Work from in-class activities will be turned in by at least one person in each pair/group through D2L (screenshots and other evidence of work) and Gitlab (code) at the end of each class. We will start using Gitlab in Week 3.

Honors option

This course does have an honors option for students in the honors college. If you want to do an honors option, talk with Caitlin within the first three weeks of class.

Coursework Expectations and Grading

Grades in this class are mostly based on attending class and making an honest effort to engage with the material, both in and outside of class. The final project is the only work in which students will be graded on the programming skills they’ve developed over the semester. Grades are broken down in this way:

Summary + question 15%
In class exercises (labs and studios) 60%
Homework 15%
Final project 10%

Grades will be input on D2L and are calculated continuously – you will always know where your grade stands for the class by looking at D2L. Most all grades (except for the final project) are based on a check / check plus / check minus rubric:

  • Check = 9/10. You showed up and did the work. This is the base grade for everybody. (You didn’t do anything wrong if you get a check!)
  • Check plus = 10/10. You showed up, did the work, and impressed us: maybe you worked particularly well with your partner that day, had a particularly insightful question, or did a particularly thorough job on the homework.
  • Check minus = 7/10. You showed up, but didn’t honestly engage with the work. Maybe you were late to class with no excuse, or maybe you spent half the class cruising Insta or not talking with your partner or group at all. Maybe you put the bare minimum of effort into the summary+question or the homework.

Final projects will be graded in two parts:

  • Normal studio requirements – graded based on effort, attendance, and participation during the two class periods in the final week of class
  • The content of the project – graded based on whether the program works as intended, and on a combination of demonstrating programming skills and creativity.

A rubric for the final project will be released at the beginning of the final week of class.

Grading scale

90% 4.0
85% 3.5
80% 3.0
75% 2.5
70% 2.0
65% 1.5
60% 1.0
Below 60% 0.0

Communication Policies

Caitlin and Shiyu are happy to respond to student questions after class, or via email. Caitlin and Shiyu are also happy to meet with students on Zoom - email either of us to set up a time to meet. If you have questions about anything course-related, please get in touch!

Email policy: we will respond to email within 24 hours on weekdays, or within 72 hours on weekends. Don’t expect us to see any email sent before or during class until after class has ended.

Announcements

Announcements about the course will be posted on D2L. Make sure you have allowed D2L to send announcements to your MSU email. You can also have D2L emails forwarded to different email accounts - see instructions to do this in the MSU D2L documentation.

Attendance / Absence / Lateness Policy

This class is very heavily based on attendance and participation – it’s very important that you attend class every week as each week’s content builds on the previous week. If you miss too many classes, you WILL fall behind.

It’s also very important to attend the ENTIRE class – arriving late or leaving early means you will have less time to practice coding, and it will make class more difficult for your partner / groupmates for the day. Your grade for the class will be reduced if you are late or leave early.

That said, life happens. The 4 lowest grades for in class activities (labs and studios) will be dropped, as will the 2 lowest grades for summary+questions. Only 4 of the 5 homework assignments are required. You can miss up to two weeks of class total without it affecting your grade at all. You do not have to explain why you’re missing class to us. This policy covers the vast majority of absences you might need to take.

Late Homework

Late summary+questions will not be accepted except in extenuating circumstances.

Late homework will not be accepted except in extenuating circumstances (see below) OR by prior arrangement with the instructor.

Illness

If you are sick with something contagious (like COVID or the flu), PLEASE PLEASE PLEASE be considerate of your instructors and classmates and STAY HOME! Remember you can miss up to 4 classes with no penalty and no excuse needed. For long-lasting illnesses, see “exceptions” below.

If you have or think you might have COVID and aren’t sure what to do, see MSU’s COVID guidance page.

If Caitlin is sick, class may be cancelled.

Exceptions

The “drop 4” policy for in class activities will cover nearly all absences for nearly all students. It is meant to be flexible. If you find yourself needing to miss more classes than that, we will try to work with you to help you keep up with the class. IF you are beyond 4 absences already AND any of the below circumstances apply, we may be able to exempt you from certain classes or homework. Talk to Caitlin first and foremost!

Note that missing more than two weeks of class will make it harder for you to keep up, and also harder for you to earn good grades because you won’t be able to participate as much in class. If you need to miss extra class, talk with Caitlin and I will help you determine what you might need to do to keep up with the class. All of the exceptions below will be taken into account if you go beyond 4 absences.

If you know in advance that you need to miss a class for any of the below reasons, contact Caitlin as soon as possible. The more advance notice we have, the easier it will be for us to work with you.

Adding the class late – if you added this class to your schedule at the end of the first week of the semester, you may have missed the first graded homework and the first graded in class activity. Talk to Caitlin as soon as possible to catch up on the work, and to be exempted from those activities.

Illness lasting more than 2 weeks – COVID is still a thing, and there are all sorts of other illnesses people can have that affect their ability to attend class. Contact Caitlin as soon as possible to discuss potential accommodations and what kind of documentation may be necessary. (If you test positive for COVID or the flu, save your test results - this will be useful if you end up missing more than 2 weeks!)

Grief absences – If you have experienced the death of a family member or someone close to you, or you are experiencing emotional distress from a similar tragedy, you may request a grief absence. To request a grief absence, visit the Grief Absence Request Form found on the Student Information System under Resources –> Grief Absence. See the grief absence policy for more information. Once your grief absence is approved, we will exempt you from the in-class activities for the approved dates. This means those classes won’t count towards your grade at all, and also won’t count as part of your 4 dropped grades.

Religious holidays – If you wish to be absent from class to observe a religious holiday, please make arrangements in advance - ideally at least two weeks in advances. Absences for religious holidays will be treated as exempt, within reason. See MSU’s religious observance policy for more detail.

Student athletes – If you must miss a class to participate in an officially-sanctioned athletic game, you must provide adequate advanced notice beforehand, such as a team schedule or written authorization from a coach or a university administrator.

Required activity – If you must miss a class to participate in a university-sanctioned event, you must provide the instructor with adequate advance notice and written authorization from a university administrator.

Other Policies

Accommodations for disabilities

Michigan State University is committed to providing equal opportunity for participation in all programs, services and activities. Requests for accommodations by persons with disabilities may be made by contacting the Resource Center for Persons with Disabilities at 517-884-RCPD or on the web at rcpd.msu.edu. Once your eligibility for an accommodation has been determined, you will be issued a verified individual services accommodation (“VISA”) form. Please present this form to Caitlin in the first two weeks of the semester and/or two weeks prior to the accommodation date (test, project, etc). Requests received after this date will be honored whenever possible.

Spartan Code of Honor

As a student at MSU, you will be expected to abide by the Spartan Code of Honor Academic Pledge:

“As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor in ownership is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.”

See the Spartan handbook for more details.

Academic honesty

Michigan State University and the Department of Media and Information both have policies about academic dishonesty. Basically, make sure that everything you turn in with your name on it is your own work, and don’t cheat or lie. If it feels like cheating, it probably is; if you are unsure please ask. Students caught cheating or plagiarizing will receive a 0 for the assignment and be reported to the university. Working together with other students in this class and other classes, however, is encouraged. Make sure that everything you turn in with your name on it is original work of yours.

For classes that involve complex thinking and no right answers like this, we strongly encourage you to work together and ask each other for help. Indeed, this course requires you to work with others. Often when you have a problem or something confuses you, the best place to go for help is your colleagues who are also working on similar things. The Internet is also a fantastic source of information when you are stuck. Use these resources! However, make sure that you personally write and understand all of the work that you turn in. Directly copying text that you don’t understand from the Internet or from others is academically dishonest.

Mental health

Mental health concerns or stressful events may lead to diminished academic performance or reduce a student’s ability to participate in daily activities. If you’re struggling, we encourage you to seek support. Services are available to assist you with addressing these and other concerns you may be experiencing. You can learn more about the broad range of confidential mental health services available on campus on the Counseling & Psychiatric Services (CAPS) website.

Technical assistance

Asking your peers in class and your instructor is a great source for technical assistance. This is particularly true with the technologies we are learning in class (Python, Git, etc.). For MSU-provided technologies, you can visit the MSU Help site, the Desire2Learn Help Site or email the MSU IT Service Desk.f

Tolerance and civility

MSU strives to build an academic community with living and learning environments that expects tolerance of viewpoints and civility toward others, whether at public forums, athletic events, in residential communities, classrooms or laboratories. We call upon all who participate in university events to promote tolerance and civil behavior and to hold themselves to high standards that reflect the university’s commitment to respect viewpoints that may be different from their own. Only by respecting individuals with diverse perspectives and ideas can we build an environment of civility that is conducive to advancing knowledge and transforming lives.