Skip to content

dansmyers/ProgrammingAndSoftwareDevelopment

Repository files navigation

CMS 121 Programming and Software Development

Spring 2024 Syllabus

Who? Where?

Dan S. Myers (Dr. Myers)
Bush 263
dmyers@rollins.edu
407-646-2151

Office Hours

  • Thursdays from 2:00 to 3:00
  • Fridays from 1:00 to 2:00

Official Course Description

CMS 121 Programming and Software Development: Develops discipline in program design, problem solving, debugging, and testing. Topics include: review of procedural programming, abstract data types, and recursion. Standard tools for software development, debugging, and testing are introduced. A high-level programming language is used to construct programs of moderate size.

Learning Outcomes

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

  1. Write moderately large programs in Java using all of its standard features, including variables, data types, conditional statements, loops, static methods, and arrays.

  2. Use classes, objects, and the object-oriented paradigm to organize your programs.

  3. Demonstrate familiarity with important abstract data types: two-dimensional arrays, ArrayList, HashMap.

  4. Use Java's built-in classes to create graphical applications.

  5. Use standard tools for software testing, version control, and debugging.

Textbook

The textbook for this course is the preprinted draft of my forthcoming text Data Structures and Algorithms in Java: a Project-Based Approach (Cambridge University Press, 2024). We'll be working through the first half of the book, roughly ten chapters. I'll provide you with a PDF of the relevant material accessed via Canvas.

Schedule

Planned Weekly Schedule of Topics

Week of Topics
1/17 Running Java programs
1/22 Java variables, expressions, etc.
1/29 Conditionals and loops
2/5 Static methods
2/12 Writing classes
2/19 Graphical applications
2/26 Arrays
3/4 MIDTERM
3/11 SPRING BREAK
3/18 Algorithm analysis
3/25 Lists I
4/1 Lists II
4/8 Intro to recursion
4/15 More recursion / Sorting
4/22 Recursive sorting
4/29 Finish

Other Important Dates

  • First day of class: January 17
  • Last day of class: April 30
  • Spring break: March 11 to March 17
  • Last day to drop the class: January 30
  • Last day to withdraw without penalty: March 29
  • Midterm exam: 3/7 (in-class). This is the last class meeting before Spring Break.
  • Final exam: 5/7 at 11 AM to 1 PM. The final exam covers the second half of the course.

I'm not able to accommodate requests for alternate exam times other than those scheduled through the official Testing Center. Please plan to take exams at the scheduled time and place and keep this in mind when you're scheduling your travel for the end of the semester and breaks.

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.

If you achieve satisfactory performance on enough assigments, described in more detail below, you'll receive a baseline grade of B for the course. This demonstrates that you have engaged with the material and met the basic learning outcomes for the class. To get a higher grade, you can do more work that shows greater mastery of the course learning outcomes.

Assignments

Your grade will be based on the following three things:

  1. A set of regular assignments, about five during the semester. These will focus on a combination of Java programs and short answer questions from the textbook.

  2. Challenge problems, three during the semester, which are somewhat more complex than the regular homework questions and require you to stretch a little bit.

  3. Midterm and final exams. The final covers the second half of class.

Satisfactory Credit

I will grade your regular assignments and challenge projects on a threshold system. Your work will be "satisfactory" if you earn a grade of at least 80%. In general, this corresponds to assignments that are

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

If you earn a grade between 60% and 79%, you'll receive partial credit for an assignment, discussed in more detail below. If you earn a grade below 60%, you receive no credit for that assignment.

You must make a reasonable attempt on every part of an assignment to receive full credit for it.

Letter Grades

To earn a B, you must meet the following criteria:

  1. Earn satisfactory credit on all of the regular homework assignments during the entire semester.
  2. Pass the midterm and final exams with a grade of at least 80% on each.

If you fail to complete the requirements for a B, your grade will be adjusted downwards according to the following table:

Performance Your grade will be adjusted downwards by
Partial credit on an assignment (grade of 60% to 79%) Fraction of a letter grade (e.g. B to B-)
No credit on an assignment One full letter grade (e.g., B to C) for each one
Exam score below 80% Fraction of a letter grade
Exam score below 60% One full letter grade

