CS 164 – All Sections

Basic Course Information

Course Name: Computational Thinking with Java – CS 164

Semester: Fall 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 111 with a minimum grade of B or ENGR 123 with a minimum grade of B.

Meetings/Times:

Section Number

Room

Time

Professor/Instructor

001

Stadium 1205

MWF 9-9:50am

Marcia Moraes

801

Asynchronous/Echo360 Recordings

Asynchronous

Marcia Moraes

Course Email: compsci_cs164@colostate.edu

Instructor Information

Instructor Name: Marcia Moraes

Email: marcia.moraes@colostate.edu

Phone: +1 970-491-3027

Office Location: Computer Science Building 456 or Teams for Online Meetings

Office Hours/Student Hours: M 1-2pm in person at CS456 or Teams, R 9-10am on Teams, By Appointment

Communication Policy:

Communication is preferred through one of 3 methods.

  1. Private message on Microsoft Teams.
  2. The Course Email (cs164@cs.colostate.edu)
  3. 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.
  4. I will do my best to respond to your messages/emails within 24 hours during work days. If you send a message on weekends, expect that to be returned by Monday.
    • If a response is not received within one 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, and to talk about good study practices, and how to be successful in our course.
  6. For in-person students, we have required attendance for lectures and labs, lots of active learning happens during these class times, so go to your lecture and labs. If something urgent happened and you can’t come to class, reach out to your instructor as soon as you are able.

Course Materials

Textbook / Course Readings

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

Materials & Equipment

In Person –

  • iClicker – For in Class Participation

Online –

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

Course Description & Objectives

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

  1. Read and predict the flow of control and program output in designing solutions to programming problems.
  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. Demonstrate proficiency at testing and debugging Java programs, including code written by themselves or by others.
  4. Demonstrate the use of different problem-solving techniques as related to computational thinking, including problem decomposition and algorithmic solutions to problems. 
  5. Through projects and quizzes, demonstrate knowledge of abstraction, encapsulation, inheritance, and polymorphism. 
  6. Solve and decompose programming problems and implement some basic algorithms for searching and sorting.
  7. Use basic tools such as ssh, the Linux shell, and IDEs for coding and debugging.

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

As a student enrolled in this course, one of your responsibilities is to submit course work by the due dates listed in Canvas and Codio. With that said, we take our role as your instructor very seriously, and, in fact, we care about how well you do in this course and that you have a satisfying, rewarding experience.

To that end, it is our commitment to you to respond individually to the work you submit in this class and to return your work in a timely manner. Many items in this course are automatically graded.  Items that require manual grading will be graded within 1 week. (If, however, due to unforeseeable circumstances, the grading of your work takes longer than the times we have listed here, we will keep you informed of our progress and make every effort to return your work with feedback as soon as we can.)

Keep a copy of all work created for the course, including work submitted through Canvas course learning management system.

To have access to the full list of assignments and due dates, please access our Canvas course.

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.
  • 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 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.)

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.

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.

Reading Assignments

Codio Reading Assignments are assigned on a weekly basis. They have due dates related to the units they are assigned but will be open until the end of the semester for review.

Exam Policies

There are three types of exams in the course. Coding Exams, Unit Exams, and Final Exam. 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.

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

Final exam are also held in lab. It is a 2 hours exam that covers all the contents from all units. They are closed book, closed note, & closed neighbor exams. This is to test your knowledge of the entire 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

• Assignments with no late period: In-Person Attendance/Participation, Online Discussions (for online section), Exams (Lecture Exams, Coding Exam, Final Exam)

• Assignments with late period: Labs, Programming Assignments

One week extension, with exception for the Assignments at the last week of classes

• Assignments you can do during the entire semester: Readings, Quizzes (Retrieval Practice Activities – RPAs). You should practice at least once before the exam for the module. You should practice each quiz at least 3 times in a spaced and interleaved manner during the semester. Each attempt should be spaced in at least 24 hours interval.

Academic Misconduct Policy

This course is first and foremost a problem-solving course based on a programming language. The objective of the course is to learn how to solve problems in a new programming language and the skills necessary to use it.

This course will adhere to the CSU Academic Integrity/Misconduct policy as found in the General Catalog and the Student Conduct Code.

Academic integrity is conceptualized as doing and taking credit for one’s own work. Violations of the university’s academic integrity standards include, but are not limited to:

  • Cheating—includes using unauthorized sources of information and providing or receiving unauthorized assistance on any form of academic work or engaging in any behavior specifically prohibited by the faculty member.
  • Plagiarism—includes the copying of language, structure, ideas, or thoughts of another, and representing them as one’s own without proper acknowledgment.
  • Unauthorized Possession or Disposition of Academic Materials—includes the unauthorized selling or purchasing of examinations or other academic work; stealing another student’s work; unauthorized entry to or use of material in a computer file; and using information from or possessing exams that an instructor did not authorize for release to students.
  • Falsification—includes any untruth, either verbal or written, in one’s academic work.
  • Facilitation—includes knowingly assisting another to commit an act of academic misconduct.

Academic integrity lies at the core of our common goal: to create an intellectually honest and rigorous community. Because academic integrity, and the personal and social integrity of which academic integrity is an integral part, is so central to our mission as students, teachers, scholars, and citizens, I will ask that you affirm the CSU Honor Pledge as part of completing your work in this course.

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

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

At a minimum, violations will result in a grading penalty (e.g., negative points) in this course and a report to the Office of Conflict Resolution and Student Conduct Services. For example, the first violation will result in a grading penalty and an academic misconduct report, the second violation will result in failing the course and an academic misconduct report.

Generative AI tools such as ChatGPT or Claude are increasingly powerful and might be capable of solving some of the assignments. However, the assignments must be your own work and the use of these tools for generating assignment solutions is prohibited (will be treated as a violation of academic integrity). Assignment will be penalized with a negative grade if you used Gen AI, and you will fail the course if you use Gen AI in any exam (Unit, Code, and Final).

There are multiple reasons why these tools are detrimental to your learning experience:

  • They rob you of the ability to think and learn the concepts for yourself since solving problems is an essential step to gaining a solid understanding of the material.
  • You will struggle with the in-classroom quizzes and exams where you will not have access to these tools.
  • While we acknowledge that these tools are likely to become an important part of a software engineer’s workflow in the future, you are much more likely to use these tools in an effective manner if you already have expertise in the relevant technical topics. Developing such expertise requires putting in the effort to learn these topics without the assistance of these tools.
  • These tools are prone to generating imperfect or even incorrect solutions, so trusting them blindly can lead to bad consequences.

Ultimately, you will get out of the class what you put in. Simply copying and pasting code from ChatGPT/Claude or any other Generative AI will not lead to any learning. If you are stuck on the assignments, reach out to the course staff (instructor and UTAs). The course staff is here to help you!

Further information about Academic Integrity is available at CSU’s Academic Integrity – Student Resources.

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.

Assignment Category and Grade Percentage – In-Person – 001 Section

ASSIGNMENTGRADE PERCENTAGE
Readings5%
Worksheets/Participation5%
Labs Attendance & Completion10%
Programming/Homework5%
Retrieval Practice Activities (RPAs)/Quizzes15%
Unit Exams20%
Coding Exams20%
Final Exam20%
Total:  100 %

Assignment Category and Grade Percentage – Online – 801 Section

ASSIGNMENTGRADE PERCENTAGE
Readings5%
Online Discussion/Participation10%
Labs Attendance & Completion0%
Programming/Homework10%
Retrieval Practice Activities (RPAs)/Quizzes15%
Unit Exams20%
Coding Exams20%
Final Exam20%
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)