For course schedule, click here .

Course Logistics

Lecture
Tuesdays and Thursdays 10:50 AM - 12:05 PM
Location: Barnard Hall 103

All lecture recordings, code, and slides will be put on the course website, but I still highly encourage you to come to class. People that attend lecture do better in the class.

Lab
Lab time depends on the section that you registered for:

Location: Roberts Hall 111

Q: Is lab attendance mandatory?
A: Lab attendance is optional. I encourage you to go to lab, but attendance will never be taken. The programming assignments for labs are posted before Tuesdays, and can be completed from home.

Q: Do I have to attend the lab section that I registered for?
A: You do not need to attend the lab section that you registered for. You can attend an earlier/later lab section if you would like

Q: Do I have to bring my own laptop to lab?
A: I would recommend doing so, but Roberts 111 is a computer lab and has all the software and tools for you to complete the lab if you do not have a laptop.

Instructor

Instructor Illness

I am currently in the midst of battling a chronic health condition. Because of this, I am generally not around in-person during the early mornings (but you can still email/message me). There may be days where I have to unexpectedly cancel class, or have you watch a recorded lecture instead. I generally feel ok, but it's always possible things could get worse. Please always check the course schedule for each morning for the most up-to-date information.

Teaching Assistants/Graders

Lab Assistants

These are upper-division computer science students that are present during lab time to help with your assignments. They do not grade any of your assignments

Textbook

Other Required Materials

Class Communication

Other Resources

Catalog Description

Note from Reese: Before taking this class, you should feel comfortable basic Java programming, be comfortable using the following data structures: arrays, linked lists, stacks, queues, be comfortable with basic recursion, and how to analyze an algorithm using big-O notation

Course Outcomes

By the end of this course, students should be be able to:

Grading

35% - Labs (10 @ 3.5% each)
45% - Programs (4 @ ~11.25% each P3 is worth a bit more than the others)
20% - Quizzes (3 @ 6.67% each)
1% - LeetCode (Extra Credit)

Grading Breakdown

Grading Scale

Q: Do you curve exams or final grades?
A: Maybe, but probably not. If exams or final grades are lower than I anticipated, then I may apply a curve. For final grades, if you are within 1% of the next letter grade, I will bump you up.

Late Assignment Policy


Getting Help and Succeeding

This can be a tough class, and some of the assignments are tricky. Remember, if you feel challenged by this class, that is a good thing! I (reese) am always here for you, and I am always happy to help troubleshoot, debug, and answer and questions you have. You can always email me or send me a Discord message, and I will respond as soon as I can. If you have a bug/coding issues, it is generally helpful to attach your code in the email/message. You should always get help (from Reese, TAs, or Discord) sooner rather than later. This is a very important class in the computer science curriculum, and it is not a good class to slack off in. Stay on top of lectures, get started on assignments early, and try to avoid taking zeros on assignments.

Collaboration Policy

All students should read the MSU Student Conduct Code.

All labs will be individual submissions. For programs, you are allowed to work with one partner. Each partner should submit to D2L (but make sure you indicate in your submission who your partner is).

When it comes to labs, you may

You may NOT

Failure to abide by these rules will result in an "F" for the course and being reported to the Dean of Students.

Bots and AI

You should not use any bots or AI to develop your solutions on labs, programs, and exams. If it is found that you used such a tool, you will receive a zero on the assignment.

Plagiarism

You may not copy or modify solutions that are not your own (e.g. from the Internet, classmate, ...) for any graded material. Copying and pasting very small snippets of code is acceptable, however copying/pasting or stealing entire solutions from an external source is prohibited. I know how to use the Google and I have a Chegg membership, so If you find something, I will too! It is easy for me to tell if you copy and pasted code from the Internet, so please do not engage in such academic misconduct. If I find a student engaging in plagiarism, I will have to report you to the Dean of Students.

Copyright

Course Materials: The syllabus, course lectures and presentations, and any course materials provided throughout this term are protected by U.S. copyright laws. Students enrolled in the course may use them for their own research and educational purposes. However, reproducing, selling or otherwise distributing these materials without written permission of the copyright owner is expressly prohibited, including providing materials to commercial platforms such as Chegg or CourseHero. Doing so may constitute a violation of U.S. copyright law as well as MSU’s Code of Student Conduct.

More Helpful MSU Resources