To earn a higher grade, you can complete additional work that shows deeper engagement with the course goals. Each challenge project that you complete will boost your grade by one part of a letter (e.g., B to B+). To earn an A, complete all the requirements for a B plus three additional challenge projects.

If your grade drops, you can still complete extra work to boost it up. For example, you could get partial credit on a regular assignment, but complete a challenge project. The two would cancel each other out and your grade would remain a B.

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 80% of the available points, so you don't have to correctly answer everything.

  2. You do need to be consistent. The system rewards you for putting forward good, consistent effort. Working diligently and carefully will allow you to accumulate all of the points that you need for a B.

  3. You will get lots of feedback. The project specifications will tell you, unambiguously, whether your answers for a programming question are correct or not.

  4. Some work will be done in class.

Other 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. Don't attend class if you're sick.

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.

Necessary and Proper Clause

As your course facilitator, 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.

AI Policy Statement

You are allowed to experiment with AI tools as part of your learning. I encourage you to use AI tools to engage with class material. For example, using AI for interactive tutoring can be an effective way to learn.

Some assignments, however, are only useful if they’re done by you, yourself, without AI assistance. I will provide you with instructions on how you are and are not allowed to use AI on each assignment. Using an AI tool on an assignment that prohibits it is academic misconduct and a violation of the Honor Code.

In general, it's not acceptable to use AI to generate a complete (or close to complete) solution to a problem with minimal effort or engagement on your part. Even if you can do this, you should assume that doing so is not meeting the goals of the assignment, and therefore not valid. Likewise, taking the output of an AI model that you generated with minimal effort and lightly editing it to present it as your own is not acceptable.

The best use of AI is as a tool for clarifying your ideas, exploring possibilities, and answering concrete questions about your work-in-progress. Keep the following facts in mind when you’re using AI tools.

  • AI isn’t a shortcut. You should plan to spend about the same amount of time on an assignment with AI that you would have spent pre-AI, but produce better quality results. Mediocre AI-generated content is easy to create, but worthless. Raise your standards!

  • AI models can hallucinate facts, including citations, quotes, and dates. Don’t trust the output of a model unless you know that it’s true or can check it against an independent source. AI works best on subjects you know well.

  • Remember that AI has limitations and biases. Do not assume AI output is neutral. Validate against credible sources.

  • Critically evaluate all results produced by an AI tool—for correctness, of course, but also for quality. Ask yourself: Is this good? Is it doing what I want? How can it be improved? You’re responsible for the quality and correctness of the finished product. AI-supported writing requires taste and judgment: practice thinking like an editor.

  • Don’t simply accept the first response. You may need to ask a question multiple times, in different ways, to get a useful result. Generic prompts yield generic output. As you practice interacting with AI, you’ll learn how to use it as a collaborator.

  • Learn the strengths and weaknesses of your tools and choose the right tool for the task. We’ll talk about this in class.

  • AI models are software tools, not magic. Remember that you are always in control, and you’re free to accept, reject, or change AI-generated content.

Honor Code

Membership in the student body of Rollins College carries with it an obligation, and requires a commitment, to act with honor in all things. The student commitment to uphold the values of honor--honesty, trust, respect, fairness, and responsibility--particularly manifests itself in two public aspects of student life. First, as part of the admission process to the College, students agree to commit themselves to the Honor Code. Then, as part of the matriculation process during Orientation, students sign a more detailed pledge to uphold the Honor Code and to conduct themselves honorably in all their activities, both academic and social, as a Rollins student. A student signature on the following pledge is a binding commitment by the student that lasts for his or her entire tenure at Rollins College:

The development of the virtues of Honor and Integrity are integral to a Rollins College education and to membership in the Rollins College community. Therefore, I, a student of Rollins College, pledge to show my commitment to these virtues by abstaining from any lying, cheating, or plagiarism in my academic endeavors and by behaving responsibly, respectfully and honorably in my social life and in my relationships with others. This pledge is reinforced every time a student submits work for academic credit as his/her own. Students shall add to the paper, quiz, test, lab report, etc., the handwritten signed statement:

“On my honor, I have not given, nor received, nor witnessed any unauthorized assistance on this work.”

Material submitted electronically should contain the pledge; submission implies signing the pledge.

How Do I Interpret the Honor Code?

