AI-142-paul.wilmoth-2026-08-20-01-10-42

Title of Course Programming Fundamentals II

Prefix and Number AI 142

Semester and Year [tbd]

Number of Credit Hours 4

Prerequisites AI 141

Course Details

Day and Time: [tbd]

Meeting Location: [tbd]

 

Instructor Contact Information

Instructor Name: [tbd]

Instructor Contact Information: [office location, phone, email] [tbd]

Instructor Office Hours: [click here for best practices] [tbd]

 

TA Name: [tbd]

TA Contact Information: [office location, phone, email]: [tbd]

TA Office Hours: [click here for best practices] [tbd]

 

Course Description

This course advances students’ programming and problem-solving skills through object-oriented design, data structures, algorithms, recursion, and concurrency using Python. Students study inheritance, polymorphism, and interfaces, along with linked lists, stacks, queues, hash tables, trees, heaps, and graphs. They implement traversal and search operations and use basic Big-O analysis to compare data structures and select appropriate solutions. Recursion is presented as a fundamental problem-solving technique and applied throughout the course. Students also examine threads, synchronization, and common concurrency problems, including race conditions. Generative AI use builds on AI 141, with students using it to compare design alternatives and data-structure trade-offs and to critique or refactor AI-generated code. Verification remains central, and assessments are completed without AI assistance to confirm independent mastery. 

 

Course Materials 

Books: Data Structures in Python, interactive zyBook subscription, Wiley

Other Materials: None

Fees: None

Student Learning Outcomes (SLOs)

Course Learning Outcomes

(students will be able to:)

Activities Supporting the Learning Outcomes Assessment of the Learning Outcomes
Design classes using encapsulation, inheritance, polymorphism, and interfaces to model problems (1c, 2a, 2g). Homework design exercises; lab exercises implementing class hierarchies Lab checkpoints; programming assignments; exam questions (design and code)
Apply core OOP design principles and recognize appropriate use of common design patterns (1d, 1e, 2a, 2b). Homework case studies; lab discussion/critique of design alternatives Quizzes; programming assignment design rubric; exam questions
Implement and apply linear data structures (linked lists, stacks, queues) to solve problems (1e, 2g).

Lab implementation exercises; homework problem sets

Lab checkpoints; quizzes; programming assignments; exam questions
Apply recursion as a problem-solving technique, including tracing recursive calls and designing recursive solutions (1e, 2g).

Lab exercises tracing and writing recursive functions; homework problem sets

Lab checkpoints; quizzes; exam tracing/design questions; programming assignments
Implement and apply hash tables, trees (including balanced trees), and heaps, including relevant operations and collision/balancing strategies (1e, 2g).

Lab implementation exercises; homework problem sets

Lab checkpoints; quizzes; programming assignments; exam questions
Represent graphs and implement traversal/search algorithms (BFS/DFS) (1c, 1e, 2g).

Lab exercises implementing graph traversals; homework problem sets

Programming assignments; exam questions 
Analyze and compare data structures using Big-O to justify design choices (1d, 1e, 2b, 2c, 2d, 2e).

Homework analysis exercises; lab comparison exercises

Lab checkpoints; quizzes; exam questions
Implement basic concurrent programs using threads and synchronization, and identify common concurrency pitfalls (e.g., race conditions) (1e, 2c, 2g).

Lab exercises with guided concurrency examples; homework debugging exercises

Programming assignment; exam questions
Use generative AI to evaluate design and data structure trade-offs and to critique/refactor AI-generated object-oriented code, while independently verifying correctness (1d, 2b, 2e, 7b, 7e, 7f, 7g).

Labs incorporating AI-assisted design comparison/refactoring exercises; homework requiring pre/post-AI reflection

Programming assignment reflection component; AI-free quizzes/exam questions confirming independent mastery

Course Schedule

[Please note that a WSU semester is 15 weeks + Thanksgiving/Spring Break. The schedule below does not include the break.]

Dates Lesson Topic Assignment Assessment

Week 1
[dates]

L1-1: Intro to the class

L1-2: Review Python modules, recursion, classes, & lists

L1-3: Review using generative AI to critique & refactor code

Quiz 1 In-class activities, quiz, exam questions, lab questions
Week 2
[dates]

L2-1: Intro to data structures & abstract data types

L2-2: Linked lists I--inserts & iterating through linked lists

L2-3: Linked lists II--deletions & applications

Lab 1, Assignment 1, Quiz 2 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 3
[dates]

L3-1: Linked lists III--doubly & circular linked lists

L3-2: Stacks I

L3-3: Stacks II

Lab 2, Assignment 2, Quiz 3 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 4
[dates]

L4-1: Queues I

L4-2: Queues II

L4-3: Queues III

Lab 3, Assignment 3, Quiz 4 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 5
[dates]

L5-1: Inheritance I

L5-2: Inheritance II

L5-3: Exam 1

Lab 4 In-class activities, quiz, exam questions, lab checkpoints
Week 6
[dates]

L6-1: Polymorphism I

L6-2: Polymorphism II

L6-3: Polymorphism III

Lab 5, Assignment 4 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 7
[dates]

L7-1: Algorithm analysis I--time complexity & Big-O

L7-2: Algorithm analysis II--space complexity & Big-O

L7-3: Analyzing searching (sequential & binary searches) & sorting algorithms (bubble & selection sorts)

Lab 6, Assignment 5, Quiz 5 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 8
[dates]

L8-1: Binary trees & applications

L8-2: Binary search trees I--recursive inserts

L8-3: Binary search trees II--recursive deletes

Lab 7, Quiz 6 In-class activities, quiz, exam questions, lab checkpoints
Week 9
[dates]

L9-1: AVL trees I

L9-2: AVL trees II

L9-3: Red-black trees

Lab 8, Assignment 6, Quiz 7 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 10
[dates]

L10-1: B&B+ trees I

L10-2: B&B+ trees II

L10-3: Exam 2

Lab 9 In class activities, exam questions
Week 11
[dates]

L11-1: Hash tables I

L11-2: Hash tables II

L11-3: Hash tables III

Lab 10, Assignment 7 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 12
[dates]

L12-1: Concurrency & parallel programming

L12-2: Applying threads and synchronization mechanisms to hash tables

L12-3: Common pitfalls with parallel programming

Lab 11, Assignment 8, Quiz 8 Quiz, exam questions, assignment
Week 13
[dates]

L13-1: Binary heaps--min/max heap ordering & priority queues

L13-2: N-ary heaps

L13-3: Binomial heaps

Lab 12, Assignment 9, Quiz 9 In-class activities, quiz, exam questions, lab checkpoints, assignment
Week 14
[dates]

L14-1: Sorting I--insertion & heap sort with algorithm analysis

L14-2: Sorting II--merge & quick sort with algorithm analysis

L14-3: Sorting III--lower bound & radix sort with algorithm analysis

Lab 13, Quiz 10 In-class activities, quiz, exam questions, lab checkpoints
Week 15
[dates]

L15-1: Graphs I--intro to graphs

L15-2: Graphs II--shortest-path algorithms

L15-3: Graphs III--minimum spanning trees

Lab final In-class activities, exam questions

 

 

Expectations for Student Effort 

Academic credit is a measure of the total minimum time commitment required of a typical student in a specific course. For the WSU semester system, one semester credit is assigned for a minimum of 45 hours of student effort. See Academic regulation 27. 

For a 15-week course, students should expect to spend a minimum of 12 hours per week outside of class and lab times for each 4-credit course engaged in activities including, but not limited to: reading course material, reading official documentation for the used programming language and frameworks, contributing to the online discussions, studying for and completing assessments, etc.

 

Grading

Assignment Breakdown
Type of Assignment (tests, papers, etc) Points Percent of Overall Grade
Assignments 1 – 9 including demos 100 pts each for assignments 1 – 8, 300 pts for assignment 9 – 1100 pts total 33%
Quizzes 1 - 10 15 pts each – 150 pts total 5%
Labs 1 - 13 10 pts each – 130 pts total 20%
Exam 1 100 pts 10%
Exam 2 100 pts 10%
Final written exam 150 pts 20%
Class participation & attendance 10 pts 2%

 

Grading Schema
Grade Percent Grade Percent
A

94 – 100%

C 70 – 73.99%
A-  90 – 93.99% C- 66 – 69.99%
B+ 86 – 89.99% D+ 62 – 65.99%
B 82 – 85.99% D 58 – 61.99%
B- 78 – 81.99% F 0 – 57.99%
C+ 74 – 77.99%  

