CS 463 - Spring 2024

Syllabus

1 Basics

  • Prerequisites: C or better in CS 310, CS 330, and CS 367.
  • Schedule can be found here.
  • Contact Information:
    • preferred: private posts on Piazza (Our GTA can also answer here).
    • for when confidentiality is required: msnyde14@gmu.edu
    • Office hours: see piazza for up to date times and all GTA information.
      • Dr. Snyder's Location: Buchanan D217G
    • Piazza online discussion, shared documents, announcements.
  • BlackBoard: turn in some code assignments, view/post grades.
  • GradeScope.com: We will likely use this to grade quizzes/tests, and perhaps for some paper assignment uploads as well. You can access this via the Tools page on Blackboard or directly at the GradeScope website.
  • all course documents posted here: (including class examples)

2 Required Materials

2.1 Technology

  • computer with ability to install (free) software on it. You can also spend a lot of time in the on-campus computing labs and we can probably find some workarounds if you don't have this, but it will decidedly be a harder experience to not have a dedicated device.
  • ability to either draw diagrams digitally, or draw on paper and upload as image or pdf. (Some paper and pencil assignments, including tests, need diagrams). A smartphone that can take pictures and go to the GradeScope website is plenty sufficient to take pictures of handwritten work here.

2.2 Textbooks (only "recommended"; no purchases necessary for the course)

  • Concepts of Programming Languages, 12th edition. (earlier edition is fine with a bit of effort). Robert W. Sebesta. Used is fine.
  • Real World Haskell. Bryan O'Sullivan, Don Stewart, and John Goerzen. Available free online or for sale in hardcopy.
  • Learn You A Haskell For Great Good!. available free online or for sale in hardcopy.
  • other references and tutorials will be linked online throughout the semester.

3 Goals

  • Course Objectives: Students will gain an understanding of key programming mechanisms described independently of particular machines or languages, including control, binding, procedural abstraction, types, and concurrency. Includes basic programming competence in several different types of programming languages.
  • Course Outcomes: At the end of this course, students should:
    • be able to read and use formal representations of programming language syntax.
    • understand, in a language independent way, basic programming language components such as variables, types, expressions, scope, and control flow and see the choices made for these components by common languages.
    • have an understanding of runtime procedure/function control and data flow implementation.
    • have a basic understanding of the major programming language paradigms, including relevant application domains, strengths and weaknesses.
    • have an understanding of the fundamentals of concurrent programming and the language-level constructs that are used in concurrent programming.
    • gain basic programming competence in several different types of programming languages, facilitating transition to other current (and future) languages encountered during their professional career.

4 Grading Policy

The grade will be determined by grades obtained in assignments (avg), quizzes (avg), and test scores. If circumstances require it (e.g. weather, delays in course progress), the grading scale may be adjusted at the instructor's discretion, generally in the students' favor. If any extra credit is available, it will tend to be available on specific assignments, and not as an end-of-semester batch of extra work. If you're not happy with the trajectory of your grade, change something!

Note - life events, both positive and negative, have a way of affecting students' ability to complete the occasional assignment on time or at all; at those moments, it's appropriate that academics might need to be secondary to other facets of a student's life. This is the reason we are dropping one assignment grade and one quiz grade - whether this is for an illness, a funeral, attending a conference, or whatever reason, these drops are to help students keep up their grades despite this, regardless of whether they are willing to speak up about the situation or not. If there is any longer term issue prohibiting a student from completing assignments, that should by then be something that the Office of Disability Services would be able to handle - for example, if a student has a concussion or a broken arm, they may suddenly need some temporary accommodations to complete the semester succesfully. Thus if a student is going to miss a deadline, we will lean on the drops policy to cover it and in general further requests for extensions or exceptions are not likely beyond accommodations that are established with ODS.

Category Est. Weight Policy
Assignments about 10 45% drop 1 lowest
Quizzes about 5 15% drop 1 lowest
Midterm exactly 1 15% higher final exam can replace this grade
Final Exam exactly 1 25% this is cumulative

Grade cutoff percentages:

