CS 164 – All Sections

Basic Course Information

Course Name: Computational Thinking with Java – CS 164

Semester: Spring 2026

Credits: 4 (3 Lecture, 1 Lab)

Prerequisites: (CIS 240 with a minimum grade of B) or (CS 150A with a minimum grade of B) or (CS 150B with a minimum grade of B) or (CS 152 with a minimum grade of B) or CS 163 or (ENGR 123 with a minimum grade of C)

Meetings/Times:

Section Number

Room

Time

Professor/Instructor

001

Johnson Hall 222

10:00 am – 10:50 am

Logan Seabolt

002/801

Natural Resources 140

2:00 pm – 2:50 pm

Logan Seabolt

Course Email: compsci_cs164@colostate.edu

Instructor Information

Instructor Name: Logan Seabolt

Email: Logan.Seabolt@colostate.edu

Phone: +1 970-491-5861

Office Location: Computer Science Building 242

Office Hours/Student Hours: TBD

Communication Policy:

Communication is preferred through one of 3 methods.

  1. The Course Email (cs164@cs.colostate.edu)
  2. The instructor’s personal email. HOWEVER please include the course number (CS164) in the subject line. This helps me keep track of your emails and better support you.
  3. Microsoft Teams. If it is a question about grades an email is preferred in this case.
  4. Average response time is within 1 Working Day (Weekends & University Holidays not included)
    • If a response is not received within 1 Working Day, please send a follow up email
  5. I encourage you to join me during Student Hours to discuss grades, homework assignments, general course knowledge.
  6. If you have missed class, please reach out as soon as you are able so we can get you access to lecture materials.

Course Materials

Textbook / Course Readings

Codio – Intro to Java Programming ($48). Digital Textbook for interactive reading and code along practice.

Materials & Equipment

In Person –

  • iClicker – For in Class Participation

Online –

  • A personal computer that supports Lockdown Browser & Visual Studio Code

Course Description & Objectives

Upon the completion of this course, students will be able to:

  1. Read Java code and predict the flow of control and program output.
  2. Design, build, and verify Java programs of moderate size with several classes, as measured by the ability to write Java programs with 200‐300 lines of code.
  3. Test and debug Java programs, including code written by themselves or by others.
  4. Use the Linux operating system and an IDE development tool to achieve the previous goals.
  5. Comprehend the basics of object-‐oriented computer programming in the context of the Java language.
  6. Decompose and solve programming problems; implement basic algorithms for searching and sorting

Course Schedule – Alignment of Course Topics, Learning Outcomes, and Assessments  

