CS 463 - Spring 2021
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
- (virtual - no office/phone access)
- Office hours: see piazza for up to date times.
- Piazza online discussion, shared documents, announcements.
- I will manually add students to the piazza course.
- BlackBoard: turn in some assignments view post grades.
- GradeScope.com: online quizzes/tests, and some assignment uploads as well.
- all course documents posted here: (including class examples)
2 Required Materials
2.1 Technology
- computer with ability to install (free) software on it
- 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).
2.2 Textbooks (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 Covid-19 Is Still Here…
Clearly this is an uncommon semester - and well beyond the procedural differences that have pushed us online.
- this syllabus can't pre-solve all the situations that could arise.
- please keep in communication when things are getting rough - if you or people you take care of at home are ill and need all your attention; if you are facing evictions or problems that will impact your ability to participate in class and do the assignment work. We can strategize and think it through far better ahead of time than afterwards, for sure. We can affect the future far more effectively than the past!
5 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!
Category | Est. | Weight | Policy |
---|---|---|---|
Assignments | about 11 | 45% | lowest 2 count half as much |
Quizzes | about 6 | 15% | drop 1 lowest, avg. the rest |
Midterm | exactly 1 | 15% | higher final exam replaces grade |
Final Exam | exactly 1 | 25% | cumulative |
Grade cutoff percentages:
A+ 98 | 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.
- For all assignments, students begin the semester with three One-Day-Late tokens. If you have a token left and turn in work late, the token is spent and no other deduction is made on the work. If you run out of tokens, then each day late drops the highest possible score by 25%. (Take the minimum of your raw score and 75%, for instance).
- Contested Grades: All requests are due within a week of the grade becoming available on Blackboard. To do so, either schedule a meeting in person 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 and the lowest two are counted half as much as the others. They generally will be the active assignment for about one week.
- Quizzes - many weeks we will have a quiz related to the most recent assignment. Regardless of reason, we only drop the one lowest grade; 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.
- Tests
- Student ID is required for all in-person tests.
- If the midterm is missed, the final exam automatically counts that much more.
- 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 snow days, our exam date will likely change. See the GMU Final Exams Schedule for details.
- 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 this
point 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. When in doubt, ask your instructor instead of another student. For clarity, It's okay for this class to study together on completed works ahead of tests.
6 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. If you feel lost or unsupported, I will help you when I can and help you find other supports that go beyond me.
7 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 tokens 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.
- 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.