EDUCATION

Computer Science Initiatives at Cal Poly

We are passionate about computer science education!

Faculty members in the computer science and software engineering department are working with faculty around campus to prepare students to teach computing. Some ongoing efforts in this area include the following.

One way we support broadening participation in computing is via offering courses to support non-majors interested in computing (consider CSC 121) and especially those interested in pursuing a teaching credential related to computing for K-12.  California has a great need for more educators interested in learning and teaching computing! The Alliance for California Computing Education for Students and Schools web page has great information about the state of CS education in our state.

Currently in California, this is accomplished via supplemental authorization.  We support this via the offering of several courses that make up the core courses needed for the supplemental authorization. The required courses are as follows, (see below for a longer course listing):

  • CSC 312: Computational Thinking for Educators (only for supplemental authorization)
  • CSC 314: Software Design and Data Structures for Educators  (only for supplemental authorization)
  • CSC 313: Teaching Computing
  • CSC 320: Practical Computer Security for Everyone

Other CS education initiatives include:

  • CUE Ethics: Collaborative Research: An inclusive and In-Depth Computing Curriculum to help Non-majors Learn Small Patterns to Solve Big Problem
    • CSC 121 Computing for all I
  • The CS Ed reading group.  We meet weekly, contact Ayaan Kazerouni (ayaank@calpoly.edu) to sign up.

Relevant coursework for the supplemental authorization and for those interested in computer science education include:

CSC 121. Computing for All I. 4 units

  • 2020-21 or later catalog: GE Area B4
  • 2019-20 or earlier catalog: GE Area B1
  • Prerequisite: MATH 115; or appropriate Math Placement Level.
  • Fundamentals of computational thinking in the study of non-computing disciplines. Ethical and social considerations of computing. Data gathering and representation. Logic and computational reasoning. Data and procedural abstraction. Problem decomposition. Code patterns for algorithmic problem-solving. 3 lectures, 1 activity. Fulfills GE Area B4 (GE Area B1 for students on the 2019-20 or earlier catalogs); a grade of C- or better is required in one course in this GE Area.
  • “This course explicitly and intentionally differs from a traditional introductory computing course. Our goals include an explicit focus on developing computational thinking skills, on exploring the habits of mind of computing practitioners, and on careful consideration for the ethical implications of computing and the use of technology. This course is built on open and safe discussions of sometimes sensitive or controversial topics. Again, this is a distinctly different approach to the study of computing than is typically found in a traditional introductory computing course. Active and respectful participation in these discussion activities is required.”

CSC 300. Professional Responsibilities. 4 units

  • Prerequisite: Completion of a GE Area A3 with a grade of C- or better; CSC/CPE 357; and junior standing.
  • The responsibilities of the computer science professional. The ethics of science and the IEEE/ACM Software Engineering Code of Ethics. Quality tradeoffs, software system safety, intellectual property, history of computing and the social implications of computers in the modern world. Applications to ethical dilemmas in computing. Technical presentation methods and practice. 3 lectures, 1 laboratory.

CSC 312. Computational Thinking for Educators. 4 units

  • Prerequisite: Completion of a GE Area C2 with a grade of C- or better; and a GE Area B4 with a grade of C- or better.
  • Fundamentals of computational thinking in the context of K-12 Education. Ethical and social considerations of computing. Data gathering and representation. Logic and computational reasoning. Data and procedural abstraction. Problem decomposition. Code patterns for algorithmic problem-solving. 3 lectures, 1 laboratory.

CSC 313. Teaching Computing. 4 units

  • Prerequisite: CSC 314 or CPE/CSC 202 with a grade of C- or better.
  • An introduction to pedagogical methods and practical techniques for computer science education: selecting appropriate content, designing assignments and activities, evaluating student learning, and evaluating teaching efficacy. Hands-on guided curricular design activities and real-world practice. 3 lectures, 1 laboratory.

CSC 314. Software Design and Data Structures for Educators. 4 units

  • Prerequisite: CSC 312 with a grade of C- or better.
  • A programming-based introduction to software design techniques, data structures, and algorithms, appropriate for K-12 computer science teachers. Satisfies a requirement for the computer science specific Supplementary Authorization for teaching K-12 computer science in CA. 3 lectures, 1 laboratory.

CSC 320. Practical Computer Security for Everyone. 4 units

  • 2020-21 or later: Upper-Div GE Area B
  • 2019-20 or earlier catalog: GE Area B5, B6, or B7
  • Prerequisite: Junior standing; completion of GE Area A with grades of C- or better; and one course in GE Area B4 with a grade of C- or better (GE Area B1 for students on the 2019-20 or earlier catalogs).
  • Exploration of practical computer security in everyday life for non-majors. Covering the principles, technologies and tools used to secure the Internet and keep ourselves digitally secure, including: privacy and anonymity, web and data security, cryptography, malware, authentication and access control. 3 lectures, 1 laboratory. Fulfills GE Area Upper-Division B (GE Areas B5, B6, or B7 for students on the 2019-20 catalog).

CSC 513. Computing Education Research and Practice. 4 units

  • Prerequisite: Graduate standing.
  • An overview of the current landscape of computing education research and practice, covering key research findings about how people learn computing, issues of diversity and inclusion in CS, and a discussion of how and why we should teach everyone computing. 4 seminars.