DATEUNIT & MODULETOPIC/SUB-TOPICLEARNING OUTCOMEHOMEWORKS/EXAMS
01/19 – 01/25Unit 1 – Module 1Course Intro and Java BasicsLearn to Compile Java Code and contrast it to previous Python KnowledgeHW1 – Hello World.
Due End of Unit 1 – Module 2
01/26 – 02/01Unit 1 – Module 2Strings and User InputIntro to Objects in JavaHW2 – Python Conversion.
Due End of Unit 1 – Module 3
02/02 – 02/08Unit 1 – Module 3Arrays, Loops, & Wrapper Classes.Learn how to store data and use more advanced flow control structures. Learn about the utility of Wrapper classes as both OOP and Primitive types 
02/09 – 02/15Unit 1 – Module 4Unit 1 Exam Week.
M – Coding Exam Review
Tu – Coding Exam 1
W – Lecture Exam Review
Th – Lecture Exam 1
F – No Lecture
Exam weeks will always follow the same patter. They are the 4th week of the unit and comprise one IN PERSON coding exam and One IN PERSON Lecture Exam. The Friday after an Exam will always be a day off from lectures.Coding Exam 1
Lecture Exam 1
02/16 – 02/22Unit 2 – Module 5Intro to Object Oriented Coding. Constructors, Accessors & Mutators, & Instance VariablesLearning about how Objects work in Java and the core principles of how to solve problems in an Object-Oriented ApproachHomework 3 – Object Oriented Basics.
Due End of Unit 2 Module 6
02/23 – 03/01Unit 2 – Module 6Class Composition, Data Structure Basics, & Errors and CompilationLearn how classes interact with one another and how data can be stored in more complex structures.Homework 4 – Class Composition and Data Structures.
Due End of Unit 2 Module 8
03/02 – 03/08Unit 2 – Module 7File Input & Output.Learn to open file objects in Java and be able to read from, write to, and modify file data. 
03/09 – 03/15Unit 2 – Module 8Unit 2 Exam WeekSee the Exam Week 1 schedule for the weekly scheduleCoding Exam 2
Lecture Exam 2
03/14 – 03/22Spring Break  HW 4 will be open to the end of Break
03/23 – 03/26Unit 3 – Module 9Into to Inheritance & Abstraction Learn how Objects can be related to one another. A core principal of OOP Programming and the Java LanguageHW 5 – Inheritance Basics.
Due End of Unit 3 – Module 10
03/27 – 04/05Unit 3 – Module 10Advanced Inheritance & Intro to InterfacesLearn the distinction between Inheritance, Composition, & Implementation. How Java handles the challenge of “Multiple Inheritance” HW 6 – Inheritance, Interfaces, & Enumerations.
Due End of Unit 3 – Module 12
04/06 – 04/12Unit 3 – Module 11Non Abstract Inheritance, Enumerations, & Inheritance with InterfacesLearn how Concrete inheritance functions and what happens when an interfaces is inherited. Learn the utility of Enumerations a class that knows all its own variations. 
04/13 – 04/19Unit 3 – Module 12Unit 3 Exam Week Coding Exam 3
Lecture Exam 3
04/20 – 04/26Unit 4 – Module 13Intro to Recursion, Sorting Algorithms, & Multi-Dimensional ArraysLearn how to use Self Invoking code to solve complex problems. Learn how data is stored in more complex structures and how to Search & Sort these structures. HW 7 – Basic Recursion.
Due end of Unit 4 – Module 14
04/27 – 05/03Unit 4 – Module 14Intro to Complex Data Structures, Advanced Recursive Algorithms, & Intro to Big O NotationLearn about the basics of more Advanced Data Structures CS165. Learn how more complex recursive algorithms work and Uniquely recursive problems. Finally learn how computer science measures code efficacy.HW 8 – Recursive Maze Solver.
Due the FRIDAY of Finals Week
05/04 – 05/10Unit 4 – Module 15Unit 4 Exam Week Coding Exam 4
Lecture Exam 4
05/11 – 05/15Finals WeekNothing During Finals Week. Finish HW 8 and review any missing RPAs. All Grade questions and request must be sent no later than the Wednesday of Finals Week  

Morgan Library Services Desk

The Morgan Library Services Desk provides both research (ph. 970-491-1841) and technical (ph. 970-491-7276) support. In addition, you can contact a librarian for assistance at Ask Us! or find a research guide at Research Help.

Teaching Philosophy

  • I believe that each and every student who enrolls in this course belongs here.
  • We recognize and celebrate the diverse backgrounds, experiences, and perspectives that each student brings to the classroom.
  • Learning is a collective effort, and we encourage active participation from all students. Through student-student interactions and meaningful dialogue with instructors, we aim to create a dynamic and engaging academic atmosphere.
  • If you have a question, then there are other students who have it too. Don’t be afraid to be curious and ask questions.
  • Our role as educators is to provide the resources, encouragement, and community necessary for students to reach their full potential.
  • In this classroom, we will recognize our differences as our greatest strengths.
  • I’m always happy to discuss strategies to improve access and help you to locate other campus resources that can assist you.
  • I am committed to supporting your success and well-being.
  • My goal is to ensure that all students feel safe, heard, and empowered to engage fully in their learning.

