Syllabus

I. Course information
Title: IS4010: Application development with artificial intelligence
Course #: IS4010
Credit hours: 3
Term: Spring 2026
Prerequisites: IS 3050
II. Course description
This course introduces students to computer programming with a focus on object-oriented principles and the integration of AI-powered tools. Students will develop solutions to process data and implement algorithms in a modern integrated development environment (IDE). The curriculum begins with Python fundamentals and transitions to the Rust programming language for more advanced topics. A central theme is the practical application of AI code assistants (like GitHub Copilot and Gemini) to enhance problem-solving, accelerate development, and prepare students for the future of software engineering.
III. Student learning outcomes
Upon successful completion of this course, the learner will be able to:
- Develop and debug programs in Python and Rust
- Apply object-oriented programming (OOP) principles to create and manipulate classes and objects
- Control program flow using conditional logic and loops
- Store and manipulate collections of data using appropriate data structures like lists and dictionaries
- Write robust programs that gracefully handle unexpected errors
- Fetch and process data from external files (JSON) and web APIs
- Use Git and GitHub for version control in a collaborative environment
- Write effective prompts to leverage AI assistants for code generation, explanation, and debugging
- Understand the core concepts of Rust, including ownership, borrowing, and error handling
IV. Instructor information
Name: Brandon Greenwell, PhD
Title: Director, Data Science @ 84.51° / Annual Adjunct Faculty, UC Lindner College of Business
Office information: NA
Office: Virtual (Teams)
Email: greenwbm@ucmail.uc.edu (use Teams for fastest response!)
Office hours: By appointment (reach out on Teams)
Communication policy: Students are encouraged to contact me anytime via the course’s Teams channel. I’m usually very responsive during weekdays and will reply within 24 hours.
V. Course materials
Required tools
- Visual Studio Code (VS Code)
- Git & a GitHub account
- Python 3.10+
- The Rust programming language toolchain
- GitHub Copilot (available for free via the GitHub Student Developer Pack)
Optional tools
- Gemini CLI (Google’s AI assistant for terminal-based development)
Course materials & repository
- No required textbook - All course materials are provided digitally
- Course template repository: https://github.com/bgreenwell/is4010-course - Contains all lab assignments, project specifications, and student resources. Students will clone/fork this repository to access assignments and submit their work.
- Lecture slides and additional materials: Available via Canvas and linked from the course template repository’s README
- Submission workflow: All coding assignments are submitted via individual GitHub repositories following the workflow established in Lab 01
VI. Commitment to all perspectives
Honest attempts to understand the perspectives of others facilitate learning and we will always strive to achieve this goal. As your instructor, I am committed to creating and fostering a positive learning and working environment based on open communication and mutual respect. If there are aspects of the design, instruction, and/or experiences within this course that result in barriers to your inclusion, participation, or the accurate assessment of your performance and achievement, please let me know.
VII. Link to PACE

