Course Level

CS0

These are precursor courses to CS1 courses for computer science majors OR they can be breadth or core courses for non-majors. CS0 courses introduce computational thinking and problem solving to students with limited experience with computing. They may require no programming or may introduce some basic programming concepts. Learning goals typically include building problem solving skills and providing students a broad survey of the topics within the discipline of computer science. A CS0 course can be very useful for students who are trying to figure out whether computer science is for them. Because of this, it can serve as a valuable recruiting site for CS majors, especially for groups traditionally underrepresented in computing majors.

CS1

These are introductory courses for programming and tend to cover fundamental programming concepts such as control structures, variables, arrays, and functions, and development methods such as testing and debugging. This classification also includes searching and sorting although some curricula put this material in a second course. This course aligns with the College Board’s AP CS A course.

Data Structures

This refers to programming-centric courses that cover the choice, implementation, and use of linear and non-linear data structures including stacks, queues, trees (including balanced trees), graphs, etc. This will also cover advanced sorting techniques.

Discrete Math

This describes courses that cover the study of non-continuous mathematical structures such as integers, graphs, and logic statements.

Other

Any other computer science course not covered above. Some legacy CS2 materials may be designated as "Other,"  however, newly submitted materials must be from the courses types listed above.


Evidence-Based Practices for Inclusion

Great teaching means reaching ALL of your students. To be accepted into the collection, materials must make effective use of inclusion practices as outlined in the NCWIT Engagement Practices Framework or another research-practice that improves student engagement, especially for underrepresented populations. These may include frameworks such as culturally relevant pedagogy or Universal Design for Learning (UDL).

Assignment

Usually an out-of-class unsupervised activity intended to be completed outside the formal instructional setting. It is designed to be completed within a short period of time (usually 1-3 weeks).

Project

A multi-part activity that often combines multiple topics into a single, comprehensive solution. The product at the conclusion of a project in computer science is often a program. Sometimes a project also requires the submission of supplemental materials, such as a design document or a slide deck. Projects usually take longer than two weeks to complete (if shorter, the Lab or Assignment designation may be more appropriate).

Lab

An in-class activity designed to be completed during a designated ‘lab’ period or section. Labs often involve a sequence of tasks that are guided by an instructor or facilitator. Labs are often supervised and often for credit although sometimes credit may be given for participation rather than the completed submission.

Tutorial

A student activity consisting of structured drills and/or training modules that (usually) lead students through a sequence of steps and cover a very limited topic or concept. The purpose of a tutorial is usually instruction rather than evaluation and therefore if credit is given it is typically for completion.

Lecture Slides

In-class materials for introducing a new research area, concept, or activity. providing step-by-step coverage of content, concepts, or activities. We will The collection only accepts well-annotated slides with supplementary implementation guidance for instructors who might want to use the slides.

Translational Research

A paper translating computer science education research into actions and advice for the practitioner in the classroom. This type of submission usually covers a particular teaching practice or intervention. The paper should offer practical advice on a particular approach to engaging students.

Other Material Type

A generic label for any materials that don’t easily fit into the previous Material Types. Examples include Animations /Visualizations/Applets, Videos, Games , and Online Tutors (Guo).


Knowledge Unit

As outlined in the ACM and IEEE CS 2013 report:

Fundamental Programming Concepts

This is where the majority of the content will likely occur. This includes the core topics of data types (including arrays and dictionaries), loops, conditional statements, objects/classes, methods, parameters. Mostly found in materials from CS1 courses.

Fundamental Data Structures

Submissions that cover concepts associated with data structures. Examples include: linked lists, stacks, queues, trees, graphs, hash tables. Mostly found in materials from the Data Structures course.

Development Methods

Submissions dealing with the software development process specifically. This may include design, specifications, testing techniques, code reviews, or defensive programming.

None of the previous Knowledge Units apply.


CS Topics

Please identify the terms, concepts, and principles targeted in this submission. These are usually associated with the various Knowledge Units in computing (e.g., (such as variables, dynamic programming, Dijkstra's algorithm, and graphs). Accurately identifying the CS Topics is important in helping other instructors find your materials as it is one of the leading ways users search the site. NOTE: This is a finite list; additional topics may be added at the publication stage as requested.