Classroom Norms (or Community Agreement)

  • We will listen to each other with the intent to understand different perspectives
  • We will ask questions when we have them
    • If you feel the need to ask a question but don’t think you can ask it to the instructor directly. There will be an Assigned “Questions” TA who you can send question to during lecture to ask of the instructor.
  • We will make sure everyone’s voice is heard
  • We will not disrupt the learning of others. This includes but is not limited to, Playing Video Games during lecture, watching videos or other distracting media during lecture, or having unrelated conversations during lecture
  • We will respect the learning journey. Coding is not a linear process, mistakes and failures are a natural part of the coding cycle. Any progress is good progress and failures are just another step on the path.

CSU Principles of Community

Inclusion: We create and nurture inclusive environments and welcome, value and affirm all members of our community, including their various identities, skills, ideas, talents and contributions.

Integrity: We are accountable for our actions and will act ethically and honestly in all our interactions.

Respect: We honor the inherent dignity of all people within an environment where we are committed to freedom of expression, critical discourse, and the advancement of knowledge.

Service: We are responsible, individually and collectively, to give of our time, talents, and resources to promote the well-being of each other and the development of our local, regional, and global communities.

Social Justice: We have the right to be treated and the responsibility to treat others with fairness and equity, the duty to challenge prejudice, and to uphold the laws, policies and procedures that promote justice in all respects.

Course Policies (late assignments, make-up exams, revision policy, etc.)

Grading Policy

All assignments except for the labs are handled through automated testing and grading environments. In most cases you will get feedback within 1 day of submitting the assignments. The grading timeline for each assignment will be detailed under the assignment’s “Grading” section on canvas.

Lecture Attendance Policy

Lecture Attendance for in person students is Mandatory. In Lecture reviews either via the use of iClickers or Paper Review Materials will be used to measure attendance. These can occur at any time during the lecture and cannot be made up.

To account for situations where attendance is not possible (Illness, Family Emergency, etc.) Eight of the Attendance grades are automatically dropped from your gradebook. This accounts for 20% of the lecture attendance points.

Lab Attendance and Lab Completion

Labs have two components to their grade. The first is an attendance grade. This must be completed during your lab section. There are NO make ups for the Lab Attendance, missing a lab will result in a 0 for that attendance.

Lab Completion grades are manually entered by the TAs based on reviewing the work you completed during lab. These can be made up no later than the end of help desk hours the Monday of Module Four for each unit. You can earn the points for the lab completion grades either by showing your work and explaining your work to a TA during your lab section or during a UTA Help Desk time slot.

To account for situations where attendance or completion are not possible (Illness, Family Emergency, etc.) Eight of the lab grades are automatically dropped from your gradebook. This can be either a Lab Attendance or Lab Completion grade. This accounts for 20% of the lab attendance or completion grades.

Reading Assignments

Codio Reading Assignments are assigned on a weekly basis. They are open until the end of the Unit they are assigned. This is usually the Monday AFTER the exam week at 9:30 am. Once the associated unit has closed the readings are locked for completion. The lowest 4 reading grades are dropped.

Exam Policies

There are two types of exams in the course. Coding Exams and Reading Exams. These exams are proctored exams in person that take place of your normal lab times. They must be completed during the lab section. Ensure that you arrive on time for the exam and arrive to your lab section for the exam. Your lab sections are your exam times and can only be swapped by switching the lab you are registered for.

Coding exams are 50 Minute coding challenges. You will be tasked with specific code to be implemented. During this time, you will only have access to Canvas, VS Code, and Codio. No other tools or websites will be available to access during the exam.

Reading Exams are also held in the labs. They are 50 Minute exams that cover a variety of material from each unit. Exams are CUMULATIVE with a focus primarily on new material. They are closed book, closed note, & closed neighbor exams. This is to test your knowledge of the material.

During exams all personal devices are STRICTLY PROHIBITED. You may not use a cellphone, smart watch, or any other device during exam unless explicitly allowed by an ADA Accommodation. In which case you must confirm that with the Instructor and your Lab TAs prior to each exam.