[Provide information about how grades will be rounded (eg, if 89% earns a B+ and 90% earns an A-, what grade is given to a student with an 89.5?]


Attendance and Make-Up Policy 

Quiz Make-up Policy: All quizzes are take-home. They will be assigned most Fridays and due by the following Monday by midnight. You cannot make up quizzes. 

Exam Make-up Policy: If an emergency occurs, the instructor will accommodate the student as much as possible. Make-up exams will not be possible unless the student speaks with the instructor at least one day in advance. I understand emergencies do occur and rescheduling of exams because of these are to be determined by the instructor. 

Assignment Demo Make-up Policy: If you miss your demo, then you have a max of two opportunities to reschedule during your TAs office hours throughout the semester. Once you have used your two rescheduling opportunities, you will no longer have the opportunity to reschedule a demo for the rest of the semester. Your assignment will not be graded unless you demo your solution. 

Lab Make-up Policy: You may make up some labs if you have an excuse that is acceptable as determined by the instructor or TA, such as being sick, emergency, etc. or your lab lands on a holiday. However, you are still responsible for completing the lab in your own time and demoing your solutions the following week in lab or attending a different lab for the week. If you decide to attend a different lab for the week because of a valid excused reason, please be sure to email the TA of the lab and let him/her know that you will be attending the lab.

 


Academic Integrity Statement

Academic integrity is at the heart of all higher education philosophies. Adhering to academic integrity policies ensures that you provide yourself with the best education possible. Maintaining academic integrity assures you receive the credit you deserve for your ideas. 

You are expected to know and understand Washington State University Academic Integrity Policies. Copying and plagiarism of other sources will result in an automatic 0 or F on the assignment. For a second offense, an automatic F in the course will be awarded. In all cases, university authorities will be notified and the proper procedures will be followed. Possible outcomes resulting from violating these policies include denial of certification into your program and expulsion. 

For this course both group (for labs) and individual work (for all other assignments, quizzes, and exams) will be required. We will be using plagiarism detection software in this class to determine similarities between programs. All individual work is designed to be completed with minimal help from your classmates, although you can discuss ideas, you should not generally share code with each other. If you do receive some help from classmates, tutors, and/or TAs, please identify their names in the comment block at the top of your main source file and above the block of code that was shared. You may also use inline comments to indicate specific statements that were shared between you and others. If you do not identify the students that helped you with your program including tutors and/or TAs, then you are at risk of being identified as copying or plagiarizing. If you and other students submit the same solution with only minor changes, this is considered copying/plagiarism and all parties involved will receive a 0 on the work and will be reported to the Office of Student Conduct. If you apply code from a website, then you must also identify the website in a comment block. If all of your work comes directly from one or more online resources, then this also considered copying/plagiarism and you will receive a 0 on the work and will be reported to the Office of Student Conduct. Please also note that at times we will use generative (gen) AI for helping with some tasks. If you use gen AI outside the guidelines for the class, then you will also be reported to the Office of Student Conduct. If help is required, please ask the instructor or TA for guidance first! We are always more than willing to help!! 

Campus statement: “Academic integrity is the cornerstone of higher education. As such, all members of the university community share responsibility for maintaining and promoting the principles of integrity in all activities, including academic integrity and honest scholarship. Academic integrity will be strongly enforced in this course. Students who violate WSU’s Academic Integrity Policy (identified in Washington Administrative Code (WAC) 504-26-010(4) will receive an automatic 0 or F on the assignment. For a second offense, an automatic F in the course will be awarded. You will not have the option to withdraw from the course pending an appeal, and will be reported to the Center for Community Standards. 

Cheating includes, but is not limited to, plagiarism and unauthorized collaboration as defined in the Standards of Conduct for Students, WAC 504-26-010(3). Read and understand all of the definitions of cheatingLinks to an external site.. If you have any questions about what is and is not allowed, ask your course instructor. 

If you wish to appeal a instructor’s decision relating to academic integrity, please use the form available at communitystandards.wsu.eduLinks to an external site.. Make sure you submit your appeal within 21 calendar days of the instructor’s decision.” 

Please thoroughly review the following website for more information about the WSU academic integrity policy https://communitystandards.wsu.edu/policies-and-reporting/academic-integrity-policy/Links to an external site.. 

Please also review the following website for more information about the EECS academic integrity policy (if any discrepancies are found within the EECS and WSU academic integrity policies, always follow the WSU policy) http://www.eecs.wsu.edu/~schneidj/Misc/academic-integrity.htmlLinks to an external site.. 

If you want to ask for a change in a decision about academic integrity, use the form at the Center for Community Standards website. You must submit this request within 21 calendar days of the decision.