Dan S. Myers (Dr. Myers)
Bush 263
dmyers@rollins.edu
407-646-2151
- Tuesdays from 10:00 to 11:30
- Thursdays from 2:00 to 3:00
CMS 195 Programming with AI: Special topics course investigating new methods of software development using artificial intelligence systems. Topics include AI copilots, prompting techniques, software design for AI implementation, testing and validation, retrieval augmented generation, and agents.
There is no required textbook. Our material will come from several online resources, plus my own notes.
Practicing programming using AI tools is a core element of this class. You are required to subscribe to a $20 per month plan for Anthropic's Claude, which we'll use throughout the course.
- I already subscribe to a different model, can I use that one instead? No, you are required to use Claude for this course.
- Can I just use the free plan? No, you are required to purchase the $20 per month subscription.
- Will I also need to buy a book? No, there is no required textbook. We'll use a mixture of online resources for course material.
At the end of this course, you will be able to:
-
Use chat-based AI and agentic AI coding tools to complete software development projects
-
Use AI tools to perform data analysis and simulation experiments
-
Use tools to create web pages and basic web applications
-
Implement an AI-based application using retrieval augmented generation (RAG).
-
Be familiar with concepts of sound software design
This is tentative and will probably change a bit as we move through the semester.
This course is 2 credits and ends at Spring Break.
| Week of | Topic |
|---|---|
| 1/13 | Intro to programming and codespaces |
| 1/20 | Data analysis using chat |
| 1/27 | Textual analysis |
| 2/3 | Calling other services via APIs |
| 2/10 | Intro to Claude Code |
| 2/17 | Agentic development |
| 2/24 | Web applications |
| 2/17 | Retrieval augmented generation |
| 3/3 | Projects |
- First day of class: January 14
- MLK day (no class): January 19
- Last day of class: March 13
- Spring break: March 16 to March 22
- Last day to drop the class: January 27
- Last day to withdraw without penalty: March 27
- Dr. Myers out of town (no class meeting): January 21 and 23
Grading for this course will be different from your previous classes.
Rather than calculating your score as number of points on a 0-100 scale, your grade will be based on attaining satisfactory performance on a bundle of assignments. This approach is called Specifications Grading or Contract Grading and it has several advantages over the traditional 0-100 based points system.
We'll have three kinds of assignment in this class:
-
In-class guided practice activities that will demonstrate how to use different programming techniques. These are graded on participation and completion; you'll submit the work for each activity to Canvas to show that you finished it. If you don't complete an activity during class time or have to miss a day, you can complete it on your own within 24 hours. -
Approximately three out-of-class assignments. You should be prepared to devote substantial effort to completing these projects.
-
Challenge projects that can be used to raise your grade or make up for missing work.
I will grade most of the items you turn in on a two-level scale: your work will be either satisfactory or receive no credit. "Satisfactory" means that the work is:
- Substantially complete and correct (there may be a few issues, but only minor ones).
- Shows real understanding and application of the course material.
- Completed on time in the required format.
For programming assignments, you must make a fair attempt on every problem.
To earn an B, you must meet the following criteria:
- Satisfactory completion of the major assignments
- Satisfactory completion of the in-class programming activities
If you fail to complete the requirements for an B, your grade will be adjusted downwards according to the following table:
| Performance | Your grade will be adjusted downwards by |
|---|---|
| Partially complete major assignment | Fraction of a letter grade (e.g., A to A-) |
| Unsatisfactory or missed major assignemnt | One full letter grade (e.g., A to B) |
| Missed programming activity | Fraction of a letter grade (e.g., A to A-) |
These penalties are cumulative. For example, if you failed to satisfactorily complete two major projects, your base grade would be lowered by 2 letters, from A to C.
To earn a higher grade, complete the Challenge Projects. There will at least 3 and each one will raise your grade by a fraction of a letter, e.g. B to B+. Completing the basic course work and three challenge projects will earn an A.
-
In a traditional system, your grade is ultimately determined by my judgment of your work. My judgment is pretty good, but specs grading gives you more clarity about where you stand and guidance for how to achieve the grade you want
-
Your grade is directly tied to the learning that you demonstrate. The satisfactory work sets a baseline, but to earn a higher grade, you must demonstrate a higher level of engagement with the course material.
-
It's relatively easy to get a B if you do the required work, but hard to get an A. This preserves the integrity of the course, while still making it possible for everyone to succeed.
-
If you only need a B or a C, you can adjust your effort accordingly: the standards are transparent. You don't have to spend time on the most difficult assignments if you don't need them to get the result you want.
-
It reflects how you'll be evaluated in your career. Work assignments aren't graded out of 100% and your boss won't give partial credit for incomplete work. So, basically, I'm setting you up for massive career success.
This is probably a new approach to grading for you. In particular, students new to specs grading often have anxiety about the lack of partial credit in the system.
Here are a few things to keep in mind:
-
You don't have to be perfect. The "substantially complete and correct" standard allows for imperfections in your answers and you only need 90% for the reading and most assignments, so you don't have to correctly answer, or even attempt, every problem, so long as your cumulative work meets the required standard.
-
You do need to be consistent. The system rewards you for putting forward good, consistent effort.
-
Attend the labs. The lab sessions are your main place to practice programming skills. Make sure you attend every lab session.
-
You will get lots of feedback. I will be there with you in lab to check on your work. The major projects will have clear standards describing what's required to receive full credit.
Attendance The only way to be consistently successful in your academic career is to regularly attend class meetings and participate in in-class activities. Therefore, while I do not mandate attendance at every single class, I expect full attendance every time we meet.
Laptops If you have a laptop, please bring it to class.
Phones Unlike laptops, I see few advantages to using phones during class. Please silence your phones at the beginning of class. Holding text conversations during class is both distracting and disrespectful and will not be tolerated.
Late Submissions Assignments are due on the stated day at the stated time. Speak to me in well in advance of the due date if you need an extension.
Please speak to me if there are any issues making it difficult for you to succeed in class. We can always work out a plan to deal with illness, work, or family responsibilities.
Recording No audio or video recording is permitted without prior permission.
Canvas and GitHub Most of the course material will be distributed through GitHub. We'll use Canvas to keep track of grades, announcements, and a few other things.
Late work is only accepted in the case of unusual extenuating circumstances, such as a sudden illness. Work for other classes or part-time jobs does not count as extenuating. You are responsible for submitting work on time, in the required format, and using the correct submission procedure.
Please speak with me as soon as possible if you have concerns about your ability to meet a deadline so we can discuss options.
I will make every effort to adhere to the topics and schedule described in this syllabus. However, I reserve the right to make changes for the good of the course.
This course is a four-credit-hour course that meets three hours per week. The value of four credit hours results, in part, from work expected of enrolled students both inside and outside the classroom. Rollins faculty require that students average at least 2 ½ hours of outside work for every hour of scheduled class time. In this course, the additional outside-of-class expectations are substantial time spent on self-directed learning, team colalboration, and completion of programming assignemnts.
Links to the full list of syllabus policy statements are available here.