Skip to content

dansmyers/ProgrammingWithAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CMS 195 – Programming with AI

Spring 2025 Syllabus

Who? Where?

Dan S. Myers (Dr. Myers)
Bush 263
[email protected]
407-646-2151

Office Hours

  • Tuesday and Thursday from 10:00 to 11:00 AM
  • Friday from 1:30 to 2:30

Official Course Description

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.

Textbook and Resources

There is no required textbook. Our material will come from several online resources, plus my own notes.

We'll use GitHub Codespaces for programming.

Learning Outcomes

At the end of this course, you will be able to:

  1. Work with an AI copilot to support software development.

  2. Use principles of sound software engineering that are beneficial when working with AI, including testing and interface design.

  3. Implement an AI-based application using retrieval augmented generation (RAG).

  4. Discuss other applications of AI to software, including agents.

Schedule

Planned List of Topics

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 Cursor and copilots
1/20 Software organization, interface design
1/27 Testing
2/3 State-based chat models
2/10 Retrieval augmented generation I
2/17 RAG II
2/24 Agents I
2/17 Agents II
3/3 Projects

Other Important Dates

  • First day of class: January 15
  • Last day of class: April 28
  • Spring break: March 10 to March 14
  • Last day to drop the class: January 28
  • Last day to withdraw without penalty: March 28

The All-Important Grading Section

Specs Grading

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.

Labs

You must be registered for a section of CMS 120L. You'll receive the same grade for both CMS 120 and CMS 120L.

Assignments

We'll have one kind of assignment in this class:

  1. Approximately four out-of-class assignments. These will require implementing simulation models and solving analytical questions. You should be prepared to devote substantial effort to completing these projects.

That's it. For this course, I only care about projects.

Satisfactory Credit

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:

  1. Substantially complete and correct (there may be a few issues, but only minor ones).
  2. Shows real understanding and application of the course material.
  3. Completed on time in the required format.

For programming assignments, you must make a fair attempt on every problem.

Letter Grades

To earn an A, you must meet the following criteria:

  1. Satisfactory completion of the major assignments.

If you fail to complete the requirements for an A, 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)

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.

Why Are You Doing This To Us?

  1. 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

  2. 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.

  3. 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.

  4. 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.

  5. 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.

I Feel Decidedly Uncomfortable

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:

  1. 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.

  2. You do need to be consistent. The system rewards you for putting forward good, consistent effort.

  3. Attend the labs. The lab sessions are your main place to practice programming skills. Make sure you attend every lab session.

  4. 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.

Course Policies

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

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.

Necessary and Proper Clause

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.

Credit Hour Statement

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.

Official Syllabus Statements

Links to the full list of syllabus policy statements are available here.

About

CMS 195 - Programming with AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published