In the context of this class, my interpretation of the Honor Code pledge is that the work you submit for every assignment shall be your own original creation. This means that any item you submit must be written by you and you alone, or in an assigned group project by your group alone. Copying a complete solution from fellow class members, previous class members, books, or the Internet is a violation of this policy and will constitute academic misconduct.

It is acceptable to discuss questions and solutions in general terms with other class members, but your discussions should not be at a level of detail that would lead to you submitting the same work as a another student.

Official Syllabus Statements

Accessibility Services

Rollins College is committed to equal access and inclusion for all students, faculty and staff. The Rehabilitation Act of 1973 and the Americans with Disabilities Act of 1990 create a foundation of legal obligations to provide an accessible educational environment that does not discriminate against persons with disabilities. It is the spirit of these laws that guides the college toward expanding access in all courses and programs, utilizing innovative instructional design, and identifying and removing barriers whenever possible.

If you are a person with a disability and anticipate needing any type of academic accommodations in order to fully participate in your classes, please contact the Office of Accessibility Services, located on the first floor of the Olin Library, as soon as possible. You are encouraged to schedule a Welcome Meeting by filling out the “First Time Users” form on the website: https://www.rollins.edu/accessibilityservices and/or reach out by phone or email: 407-975-6463 or Access@Rollins.edu.

All test-taking accommodations requested for this course must first be approved through the Office of Accessibility Services (OAS) and scheduled online through Accommodate at least 72 hours before the exam. Official accommodation letters must be received by and discussed with the faculty in advance. There will be no exceptions given unless previously approved by the OAS with documentation of the emergency situation. We highly recommend making all testing accommodations at the beginning of the semester. OAS staff are available to assist with this process.

Citation Expectations

As per the Academic Honor Code, plagiarism is defined as “Offering the words, facts, or ideas of another person as your own in any academic exercise.” In order to avoid plagiarism, all students are expected to use proper citation norms. For our course, all assignments will use [faculty choice - MLA, Chicago, APA, etc] citation style.

Absences – Religious Holidays and/or Campus Business

The professor will accommodate a reasonable number of excused absences for religious holidays and official off-campus college business such as academic conference presentations and athletic competitions. However, per the College’s policy on excused absences (http://www.rollins.edu/catalogue/academic_regulations.html#class-attendance), students must discuss with the professor the dates of the anticipated absences no later than the last day of the drop period. Students must present to their professor written evidence of the anticipated absences and discuss with him/her how and when make-up work should be completed prior to missing the class. Students should not expect to receive allowance for excused absences if they do not meet with the professor beforehand and clarify the dates as necessary. Absences will be addressed by the faculty member in accordance with his/her attendance policy. The professor retains the right to determine what would be considered to be a reasonable number of absences (excused or otherwise) for the course. A student will not fail a course because the number of religious observances and/or college business absences exceed the number of absences allowed, except if excessive absences make it impossible to fulfill the expectations of the course. The student’s class participation grade in the course, though, may still be affected.

Credit Hour Statement for Rollins Courses

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 reading and substantial programming projects in our online programming environment.

Recording Device Use

In order to protect the integrity of the classroom experience, the use of recording devices is limited to either the expressed permission of the faculty member or with proper documentation from the Office of Accessibility Services. Information about accommodations through Accessibility Services can be found at http://www.rollins.edu/accessibility-services/. Recording without the proper authorization is considered a violation of the Rollins Code of Community Standards.

Title IX Statement

Rollins College is committed to making its campus a safe place for students. If you tell any of your faculty about sexual misconduct involving members of the campus community, your professors are required to report this information to the Title IX Coordinator. Your faculty member can help connect you with the Title IX Coordinator, (TitleIX@rollins.edu or 407.691.1773). You will be provided with information, resources and support. If you would prefer to speak to someone on campus confidentially, please call the Wellness Center at 407.628.6340. They are not required to report any information you share with the Title IX Coordinator. Misconduct under Title IX includes gender-based discrimination and harassment, sexual harassment, sexual violence including fondling and assault, sexual coercion/force, sexual-based communication, sexual exploitation, interpersonal violence including dating and domestic violence, stalking, complicity and retaliation. Everyone is protected under the following protected statuses: sex (including pregnancy), gender, gender identity (including transgender status), gender expression, and sexual orientation. For information,

About

CMS 121 Programming and Software Development

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages