CMSC 436-0101
Please read Expectations for CMSC436 and make sure you review the necessary concepts. We will assume that you know the material listed here.
The course material is available on ELMS.
The official syllabus will be on ELMS.
We will cover the following topics this semester:
Class times will be split between lectures and hands-on work, roughly alternating days. For the hands-on work, we will focus on developing an application that illustrates the majority of the course concepts.
The graded work in the course will consist of two projects, a multiple-phase solo project and a group project. You will have considerable flexibility in how rapidly you complete these, but we will send you reminders if you are falling behind.
This course employs Standards-Based Grading, rather than traditional points-based grading. Rather than accumulating points that are then used to determine the cut-offs for various letter grades, there are specific learning objectives for students to demonstrate mastery of. A final grade in the course is determined by how well these objectives were met, and you will be able to choose the grade you are trying to obtain in accordance with the amount of time you have to devote to the course.
There are two sequences of objectives to meet:
Some of these objectives are scored as Completed/Not Completed, and serve as gateways to later objectives. Other objects are EMRN-scored (see below), and determine your final grade. In all cases, each step of a sequence must be completed satisfactorily before the next step may be accessed.
The following is the EMRN scale. The points are only there to work with the Canvas gradebook.
The specifics of these assessments will be specified in project phase descriptions.
This will be an app, called Terpiez, that everyone will implement. It will ultimately need to interoperate with a single course-wide database, which we will set up, so it is important to set things up exactly as specified.
Phase 0 of the project is a gateway, the six remaining phases are EMRN-scored. In order to progress to a later phase, you must receive at least an M on the prior one. You will be able to resubmit project phases until you reach the assessment level you need for the grade you want. When resubmitting a project, you must also include a brief discussion of what enabled you to make progress. Because the resubmission attempts are unlimited, there will be no extensions granted. No excuse needs to be given, merely an acknowledgement that more work was needed.
You may not use Generative AI, such as ChatGPT, to produce your code, and you may not upload the code we provide to any such system (this would be a copyright violation). If you are using code you find elsewhere, you must cite it in the comments.
There is also a team project, where each team of up to 5 students will propose an app and then implement it. Proposals will include a set of minimal goals (required functionality) and stretch goals (extra functionality). The initial proposal will be evaluated and approved by Dr. Marsh, after which a TA will be assigned to each team, who will monitor the progress and assign final project scores.
Projects will be graded as follows:
Teams and TAs will agree to a schedule of three milestones, where the TA will assess the state of the project, and all parties will discuss any necessary changes to the design or schedule. No milestones may be scheduled until the project proposal is approved.
You may not use Generative AI, such as ChatGPT, to produce your code, and you may not upload the code we provide to any such system (this would be a copyright violation). If you are using code you find elsewhere, you must cite it in the comments.
Your final grade in the course will be determined by the number of EMRN-scored assessments you have at various levels. There are a total of 7 such assessments.
Grade | #E | #M | #R |
---|---|---|---|
A | 7 | 0 | 0 |
A- | 6 | 1 | 0 |
B+ | 5 | 2 | 0 |
B | 4 | 3 | 0 |
B- | 3 | 4 | 0 |
C+ | 2 | 5 | 0 |
C | 1 | 6 | 0 |
C- | 0 | 7 | 0 |
D | 0 | 6 | 1 |
You are expected to adhere to the University's academic integrity policy. All work that is not explicitly stated to be a team effort must be done by you alone. You have 24 hours after the deadline of any graded work to self-report lapses in academic integrity, which we can then hopefully resolve without a reference to the Office of Student Conduct.
Posting of any project/exercise implementation (even after the course is over) in a publicly available online location (e.g., github or sourcehut) is prohibited under the Code of Academic Integrity (facilitation of academic dishonesty). Any student responsible for this will be reported to the Office of Student Conduct and risks the sanction of an "XF" in the course. You may post your code on a public site such as a GitHub or SourceHut private repository to share with potential employers, as long as access is appropriately restricted.