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.
- The Course Email (cs164@cs.colostate.edu)
- 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.
- Microsoft Teams. If it is a question about grades an email is preferred in this case.
- 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
- I encourage you to join me during Student Hours to discuss grades, homework assignments, general course knowledge.
- 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:
- Read Java code and predict the flow of control and program output.
- 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.
- Test and debug Java programs, including code written by themselves or by others.
- Use the Linux operating system and an IDE development tool to achieve the previous goals.
- Comprehend the basics of object-‐oriented computer programming in the context of the Java language.
- Decompose and solve programming problems; implement basic algorithms for searching and sorting
Course Schedule – Alignment of Course Topics, Learning Outcomes, and Assessments
| DATE | UNIT & MODULE | TOPIC/SUB-TOPIC | LEARNING OUTCOME | HOMEWORKS/EXAMS |
| 01/19 – 01/25 | Unit 1 – Module 1 | Course Intro and Java Basics | Learn to Compile Java Code and contrast it to previous Python Knowledge | HW1 – Hello World. Due End of Unit 1 – Module 2 |
| 01/26 – 02/01 | Unit 1 – Module 2 | Strings and User Input | Intro to Objects in Java | HW2 – Python Conversion. Due End of Unit 1 – Module 3 |
| 02/02 – 02/08 | Unit 1 – Module 3 | Arrays, 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/15 | Unit 1 – Module 4 | Unit 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/22 | Unit 2 – Module 5 | Intro to Object Oriented Coding. Constructors, Accessors & Mutators, & Instance Variables | Learning about how Objects work in Java and the core principles of how to solve problems in an Object-Oriented Approach | Homework 3 – Object Oriented Basics. Due End of Unit 2 Module 6 |
| 02/23 – 03/01 | Unit 2 – Module 6 | Class Composition, Data Structure Basics, & Errors and Compilation | Learn 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/08 | Unit 2 – Module 7 | File Input & Output. | Learn to open file objects in Java and be able to read from, write to, and modify file data. | |
| 03/09 – 03/15 | Unit 2 – Module 8 | Unit 2 Exam Week | See the Exam Week 1 schedule for the weekly schedule | Coding Exam 2 Lecture Exam 2 |
| 03/14 – 03/22 | Spring Break | HW 4 will be open to the end of Break | ||
| 03/23 – 03/26 | Unit 3 – Module 9 | Into to Inheritance & Abstraction | Learn how Objects can be related to one another. A core principal of OOP Programming and the Java Language | HW 5 – Inheritance Basics. Due End of Unit 3 – Module 10 |
| 03/27 – 04/05 | Unit 3 – Module 10 | Advanced Inheritance & Intro to Interfaces | Learn 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/12 | Unit 3 – Module 11 | Non Abstract Inheritance, Enumerations, & Inheritance with Interfaces | Learn 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/19 | Unit 3 – Module 12 | Unit 3 Exam Week | Coding Exam 3 Lecture Exam 3 | |
| 04/20 – 04/26 | Unit 4 – Module 13 | Intro to Recursion, Sorting Algorithms, & Multi-Dimensional Arrays | Learn 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/03 | Unit 4 – Module 14 | Intro to Complex Data Structures, Advanced Recursive Algorithms, & Intro to Big O Notation | Learn 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/10 | Unit 4 – Module 15 | Unit 4 Exam Week | Coding Exam 4 Lecture Exam 4 | |
| 05/11 – 05/15 | Finals Week | Nothing 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.
| ASSIGNMENT | GRADE PERCENTAGE |
| Lecture Attendance | 15% |
| Coding Assignments | 10% |
| Coding Exams | 20% |
| Reading Exams | 20% |
| Weekly Reading | 10% |
| Lab Attendance & Completion | 15% |
| 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)
