Purpose and Objectives

CS1114 course syllabus. All students must abide by the policies and expectations laid out here; failure to do so may cost you the opportunity to continue in the course. I reserve the right to amend these policies and expectations at any time; notice of such changes will be made by email, in-class announcement, or by direct change to the course website. In this course we’ll adopt a flipped classroom approach, emphasizing hands-on problem-solving, group collaboration, and individual accountability.

Course Goals

  1. Develop problem-solving ability.
  2. Apply programming skills in a modern language and development environment.
  3. Practice assessment and evaluation through testing and specification.
  4. Apply abstraction and abstract thinking.
  5. Develop familiarity with modern computer technology.
  6. Reinforce basic mathematics and logic skills

Coursework expectations

This semester I will “flip” some portion of the classes. That is to say, you will spend some of your in-class time working together in groups on problem sets. Lectures will not entirely prepare you for your assignments. You must read assigned textbook material, and you must watch assigned videos in order to stay abreast with the class.

General Class Schedule

Lecture periods will generally be instructional sessions and student Q&A. We will sometimes use class periods for group problem-solving “open group work” sessions.

Contact

  • Personal, private (FERPA, etc) messages: hemannja@shu.edu. You should expect a response within 48 hours. More details about communicating with the instructor here.

A great regular way to reach out for help is via our office hours.

Textbooks

(This latter text is freely available online at the above URL)

Grading Breakdown

  • Problem Sets: 25%
  • Quizzes: 35%
  • Exams: 20%
  • Large Software Projects: 15%
  • Participation/Engagement/Tutoring attendance: 5%

Course evaluations do not directly affect your grade. However, if at least 85% of the course submits evaluations, I will add one GPA point to the overall course average.

Course Components

1. Problem Sets

  • Expect (roughly) weekly problem sets.
  • Problem sets are typically posted on Mondays and due Thursdays at 10:00pm, unless explicitly stated otherwise.
  • I will check (possibly a subset of the) problems to ensure understanding and correctness.
  • These will measure correctness of design and structure, as much as correctness of implementation.

2. Quizzes

  • Approximately daily, at the start of the class.
  • Duration: ~10 minutes.
  • Paper and pencil quizzes. Be prepared and bring a pencil.
  • These can be code or content questions.
  • Content based on recently assigned reading material and/or videos.
  • Cannot be made-up or retaken.
  • I will drop your lowest five quiz grades
  • I may add other quizzes over the reading/videos to do asynchronously as you watch/read
  • These latter will be submitted via gradescope, but will also count as quizzes

3. Exams

There will be in-person exams to assess individual mastery. We will have a final exam, and one midterm.

  • Format: paper, in class
  • Allowed materials: none unless explicitly stated
  • Makeups: not generally provided except for documented university-approved absences
  • Dates and coverage will be announced at least one week in advance

4. Large Software Project

  • Textbook-based projects based upon the game developed in “Animated Problem Solving”
  • Each project is submitted once per pair (one submission on Gradescope).
  • The grade is shared by the pair.
  • I may use oral assessments and/or in-class work to assess individual understanding and adjust credit if contributions are clearly unequal.
  • Generally ~two weeks to complete these assignments
  • If you decide you cannot work together on this assignment, you must let me know.

Oral Assessments

At some points in the semester, after one of these large software projects is due, you, as an individual, may be (randomly or not) selected to come to give an oral code walk of your submission. You will schedule a time to meet me, at my office within 72 hours to present and explain your submission. You will be responsible for all the software that your group submitted in that assignment, including any starter code. You will need to explain how it works and why it was designed that way. If you are so requested, this will account for 20% of your grade on the project. If you are working in a group, this will account for 20% of your group’s grade on the project.

5. Participation/Engagement/Tutoring attendance

How engaged are you in class? How conversant are you in the topics as we discuss them, how ready are you to attend class? Are you on time and prepared? This will be a small component of your overall course grade.

Class Participation

Attendance is mandatory, but not sufficient. I will ask that you stay on topic and pay attention during lectures. If I or my learning assistants see that you are drifting, we will ask you to close your phone or laptop, and take paper notes.

Tutoring attendance/Practice problems

I have asked our tutors to pay attention to the students who attend tutoring regularly. Any out-of-class recitations count also as coming to tutoring that week.

  • If I assigned practice problems that are not otherwise graded, they will ask to see your progress on these, and give you credit for partly/mostly attempting them.

  • I may ask you to go by and demonstrate your knowledge and understanding of some concept.

  • Otherwise demonstrate your progress on a current or upcoming assignment or ask for help and clarification.

Due Dates and times

Assignments are due at 10:00pm on the date listed. I may add a small, grace period of ~5m to account for network latency; consider this your lenience. No other exceptions or excuses. You are welcome to submit to the submission dropbox as many times as you wish before it closes. Anything that is submitted after that time will not be accepted. I will grade your latest assignment before that deadline. Your submissions should be through the approved submission system; I will not in general accept submissions by other means (slipped under my door, etc.). Please submit frequently, so that you do not miss the chance to turn in anything at all.

Large Project partner, pair programming

If you are having a problem with a pair programming partner for the large software projects, please first have that uncomfortable discussion with them, in person if you can or by other means if you must. If you do not see immediate improvement, contact me. EXCEPTION: If at any point or time you feel uncomfortable or unsafe around a classmate or programming partner.

Course Evaluation

Through most of the semester, I do work for your benefit, and you pay me for it. Once, at the end of the year the university schedules evaluations—intended to benefit me, your future colleagues, and the university as a whole—over a time in the semester in which you have a large amount of work and little time to do it. When you do work for my benefit, I should pay you. To that end, if at least 85% of the course submits an evaluation, I will add one GPA point to the overall course average. I find the qualitative written feedback to be much more actionable and granular than the quantitative top-line numbers, but both are valuable. These are anonymous and asking for your candid assessment.

Technology and Platforms

We will use a variety of tools and platforms to facilitate teaching and learning over the semester. Please see the technology page for more details.

Code safety, security, and backup

You are responsible for the safely and securely storing your data. It is considered a best practice to keep your files under version control, using a tool such as git via github.com. As a burgeoning computer programmer, you should create an account. In addition, you have the ability to backup entire directories, automatically, through Microsoft OneDrive. You should set the directory where you save your programs to automatically back up. Lost data due to hardware errors will not be an accepted excuse.

Academic Integrity

Misrepresentation of someone else’s work as one’s own is a grave violation of academic ethics.

Cheating – n. copying or submitting as your own, with or without consent, someone else’s work as your own.

This includes, but is not limited to:

  • copying from someone else answers to questions during an exam
  • copying programs from internet sources
  • collaborating with other students on individual assignments
  • collaborating with individuals outside your group on group assignments

Plagiarism – n. using someone else’s work in your own and not properly crediting the authors of that work. This includes, but is not limited to:

  • adapting someone else’s code to solve a problem or write a program.

There will be no tolerance for cheating and plagiarism in this course. Any material that is not entirely your own work (or your group’s work, when applicable).

When in doubt, ask your instructor. Violations of academic integrity will lead to a score of zero on the offending assignment and likely an immediately failing grade for the course.

ChatGPT, Copilot, and GAI tools

This being new, I felt compelled to add a subsection. ChatGPT and other code generation tools utilize advanced machine learning models to assist users in generating code, answering queries, and providing solutions to various problems. I will have exercises where we practice using them in class.

These tools can be beneficial for understanding and learning, it’s crucial to use them responsibly. My problems are small because you are learning, Tools like ChatGPT can provide quick answers, but do not scale equally well to professional software developer sized problems. Your submissions should be your original work. If I can tell that you used ChatGPT or similar tools to assist in your assignments—by inspection, or from my interactions with you—that is the same as any other cheating.

If you want to use these tools to help you learn, do so on problems that are significantly different enough from those I assign to you.

DSS

It is the policy and practice of Seton Hall University to promote inclusive learning environments. If you have a documented disability you may be eligible for reasonable accommodations in compliance with University policy, the Americans with Disabilities Act, Section 504 of the Rehabilitation Act, and/or the New Jersey Law against Discrimination. Please note, students are not permitted to negotiate accommodations directly with professors. To request accommodations or assistance, please self-identify with the Office for Disability Support Services (DSS), Duffy Hall, Room 67 at the beginning of the semester. For more information or to register for services, contact DSS at (973) 313-6003 or by e-mail, or visit their webpage.

Acknowledgments

Thanks over the years for inspiration and content from at least the following: Dan Friedman, Shriram Krishnamurthi, Lindsey Kuper, Marco Morazán, and Kris Micinski.

In the syllabus