Endorsement Course Offerings

The CS Education curriculum at UNI currently consists of the following five courses which have been designed to align with the ISTE Standards for Computer Science Educators.  They have been approved by the Iowa BoEE and completion of all five courses will make existing Iowa license holders eligible for a computer science teaching endorsement in the state of Iowa.

Fundamentals of Programming (CS 1310/5133,  3 credits) 

This course is similar to a CS1 or “Introduction to Programming” course taught in most computer science departments.  However, it is taught with an emphasis on pedagogy and outcomes appropriate for the high school classroom.  The course will focus on two programming paradigms – Scratch, a graphical, event-driven programming language, and Python, a syntax/text-based, procedural language.  The course focuses on the fundamentals of programming—data and actions, sequence, selection, repetition, and modularization.  It also emphasizes teaching with and about “good” code (versus “working” code). 

[Taught fall of each year for both undergraduates and in-service teachers].

Foundational Concepts in Computer Science (CS 2310/5133,  3 credits)

This course addresses the “big ideas” of computer science such as the way computers work (instruction cycle to operating systems), the structure and workings of the internet, security and privacy, databases and big data, and computing for “good.”  While appropriate for teachers of the AP CSP program this course is intended for all CS teachers to help them make connections between a wide variety of CS topics.  In addition to specific content the course will include the pedagogy of teaching in a manner that helps students formulate reasonable models for these big ideas.   Participants will explore the AP CSP Framework and several different curricula that implement this framework.

[Taught fall of each year for undergraduates and summer for in-service teachers].

Teaching and Learning of Programming (CS 3310/5310,  3 credits) 

This course addresses the teaching of introductory programming to all students.  It will be a combination of a CS methods course with additional practice in programming.  It will be based on an ongoing CoP reflecting on the classroom implementation of the material learned in Fundamentals of Programming.  It will consist of assignments and discussions regarding classroom experiences and will address CS pedagogy and topics including assessing learning/Student Outcomes in the classroom, broadening participation, CS Teaching resources, national K-12 CS Standards, and pedagogical considerations (lecture vs. activities vs. blended learning).

[Taught spring of each year for both undergraduates and in-service teachers].

Data Structures and Algorithms (CS 3320/5320,  3 credits) 

This course introduces the use and implementation of data and file structures such as sets, hash tables, stacks, trees, queues, heaps, and graphs. Searching and sorting. Includes algorithm design techniques such as dynamic programming and greedy algorithms; complexity analysis of algorithms; efficient algorithms for classical problems; intractable problems and techniques for addressing them.

[Taught fall of each year for both undergraduates and in-service teachers].

Computer Science Methods (CS 4310/5310,  3 credits) 

This course addresses effective strategies for teaching computer science. Participants will develop a project, either in a classroom or during an after-school or similar experience that seeks to teach a section of the CS standards targeted at the student population with which they are working. Projects should stress inclusivity and appeal to a diverse group of students.

[Taught fall of each year for undergraduates and summer for in-service teachers].

For additional information, contact Dr. Ben Schafer – schafer@cs.uni.edu