Syllabus
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
- Develop problem-solving ability.
- Apply programming skills in a modern language and development environment.
- Practice assessment and evaluation through testing and specification.
- Apply abstraction and abstract thinking.
- Develop familiarity with modern computer technology.
- 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
EDIT 2023-08-27
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
- Primary textbook Animated Program Design by Marco T. Morazán
- Ancillary textbook How to Design Programs, 2nd Edition
(This latter text is freely available online at the above URL)
Grading Breakdown
- Problem Sets: 40%
- Problem Set Group Reflections: 5%
- Quizzes: 30%
- Large Software Projects: 20%
- Tutoring Attendance: 5%
- Course Evaluations: 1%
Course Components
1. Problem Sets
- Expect (roughly) weekly problem sets.
- These will generally be assigned every Monday.
- Generally due Thursday evening, unless otherwise noted.
- I will assign you to start working together on these in groups when will have time to start in class
- Either way each student must submit individually; I will grade these individually
- 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. Problem Set Group Reflections
- Submitted immediately after problem sets.
- Please see the reflection page for more details.
3. Quizzes
- Daily (or weekly, TBD) at the start of the class.
- Duration: 10 minutes.
- Take-home quizzes are possible if we do not have enough time; these will be due in 48 hours.
- Paper and pencil quizzes. Be prepared and bring a pencil.
- These can be code or content questions
- Grades will be assigned as “Got it”, “Mostly got it”, “Substandard”, “Missing/Absent”
- Content based on recently assigned reading material and/or videos.
- Cannot be made-up or retaken
- I will drop your lowest five 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
4. Large Software Project
- Textbook-based projects based upon the game developed in “Animated Problem Solving”
- Pair programming assignments (pairs chosen by me)
- Different extensions may be assigned to different groups.
- Grade assigned to the pair.
- Oral examination at some point(s) in the semester (see below)
- Generally ~two weeks to complete these assignments
- Each student in the pair must submit; I will randomly choose one of you to grade.
- 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.
Due Dates and times
Assignments are due at 10:00pm on the date listed. No excuses or exceptions. You are welcome to submit as many times as you wish; I will grade your latest assignment before the deadline. I may add a small, randomly-varying amount of time to account for network latency; consider this your lenience. Anything that is submitted after that time will not be accepted. Your submissions must be through the approved submission system; submissions by other means (slipped under my door, etc.) will not be accepted. Please submit frequently, so that you do not miss the chance to turn in anything at all.
Large Project partner, pair programming
You will receive an email from me with your pair-partner for those large software projects. These will not be the same. Please reach out to that person, and contact them to begin work as soon as possible. If you do not get a response from them within 24 hours, let me know.
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 groupmate.
Tutoring attendance/Practice problems
I have asked our tutors to ensure that you attend tutoring (and that your TA marks you down for having sufficiently participated) at least once per week. Recitation counts 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.
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.
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.