This course aligns with PACE, the Lindner College of Business platform for developing the total business professional.
P – Professionalism
- Enhance oral & written communication through technical documentation, code comments, and project presentations
- Develop and practice teamwork skills through collaborative coding projects and version control workflows
- Practice professional habits of punctuality, preparation, respect and participation in modern software development environments
A – Academics
- Develop foundational knowledge of programming concepts and their applications in real-world software development
- Begin applying programming and AI-assisted development techniques to critically analyze and solve technical problems
C – Character
- Learn and apply leadership techniques for project management in software development (plan, brief, execute, debrief)
- Build an understanding and initial skills of managing varied backgrounds and perspectives in diverse development teams
- Understand importance of ethics and social responsibility in AI-assisted development and software engineering practices
E – Engagement
- Build understanding of importance and practices of networking through interactions with the developer community and open-source contributions
- Develop awareness and appreciation of involvement in technology communities, coding bootcamps, and professional development opportunities
VIII. Instructional methods
This course utilizes a hands-on, lab-focused approach. Class time will consist of mini-lectures, live coding demonstrations, and extensive hands-on workshops where students can work on assignments with direct support from the instructor. The course uses Canvas for announcements and grade tracking, and GitHub for all code and assignment submissions. You can access Canvas directly at https://uc.instructure.com. You will be automatically enrolled in a Canvas 101 course that will introduce you to the basics of how to use Canvas – you’ll see that course when you log in.
IX. Duo multi-factor authentication
To reduce data security risks posed by phishing to students, faculty, and staff, the University implemented two-factor authentication (Duo) across most of its systems, including Canvas. In order to access this class’s course materials in Canvas, all students will need to enroll in Duo multi-factor authentication. To enroll in Duo multi-factor authentication, please follow these instructions. The Office of Information Security recommends using the Duo Mobile app on your smartphone for the quickest, most user-friendly experience. Please see the FAQ on this page for a list of alternate options for accessing Duo that do not involve needing a smartphone.
If you do not have access to your phone or other two-factor device, please contact the Lindner IT Service Desk at (513) 556-7159 to obtain a bypass code that will let you log in to Canvas. This code will allow you to log in once.
X. Course communication
We will exclusively use Microsoft Teams for all course communication. Join our course Teams channel here: IS4010 Course Team
Students are strongly encouraged to: - Post questions to the General chat - Your classmates likely have similar questions and can benefit from the discussion - Direct message me for private concerns or individual questions - Check Teams regularly for announcements, updates, and peer discussions
This is the fastest way to get help and stay connected with the class community. While university policy requires email as the primary communication method, Teams will be our primary platform for day-to-day course interactions.
XI. Course and grading policies
Course structure
Changes to the syllabus, due dates, course requirements or grading requirements will be made as far in advance as possible. Due dates will be clearly marked in Canvas. All assignments will be submitted via GitHub repositories with links provided in Canvas.
Academic integrity & AI policy
As with all Lindner College of Business efforts, in this course you will be held to the highest ethical standards, critical to building character. This course operates on a modern principle: use AI, but use it wisely. The use of AI tools like GitHub Copilot and Gemini is not only permitted but encouraged. However, the goal is for you to learn.
- You are the pilot, AI is the co-pilot. You are ultimately responsible for every line of code you submit
- Always understand the code. If you use AI to generate something, you must be able to explain what it does, how it works, and why it’s the correct solution
- Acknowledge your partner. In your final project, you will be required to document how you used AI tools in your development process
Submitting code you do not understand is considered academic misconduct. The Lindner College of Business “Two Strikes Policy” is in effect:
- All academic programs at the Lindner College of Business use this “Two Strikes Policy”; Any student who has been found responsible for two cases of academic misconduct may be dismissed from the College
- All cases of academic misconduct (e.g., copying other student’s assignments, failure to adequately cite or reference, cheating, plagiarism, falsification, etc.) will be formally reported by faculty; and
- Students will be afforded due process for allegations as outlined in the policy
Accessibility resources
The University of Cincinnati provides reasonable accommodation to students with disabilities through the Accessibility Resources office. Accommodations can ensure equal access and provide individualized support for students with diagnosed disabilities. If you have a disability that may influence your performance in this course, you must meet with the Accessibility Resources Office to arrange for reasonable accommodations to ensure an equitable opportunity to meet the course requirements. You can email AccessResources@uc.edu, call 513-556-6823, or stop by the Commons Edge North pavilion (near Daniels/Dabny Hall) to initiate the accommodation process.
Religious accommodations (Testing your Faith Act)
Ohio law and the University’s Student Religious Accommodations for Courses Policy 1.3.7 permits a student, upon request, to be absent for reasons of faith or religious or spiritual belief system or to participate in organized activities conducted under the auspices of a religious denomination church, or other religious or spiritual organization and/or to receive alternative accommodations with regard to examinations and other course requirements due to an absence permitted for the above-described reasons. Not later than fourteen days after the first day of instruction in the course, a student should provide the instructor with written notice of the specific dates for which the student requests alternative accommodations. For additional information about this policy, please see The Office of the Provost’s page.
Counseling services, Clifton campus
Students have access to counseling and mental health care through the University Health Services (UHS), which can provide both psychotherapy and psychiatric services. In addition, students can receive three free professional counseling sessions upon request through the Counseling and Psychological Services (CAPS). These sessions are not associated with student’s insurance coverage. Students are encouraged to seek assistance for anxiety, depression, trauma/assault, adjustment to college life, interpersonal/relational difficulty, sexuality, family conflict, grief and loss, disordered eating and body image, alcohol and substance abuse, anger management, identity development and issues related to diversity, concerns associated with sexual orientation and spirituality concerns, as well as any other issue or concern. After hours, students may call UHS at (513) 556-2564 or CAPS Cares at (513) 556-0648. For urgent physician consultation after-hours students may call (513) 584-7777.
You can learn more about CAPS services here: https://www.uc.edu/campus-life/caps.html
Learn more about CAPS counselors and counseling services here: https://www.uc.edu/campus-life/caps/support/counselor.html
Let’s talk
In addition to counseling sessions, CAPS offers “Let’s Talk sessions for students who just want to try out speaking to someone.”Let’s Talk is not therapy. It is a free, confidential, 15-20 minute consultation with a CAPS clinician. Clinicians will listen to your concerns and offer support, information, and resources. Learn more about Let’s Talk and see the current schedule here. ”
Counseling services at Lindner
UC has many resources that can support you on your academic journey. One resource that I would like to share with you is Counseling and Psychological Services (CAPS). Dr. LaSondra Wayne is Lindner’s embedded mental health clinician. CAPS provides mental health consultations, individual counseling, group counseling, crisis support and self-help tools to our students. Dr. Wayne supports our students with a variety of needs and experiences such as stress, anxiety, relationship concerns, depression, adjustment to college, learning difficulties and more. Meetings can be in person or via telehealth. Her office is located on the second floor, room 2381. To schedule an appointment with Dr. Wayne, please call 513-556-0648. Learn more about Dr. Wayne on the CAPS website or find her on the Lindner website here.
Title IX
Title IX is a federal civil rights law that prohibits discrimination on the basis of sex in education programs or activities that receive federal financial assistance. Title IX also addresses instances of sexual violence, dating or domestic violence, and stalking. If a student discloses a Title IX issue to me, I am required to forward that information to the Title IX Office. The Title IX Office will follow up with the student about how the University can take steps to address the impact on the student and the community. They will also inform the student of their rights and direct them to available resources. The priority is to make sure students are safe and successful here at the University of Cincinnati. Students are not required to talk to anyone in the Title IX Office. Students may also directly report any instances of sex-based discrimination, harassment or violence to the Title IX office at (513) 556-3349. Students who wish to know more about their rights and resources on campus can consult the Title IX website or contact the Title IX office directly at (513) 556-3349.
Reports may be filed through the Title IX Office website.
Missed and/or late examinations, quizzes, and graded exercises
Late submissions will be penalized 10% per calendar day unless prior arrangements have been made with the instructor. Since labs are due on Sundays at 11:59 PM, late penalties begin Monday morning. Extensions may be granted for documented emergencies or health issues. All requests for extensions must be made before the due date when possible.
Automated grading & feedback system
This course utilizes an advanced automated grading system designed to provide students with immediate, detailed feedback on their lab submissions while ensuring consistent and objective evaluation.
How it works
- Automated assessment: Sophisticated scripts automatically evaluate your GitHub repositories for code quality, functionality, and submission requirements
- Immediate feedback: Receive detailed feedback typically within 24-48 hours of submission through GitHub Issues in your repository
- Comprehensive analysis: Each submission is evaluated for repository setup, code functionality, documentation quality, and adherence to requirements
- Transparent scoring: Detailed point breakdowns show exactly how points were earned or lost for each component
Feedback format
Students receive personalized GitHub Issues containing: - Point breakdown: Clear explanation of points earned for each grading component - Specific test results: For code submissions, see which functions/features pass or fail automated tests - Improvement guidance: Actionable next steps to address any issues identified - Success recognition: Celebration of components that work correctly
Benefits
- Learning-focused: Feedback designed to enhance understanding and guide improvement
- Consistent evaluation: Objective, automated assessment ensures fair grading across all students
- Industry alignment: Experience with automated testing and continuous integration practices used in professional development
- Instructor availability: Automated grading of routine tasks allows instructor to focus on higher-level guidance during office hours
Note: Students earning perfect scores (10/10 points) typically will not receive feedback issues, as the system optimizes for providing detailed help where improvement is needed. Students can always ask questions about their submissions during office hours or via the Teams channel.
XII. Course schedule
| Week | Dates | Module | Topic(s) | Labs (10 pts each) | Notes |
|---|---|---|---|---|---|
| 1 | Jan 13, 15 | Foundations & modern tooling | Course intro, Git, GitHub, developer toolkit | Lab 01 (Jan 18, 11:59 PM) | |
| 2 | Jan 20, 22 | Foundations & modern tooling | AI code assistants (Copilot, Gemini), prompting | Lab 02 (Jan 25, 11:59 PM) | No class Mon Jan 19 (MLK) |
| 3 | Jan 27, 29 | Python fundamentals | Variables, data types, control flow, and loops | Lab 03 (Feb 1, 11:59 PM) | |
| 4 | Feb 3, 5 | Python fundamentals | Data structures: lists, tuples, dicts, and sets | Lab 04 (Feb 8, 11:59 PM) | |
| 5 | Feb 10, 12 | Python fundamentals | Functions and error handling | Lab 05 (Feb 15, 11:59 PM) | |
| 6 | Feb 17, 19 | Python fundamentals | Object-oriented programming (OOP) | Lab 06 (Feb 22, 11:59 PM) | |
| 7 | Feb 24, 26 | Building a Python application | Working with files and JSON | Lab 07 (Mar 1, 11:59 PM) | |
| 8 | Mar 3, 5 | Building a Python application | Professional Python & API Consumption | Lab 08 (Mar 8, 11:59 PM) | |
| 9 | Mar 10, 12 | New frontiers: Rust | Introduction to Rust | Lab 09 (Mar 15, 11:59 PM) | |
| - | Mar 16-22 | Spring break | No classes | - | Spring break |
| 10 | Mar 24, 26 | New frontiers: Rust | Ownership and the borrow checker | Lab 10 (Mar 29, 11:59 PM) | |
| 11 | Mar 31, Apr 2 | New frontiers: Rust | Structs, Enums, and Modules | Lab 11 (Apr 5, 11:59 PM) | |
| 12 | Apr 7, 9 | New frontiers: Rust | Generics and traits | Lab 12 (Apr 12, 11:59 PM) | |
| 13 | Apr 14, 16 | New frontiers: Rust | Idiomatic Rust | Lab 13 (Apr 19, 11:59 PM) | |
| 14 | Apr 21, 23 | New frontiers: Rust | Multithreaded applications | Lab 14 (Apr 26, 11:59 PM) | |
| 15 | Apr 28, 30 | Final project | Final project workshop and polish | Last classes | |
| 16 | May 4-9 | Exam week | Final project due Sunday, May 3 at 11:59 PM | No final exam - project only |
Detailed session schedule:
Week 1: Foundations & modern tooling
• January 13, 2026 (Tues): Welcome to the future of development - Course intro, AI demo, syllabus walkthrough, development environment setup • January 15, 2026 (Thurs): Version control with Git & GitHub - Git workflow, repository creation, clone/commit/push cycle
Week 2: AI Co-pilots
• January 20, 2026 (Tues): Introduction to GitHub Copilot - Code generation, best practices, guided exercises • January 22, 2026 (Thurs): Advanced assistance with Gemini & prompting - Prompt engineering, debugging with AI, code explanation
Week 3: Python basics & control flow
• January 27, 2026 (Tues): Variables, data types, and I/O - Core data types, input/print functions, Mad Libs generator • January 29, 2026 (Thurs): Control statements & loops - Conditional logic, iteration patterns, number guessing game
Week 4: Python data structures
• February 3, 2026 (Tues): Lists & tuples - Mutable vs immutable sequences, list methods, data processing tasks • February 5, 2026 (Thurs): Dictionaries & sets - Key-value pairs, hash maps, choosing appropriate data structures
Week 5: Functions & error handling
• February 10, 2026 (Tues): Writing clean functions - DRY principle, function arguments, refactoring challenge • February 12, 2026 (Thurs): Error handling - Exception handling with try/except blocks, bulletproofing code
Week 6: Object-oriented programming
• February 17, 2026 (Tues): Classes & objects - Class definitions, init method, object instantiation • February 19, 2026 (Thurs): Methods & inheritance - Instance methods, inheritance for code reuse, parent/child classes
Week 7: Working with external data
• February 24, 2026 (Tues): Files & JSON - File I/O operations, JSON format, contact book application • February 26, 2026 (Thurs): API basics & JSON - Working with web data, reading/writing JSON
Week 8: Professional Python & API consumption
• March 3, 2026 (Tues): Consuming APIs - HTTP requests, status codes, public API integration • March 5, 2026 (Thurs): Professional Python practices - Type hinting, linting, formatting, and project structure
Week 9: Welcome to Rust
• March 10, 2026 (Tues): Why Rust? & Hello, World! - Rust value proposition, Cargo build tool introduction • March 12, 2026 (Thurs): Rust basics - Variables, mutability, data types, functions, testing
Spring break (March 16-22, 2026)
• No classes
Week 10: Ownership & borrowing
• March 24, 2026 (Tues): The Soul of Rust - Ownership rules, move semantics, stack vs heap • March 26, 2026 (Thurs): References & borrowing - Immutable vs mutable references, the borrow checker
Week 11: Structuring code & data
• March 31, 2026 (Tues): Structs & Enums - Modeling data, pattern matching with match • April 2, 2026 (Thurs): Modules & error handling - Organizing code, Option
Week 12: Generics & traits
• April 7, 2026 (Tues): Generics - Writing reusable code with type parameters • April 9, 2026 (Thurs): Traits - Defining shared behavior, common traits (Display, Iterator)
Week 13: Idiomatic Rust
• April 14, 2026 (Tues): Iterators & closures - Functional programming patterns in Rust • April 16, 2026 (Thurs): Smart pointers - Box, Rc, RefCell, and interior mutability
Week 14: Multithreaded applications
• April 21, 2026 (Tues): Building CLI Apps - Argument parsing with clap, project structure • April 23, 2026 (Thurs): Polishing & publishing - Documentation, release builds, publishing to Crates.io
Week 15: Final project
• April 28, 2026 (Tues): Final workshop - Bug fixes, polish, testing, and documentation • April 30, 2026 (Thurs): Final project office hours - Individual consultations and debugging support
Exam week (May 4-9, 2026)
• No final exam or Demo Day: Final project submission deadline is Sunday, May 3, 2026 at 11:59 PM (before exam week starts)
Total: 26 actual class sessions
XIII. Additional resources
This section provides a summary of free Large Language Model (LLM) clients that are suitable for students. The landscape of AI tools is constantly changing, so some details may be out of date.
| Client Name | Type | Key Features | Free tier details | Best for |
|---|---|---|---|---|
| ChatGPT | Web UI | General-purpose conversational AI for a wide range of tasks | Free access to a highly capable model, with some usage limits | General Q&A, content creation, and exploring creative ideas |
| Claude | Web UI | Strong capabilities in creative writing, summarization, and analysis | Free tier with daily message limits | Sophisticated writing tasks and in-depth document analysis |
| Gemini on the web | Web UI | User-friendly interface for direct chat, content generation, and analysis | Free access to a powerful model, with some limits on usage | Everyday tasks, brainstorming, writing assistance, and learning LLM capabilities |
| GitHub Copilot | IDE Extension | AI-powered code completion, suggestions, and chat within your editor | Free for verified students, teachers, and maintainers of popular open-source projects | Seamlessly integrating AI assistance into the software development workflow |
| Gemini CLI | Command-line | Direct access to Gemini models, scripting, automation | Free tier with rate limits (requests per minute) | Developers and power users for terminal-based tasks |
| LM Studio | Desktop app | Run open-source LLMs locally, offline capability | Completely free software; uses your computer’s resources | Running models offline and experimenting with privacy |
| Ollama | CLI / local server | Easily run and manage open-source LLMs locally, provides an API | Completely free software; uses your computer’s resources | Developers building applications on top of local LLMs |
| Hugging Face chat | Web UI | Access and chat with a wide variety of open-source models | Completely free to use | Quickly trying out and comparing open-source models |
| Poe by Quora | Web & mobile app | Access a mix of popular models (Claude, Gemini, etc.) in one app | Free daily message limits for most models | Comparing different flagship models, especially on mobile |
| Google AI Studio | Web UI | Prototype prompts for the Gemini API, generate code | Free tier with rate limits, same as the Gemini API | Students learning to build with the Gemini API |