A+ 97 A 92 A- 90
B+ 88 B 82 B- 80
C+ 78 C 72 C- 70
D 60 F 0  
  • Late Work:
    • No work is accepted later than 48 hours after the posted deadline.
      • up to 24 hours late: max score allowed is 90%.
      • up to 48 hours late: max score allowed is 75%.
      • later than 48 hours: max score allowed is 0%.
    • notice that those deadlines aren't subtracting 10% or 25%: they just cap the maximum points possible. As an example, if you are about halfway done with an assignment on time, as much progress as you can make towards 90% one extra day will all be rewarded.
    • being just a few minutes later than one of these cutoffs is unfortunate, but the above timings will be applied. Remember, you can turn in your work more than once and update your efforts.
  • Contested Grades: All regrade requests are due within a week of the grade becoming available on Blackboard or GradeScope. To do so, either fill out the regrade request on Gradescope, schedule a meeting in person with the grader, or send an email requesting further feedback and consideration. After that week, the window to contest a grade has closed other than recording errors. Contact the GTA about homework/projects, and contact the professor about tests.
  • Assignments - some are on paper and pencil, others are coding exercises in various languages. All are weighted equally as percentages: the lowest one is dropped, and the rest are averaged for your assignments score. Each assignment will generally be the active assignment for about one week or so.
    • Assignment deadlines: Our assignment deadlines will all generally be during business hours, i.e. 8am-5pm, M-F deadlines. If I give you a midnight deadline, that's asking you to stay up late working, which isn't healthy or fair. You will always have at least a full week when you can work on the assignment, so what ever time is best for you to work on our assignments, you will have that time on each assignment.
  • Quizzes - some weeks we will have a quiz related to the most recently completed assignment. Regardless of reason, we only drop the one lowest grade; save it for the unplanned things. If you miss multiple quizzes you will start having zeroes calculated in, whether it was for traffic, illness, a cousin's wedding, a court date, or attending a conference.
    • all quizzes will be announced ahead of time, through force-emailed piazza announcements. Occasionally we might have a quiz online instead of in class.
  • Tests
    • Student ID is required for all in-person tests.
    • If the midterm is missed, the final exam automatically counts that much more. A higher final exam grade will replace a midterm grade.
    • Missing the final exam is very hard to recover from - plan ahead! If you are flying anywhere, don't purchase tickets that overlap exams week. If we get enough bad weather days, our exam date could likely change. See the GMU Final Exams Schedule for details.
  • Semester Calculuations
    • There does not tend to be any curve at the end of the semester in this course - I generally curve individual assignments if necessary so that semester grades are on track to their final destinations.
    • When calculating letter grades for the end of the semester, while I do a bit of rounding to make sure nobody falls into the floating-point trap (90≠89.99999996), I don't round up more than 0.1. This means that if you have an 89.9, sure we can round that up to an A-. But an 89.899 would not be rounded up. No matter where we set the boundary, it's always possible to end up just shy of the next level, and we have to set the line in the sand somewhere. I suggest you treat all those earlier "easier" assignments as the tie breaker for your semester grade and get them completed, on time, so you have more breathing room at the end of the semester.
  • Honor Code: All graded work must be your own. Any attempts at cheating will not be tolerated, and will be turned in to the Honor Court with significant penalties recommended (usually F in the course and attendance in an Academic Integrity seminar for a first offense, and suspension/expulsion for second+ offenses). By enrolling in this course, you should be familiar with these:
    • the honor code at GMU
    • further details of the CS Honor Code Policies
    • my own thoughts on the honor code. In short you should never see, share, or discuss any part of the solution to any graded work, from algorithm development to implementation to debugging to personal test cases. Efforts to obtain assignments from previous semesters is prohibited. Beware situations where someone else can take your code from you, as it is hard to prove later on. When in doubt, ask your instructor and GTA instead of another student. For clarity, It's okay for this class to study together on completed+graded works ahead of tests.
    • note that incorporating responses from ChatGPT or similar platforms into your submitted work violates the above requirements, as it is not your work.

5 Statement on Inclusion

I value the many perspectives that all of you bring to our class. I value each and every one of you. I want you to succeed, to feel comfortable, to be seen and heard. Please help cultivate the supportive, positive environment for everyone in class that we all deserve. We are allowed to be unique individuals. Be patient and kind with each other as we all work through another interesting semester in each other's company. Assume the best of each other and our intentions, and own up to the effects we have on others. I will do my best to pay attention to how you have arrived at this course, meet you where you are, and help you get the most out of our time together. If you work harder, I will meet your efforts with you gladly. If you feel lost or unsupported, I will help you when I can and help you find other supports that go beyond me.

6 Learning Disabilities and Support

I generally honor all accommodations formally established through GMU's Office of Disability Services. This requires students to self-advocate, and proactively request use of these accommodations (such as requesting alternate testing times a week in advance), so get things sorted out ahead of time in case you think it may be necessary or useful. They also assist with short-term situations such as concussions - if our late work and drops policy can't handle a prolonged situation, then ODS is the right channel to establish what kind of support is appropriate for you to get through the semester successfully without needing a medical withdrawal. Below are how some common accommodations work in this class.

  • extended time on quizzes/tests:
    • tests and finals can be taken at the ODS testing center to facilitate the extra time. We need the testing sheet ahead of time in order to successfully get you scheduled. I am okay with time of day flexibility to meet the rest of your class schedule.
    • quizzes: our quizzes are usually 10-15 minutes at the end of class; many students choose to just sit for the quiz in class and I can collect your paper later on. However, the testing center is still a fine option here. The quizzes are announced so you can still schedule a time at the testing center as desired.
  • assignment extensions: note that you will need to request this extension a full day before the deadline, and include your progress so far as part of the request. It is also not good to use this accommodation on every assignment, as each assignment timeframe then eats into the next. We will always work on getting back on track for the next assignments.
  • audio recording of lectures: please complete the audio recording agreement before any audio is recorded so that we can discuss the parameters.
  • note - all test center scheduling can be done as early as day one of the semester - students with accommodations are encouraged to complete these requests early on.