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
|
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 |
| Dates | Lesson Topic | Assignment | Assessment |
|---|---|---|---|
|
Week 1 |
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
| 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% |
| 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.