# Computer Science Pragmatics

## FA 2020

## Prerequisites

- ENGR 101 , ENGR 151 , EECS 180 , EECS 183 , EECS 280 (co-enroll) , or EECS 281 (co-enroll)

## Course Resources

- Piazza
- Gradescope
- To borrow a departmental laptop for the semester, contact the EECS Departmental Computing Organization at help@eecs.umich.edu
- For general issues, email the staff at eecs201-staff@eecs.umich.edu. For more sensitive issues, please email the instructor, Brandon, directly at brng@umich.edu.

## Lectures

## Staff

## Course Structure

This course is designed with several objectives in mind:

- Introduce topics in the development of and usage of computing systems, such as version control
- Cultivate research skills for reading up on and picking up new tools in a constantly changing computing landscape
- Provide hands on experience with mature and prevailing tools and technologies that have survived the test of time

Lectures will be held via the **Zoom** teleconferencing software, and will be recorded.
**Lecture attendance will not be mandatory.** However, timely viewing of the recordings are encouraged: for the week
following the publication of the recording, a participation survey will be opened up for extra credit, to be detailed
in the grading section.
If you intend to attend the live lecture over Zoom, please log in using your UMich email as attendance is
restricted to the UMich domain.

To facilitate the goals of the class, there will be two assessment types: **“Basic”** and **“Advanced”**.
**Basic** assessments are in the form of weekly assignments designed to guide and ease students into picking
up a new tool or method. **Advanced** assessments come in two options: weekly assignments or a project. These assessments
are designed for students to practice researching additional information and apply it towards solving problems that
may very well crop up in real computing systems.
The weekly advanced assignments are structured similarly to the weekly basic assignments except with
less guidance. Each advanced project revolves around a certain theme and is composed of multiple open-ended
components. **The weekly advanced assignments will be submitted online whereas
projects will have to be checked out with one of the instructional staff.**

There will be 12 basic assignments that will contribute points to the **Basic** category.
The **Advanced** category can be fulfilled in two ways: **choosing 1 course project or completing several of the
weekly advanced assignments**. Not all assignments will have to be completed: the grading section will
have details on how you can organize your efforts.

## Grading

This course is graded on a straight scale and will not be curved. That means that each grade category is does not have a weighted average and that the sum of each category’s final score is used to determine your final letter grade. This allows you compensate for missing points in one category with extra points in another category.

### Final Letter Grades

If you are unfamiliar with interval notation, ‘[’ / ‘]’ include a number and ‘(‘ / ‘)’ exclude a number. “[90, 93)” means the range of numbers between 90 and 93, including 90 but excluding 93.

- [100, ∞): A+
- [93, 100): A
- [90, 93): A-
- [87, 90): B+
- [83, 87): B
- [80, 83): B-
- [77, 80): C+
- [73, 77): C
- [70, 73): C-
- [67, 60): D+
- [63, 67): D
- [60, 63): D-
- [0, 60): E

Also note that there have been changes to how these grades will work with your official grade for the class: refer to this letter from the Provost.

### Lecture (0 points)

Attendance during the live lecture is not required for this course. However, I may open up a survey to ask you about what you learned in the lecture (recording), giving you 1 point of extra credit for each survey.

### Basic (60 points)

Each basic assignment will be worth 6 points in total.
Every additional point you earn past 60 points is worth 50%.
This means that if you do all 12 basic assignments,
the number of points you get from the **Basic** category will be 60 + (12 * 0.5) = 66.
Nominally, this means you only have to get full credit on 10 basic assignments to hit the 60 point total.
This serves as a built-in buffer for missing two assignments.

The goal of these assignments is to reinforce concepts introduced in lecture and to give hands-on experience. To emphasize this, your assignment scores will be converted the following way for final grade calculation: what number we report to you will be the raw score. On the left is the raw score and on the right is the adjusted final score.

- Scores below 0.5 will not be adjusted
- (0.5, 2] = 2
- (2, 4] = 4
- (4, 6] = 6
- Scores above 6 will not be adjusted

This allows you to get full credit while allowing the staff to point out mistakes.

Late basic assignments will not be accepted.

### Advanced (40 points)

There are two possible ways to approach the **Advanced** category.
Each weekly advanced assignment is worth 10 points in total,
which means you only have to do 4 to meet the category total.
Alternatively, you can complete 1 project for 40 points.
Projects can be completed for partial credit.

Similarly to the **Basic** category, all points past the
category total of 40 points will be worth 50%.
For example, if you do every single advanced assignment and get full credit,
you will earn 12 * 10 = 120 raw points. The 80 points after the initial 40 points will be worth half:
therefore your final **Advanced** score would be 40 + (80 * 0.5) = 40 + 40 = 80.
(If you decide to do all advanced assignments *and* the project, that’s 120 + 40 = 160 raw points,
resulting in 40 + (120 * 0.5) = 40 + 60 = 100 **Advanced** points, netting you a 100 in the class without
having to do any basic assignments 😀).

Late advanced assignments and projects will not be accepted. If you are unable to completely finish a project by its due date, consider checking it out for partial credit. Be sure to leave time to attend an office hour or schedule a meeting with the instructional staff.

### Summary

Your final score is based off of sums of the final scores of each category, having taken into account the points past the category total being worth 50%. This allows for multiple ways to get an A or A+ in the class. You can do 10 basic assignments and 4 advanced assignments or you could do 10 basic assignments and an advanced project. You could slack off on some basic assignments and make up for it with more advanced assignments. You could also do some advanced assignments while partially completing a project. This grading scheme is set up to allow for flexibility dealing with the workloads in whatever classes you are taking.