CS1

A Tournament for Pong AI Engines

In this 2018 Nifty assignment, students write an AI engine for the game of Pong. Pong is a game enjoyed by people in general, by the CS1 community in particular, and by pigeons. In this open-ended assignment, students write an AI engine for Pong from scratch. Students can have their AI engines play against each other, and participate in a class-wide tournament. To design good AI engines, students have to read, understand, and modify the game engine code. The assignment is accessible to any CS1 student, but leaves room for a lot of exploration and creativity — we have had success engaging both excellent students who had little difficulty in CS1 and students who found CS1 challenging. 

NOTE: This is not a traditional CS1 assignment so it might make more sense used as a lab assignment or a bonus assignment.

CPE123 (CS1) Syllabus

This course is one version of Cal Poly's CPE123, an introductory course targeting incoming freshmen. All sections of CPE123 have the goal of engaging students in "demonstrating the relevance of computing to the world around them" by challenging "students with creative, constructivist challenges that are relevant to their own lives.” It assumes no prior experience in computer science.

In this version of CPE123, computational art is used as a means for exploring beginning computer programming, logic and math. The course uses Processing, an open source programming language and IDE built on the Java programming language.

“The hidden agenda of the class is to make you fall in love with the ability to translate thoughts into reality—also known as computer science.” - J. Clements

[Unlike other collection items, syllabi are not peer reviewed.]

CPTS111 (CS1) Syllabus

This is the first CS class for non majors and majors alike. No prior programming knowledge is required, and there are no prerequisites. This course introduces concepts such as how to solve problems by designing and implementing algorithms in Python. Specific programming concepts include: arithmetic, conditionals, iteration, functions, file IO, lists, and dictionaries. Upon successful completion of the course students should have gained the following skills and proficiencies: 

TEACHING PAPER: Implementing UNL’s Computational Creativity Exercises

In this teaching paper, the creators of the Computational Creativity unplugged activities explain the rationale for their approach to combining instruction in computational thinking and in creativity, and provide guidance on implementing their activities in your courses.

CS2 Syllabus

The CS2 course introduces object-oriented programming, data structures, and more sophisticated algorithms than in CS 171 (Computer Science I) which is a prerequisite for this course. You are not expected to have any prior experience with Java. In terms of the ACM’s Computer Science Curriculum 2013, this course addresses the following knowledge areas: • Algorithms and Complexity (AL) • Discrete Structures (DS) • Programming Languages (PL) • Software Development Fundamentals (SDF) • Software Engineering (SE)

This course is a required intro-level course for two of the three Lewis & Clark CS departmental majors: Computer Science and Computer Science and Mathematics.

POGIL: Internet III - Addresses

This is a team-based classroom activity designed for Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about how addresses on the internet works by comparing the IP addresses on the internet to SSNs for people and domain names to postal addresses and more. This is part three of a three-part series on POGIL Internet. Click to review the preceding lessons (Internet I, Internet II)

The attached files are the student versions of Internet III. Please contact the author (Clif Kussmaul, clif@kussmaul.org) for teacher versions with solutions and additional information. Also see instructor information in the activity.

Engagement Excellence

POGIL: Internet II - Data

This is a team-based classroom activity designed for Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about how data moves on the internet by comparing it to vehicles on a highway system. The also explore the concept of Net Neutrality. This is part two of a three-part series of POGIL exercises on the Internet. Click to review the preceding (Internet I) and and subsequent (Internet III) assignments.

The attached files are the student versions of Internet II. Please contact the author (Clif Kussmaul, clif@kussmaul.org) for teacher versions with solutions and additional information. Also see instructor information in the activity.

POGIL: Search II - Web Search

This is a team-based classroom activity designed for Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn how search engines work and interface with the internet, and how to use search engines more effectively. 

This is part two of a two-part series on POGIL Search. Part I can be found here. The attached file is the student version of the activity. Please contact the author (Clif Kussmaul, clif@kussmaul.org) for the teacher versions with solutions and additional information.

Ice Breaker - Paper Airplanes

This is an ice-breaker activity you can use early in a course to help students get to know each other in a low risk, fun way.

How to Do It: Students are given templates and instructions on how to build a simple paper airplane. Before making their plane, each student writes on their paper three things about themselves that they are willing to share. It's fun to encourage them to share creative or unexpected things.

They then send their plane off into the classroom, picking up others' planes and flying them. Don't be afraid to let pandemonium reign for a while! Then, have each student pick up a plane that is not their own. The goal, then, is for everyone to find the creator of the plane by introducing themselves to successive individuals, asking only questions pertaining to what's written on the plane. Once everyone has found their plane's creator, have students form a circle. The first person introduces the creator of their plane (their name and the 3 things). Then, that person introduces the creator of their plane, and so on until everyone has been introduced. 

Ray Casting Project

This project is a series of 5 assignments which incrementally teach the students about Ray Casting. Ray casting is a simulation and approximation of light traveling from a virtual object (for this project, a sphere) to a virtual eye that can be used to generate a three-dimensional image.

The project emphasizes functional decomposition through the topics of data aggregation, loops, lists/arrays, conditional statements, and functions.

Subscribe to CS1