If you miss an Exam for any reason, you must contact the instructor As Soon As Possible. Exams cannot be made up in a later time slot. Exams can only be made up with appropriate documentation that shows a plausible reason for the absence from the exam.

An Exam Make Up will generally be scheduled in place of lecture on the Friday after the exams. You will need to contact your instructor to get access to these make up times.

Assignment Extensions/Make Up Work

These will rarely be given and only on a case-by-case basis.

Generally, if it is an emergency (Medical Absence, Family Incident, Car Breaks Down, Personal Emergency, etc.) then please contact the instructor with documentation of the incident anything with a date/time stamp or a signed document from a professional will work.

If you know you will be absent from an exam or during the due date of an assignment, please contact the instructor at least 72 hours prior to the due date or exam date. An extension or Alternative date for the exam can be considered, but a retroactive exam absence will not be allowed. Please provide documentation that shows the time conflict with the due date or exam date.

Late Policy

Readings, Weekly Quizzes, and Lab completions are the only assignments allowed to be completed “Late”. These assignments are open until the end of their unit.

All other materials in the course have a 0-tolerance late policy. Once the due date passes the assignment in closed unless there has been a prior extension discussion the assignment will lock and the grade earned at that time will remain.

Academic Misconduct Policy

This course is first and foremost a language learning course. The objective of the course is to learn a new programming language and the skills necessary to use it. You will only get out of this course what you put in to learning it. The classes following this course are dependent on the information taught here, they will extrapolate on and extend the information and concepts taught in the course. Because of this, we take academic integrity very seriously here. We want to produce students who are skilled in Java Programming. We want to ensure that our students are well prepared for any course they take following this one. Because of this we have a strict set of rules regarding Academic Misconduct.

This course uses a Whitelist policy for what is allowed on assignments. The following are NOT considered academic misconduct to use on homework assignments

  • Any Material Found on the Course’s Canvas
  • Any Material in the Codio Readings
  • Any Material Given in lecture
  • Cited Material from the Javadocs Pages
  • Cited Material from UTAs or the Instructor’s Office Hours

Anything outside of the above list MAY be considered academic misconduct

The following are EXPLICITLY considered Academic Misconduct in this course

  • Using any form of AI Coding Assistance. Including but not limited to:
    • ChatGPT
    • Grok
    • Co-pilot (including the Co-pilot VS Code Add On)
  • Copying or Stealing code from another student current or previous

Academic misconduct in any form is NOT tolerated in this course. If you are found at fault for academic misconduct in this course, you will be given an F and an academic misconduct report will be filed for the incident.

All cases of potential academic misconduct will be thoroughly investigated, and all students will be given a chance to meet with the instructor to discuss their case and provide documentation and evidence to support their work. Keep in mind that an Investigation does NOT Guarantee that academic misconduct occurred, only that something was found suspect and deemed necessary to review.

The Instructor reserves the right to apply a lighter penalty to an academic misconduct case if it is deemed applicable. However even if a lighter penalty is applied, a second incident regardless of severity will result in the full academic misconduct penalty being applied to the incident.

This course is a fundamental course in your development as programmers. What you learn here sets the stage for your following courses. While Generative AI is here to stay, it cannot replace skill. A skilled programmer with access to Generative AI will be far more powerful than someone who only knows how to use Generative AI. You will inevitably run into errors in your code and having the skills needed to solve the problem will serve you more than just utilizing Gen AI.

ASSIGNMENTGRADE PERCENTAGE
Lecture Attendance15%
Coding Assignments10%
Coding Exams20%
Reading Exams20%
Weekly Reading10%
Lab Attendance & Completion15%
Weekly Review Quizzes (RPAs)10%
Total:  100 %

Additional Syllabus Information and Policies

You can use these resources for more support and resources beyond what is covered in the core rules of this syllabus. You can access these resources either via the below QRN Code or this link (https://col.st/2FA2g)