haas/spring2026/comporg/eoce.md
... ...
@@ -0,0 +1,170 @@
1
+# COMPORG SPRING2026 EOCE
2
+
3
+The End of Course Experience (eoce) satisfies the fourth discrete grading
4
+component of the course. It is meant to evaluate your knowledge and
5
+understanding gained through the semester.
6
+
7
+Unlike the regular weekly projects, the purpose of which is to promote a
8
+learning and understanding of the concepts of the course, this EoCE is
9
+meant more as a demonstration of your proficiency in understanding and
10
+utilizing the concepts and skills obtained, showing me how productive you
11
+can be with the experiences gained.
12
+
13
+## RULES
14
+
15
+Presented within will be various activities evaluating your knowledge and
16
+experience gained this semester. In places where you are able, the more
17
+you write (ie comment) and explain topics the better the chance you will
18
+have of receiving full credit (and alternatively, the more credit you
19
+will receive should something defer correctness).
20
+
21
+Unless otherwise specified, the components on this experience are open
22
+resource with the exception of other individuals. In that respect, it
23
+is **CLOSED PERSON**. This means you are not to communicate with
24
+other people (either in the class or otherwise), in real life or
25
+electronically. Use your own knowledge, use your own skills, and use your
26
+own ability to access the allowed resources to aid you in coming up with
27
+your well thought out responses to each activity.
28
+
29
+You are allowed, and expected, to seek clarification on any activity by
30
+asking me. But the aim here is to evaluate what you have learned, so do
31
+not expect tutoring. Any help should be prompted by a well-asked
32
+question. The better and more informed your questions, the better my
33
+responses MAY be. In many ways, I designed this EoCE premised on each and
34
+every one of you interacting with me through the asking of informed
35
+questions. Those that do not take advantage of asking such calibre of
36
+questions and instead end up struggling, please know that you're doing
37
+this wrong. But also know that, the aim here is for you to accomplish the
38
+various tasks through your own understanding of the task and concepts at
39
+hand, and not to outsource your thinking and remembering to others.
40
+
41
+You are to all of the available items. Submission is to be as a submitted
42
+archive to the usual and appropriate places: the 'pctF' project submitted
43
+via its usual process, the game will already be considered submitted (so
44
+make sure all your commits and contributions are pushed upstream).
45
+
46
+To maximize any credit received (or to minimize points lost), optimize
47
+your submission for an organized and easy-to-read presentation of
48
+information that conforms with each section's stated guidelines. In the
49
+case of programs or scripts written, ensure that you are following proper
50
+and consistent commenting/documentation and indentation practices. Use
51
+well-named variables (at least 4 symbols long), and be mindful of how
52
+your particular files submitted will appear on a reasonably-sized
53
+terminal (most of my terminals are 80-90 characters wide), should that be
54
+the contextually relevant destination of output.
55
+
56
+The EoCE is worth 26 points of your overall grade (projects (52) +
57
+participation (13) + notes (13) + eoce (26) = 104), representing a
58
+distinct fourth category within the grading policy of the course
59
+(Projects, Journal, Participation, and EoCE).
60
+
61
+### FINALS WEEK AVAILABILITY
62
+
63
+While some classes are allocated a specific meeting time during finals
64
+week, I make all such times available should you be free and have
65
+questions. As such, finals week in **CHM123** will look something like
66
+this:
67
+
68
+ * Tuesday, May 12th, 2026 from 08:00AM-11:00AM
69
+ * Wednesday, May 13th, 2026 from 02:30PM-05:30PM
70
+ * Thursday, May 14th, 2026 from 11:15AM-02:15PM
71
+
72
+Do note, the discord remains available for questions, and there is no
73
+need for you to be physically present at a given time during finals week.
74
+These are merely resources available to you should you wish to utilize
75
+them in the appropriate manners they are available to be used.
76
+
77
+## CONTENT
78
+
79
+### VIRCON32 ASSEMBLY GAME
80
+
81
+As an all-class collaborative project, the aim is to undertake the
82
+development of a Vircon32 game written in assembly language, pertaining
83
+to the identified theme.
84
+
85
+The project will be housed in the class repository, in a directory called
86
+`game/`. Code will be written in assembly.
87
+
88
+Be sure to reference the `TODO.md` and `STRATEGY.md` files for
89
+information on approaches to take and general operating procedures.
90
+
91
+Each person should be active in the development of the game, keeping to
92
+the main branch as much as possible (progress will be evaluated based on
93
+the main branch), and focusing on code and development, not planning
94
+(consult me for general strategy and planning). The intention is to make
95
+use of the class discord for communications, in an on-going manner from
96
+now through the end of the semester.
97
+
98
+The aim is also to contribute the finished game to the Vircon32 Community
99
+Repo, to share with the broader community.
100
+
101
+### STUDENT EXPO AND POSTER
102
+
103
+While we have until the end of the semester to complete the project,
104
+there will be an earlier target for showing this off to the world: the
105
+CCC Student Expo.
106
+
107
+The Expo will be held in the Kelly Lounge of the Commons, Monday, May
108
+4th, 12:00-2:30pm. The deadline for submission is April 27th, 2026.
109
+
110
+So, the game will need to be functional enough to have on display, along
111
+with a poster. While attendance at the Student Expo is not mandatory,
112
+being present at some point during the event is highly encouraged.
113
+
114
+### PCTF
115
+
116
+Your task here is a familiar one: a letter division, just as we've
117
+encountered all semester. Only, this one is of the solve4 variety (ie not
118
+only do you have to solve for the key and provide a written step-by-step
119
+solution, but you also have to solve for the quotient and the remainder).
120
+
121
+Additionally, the puzzle difficulty has been increased to 'hard', which
122
+should provide more of a challenge than the 'medium'-rated puzzles you've
123
+had prior.
124
+
125
+Be sure to submit the appropriately-named and formatted files persuant to
126
+stated pctX project specifications (especially where a solve4-category
127
+puzzle is concerned).
128
+
129
+## SUBMISSION
130
+
131
+The DEADLINE FOR SUBMISSION of this EoCE is 11:59:59pm EDT (that's
132
+23:59:59 in 24-hour time) Thursday, May 14th, 2026. This is the ultimate
133
+deadline for any and all coursework. There is no "late", only "too late".
134
+Don't be that person, not with this.
135
+
136
+I would highly recommend not waiting until the last moment (or even the
137
+last week) to start on this. It has been released weeks in advance, with
138
+the intention that you chip away at it a little bit at a time, over the
139
+course of weeks.
140
+
141
+As with the projects and other deliverables this semester, you can submit
142
+early (and worthwhile, early submissions or extra work can receive up to
143
+7 bonus points (applicable to the EoCE grading component)), and also
144
+submit as many times as you desire. Note that when you submit, that
145
+resets the timestamp from which I will evaluate any early submission
146
+bonus points or on-time eligibility.
147
+
148
+Eligibility of any received bonus points on the EoCE are ultimately up to
149
+my decision: if you have genuinely put forth just and honest effort that
150
+is worthy of this undertaking, you will likely receive any eligible bonus
151
+points as described. If you are more calculating and avoiding of work in
152
+your EoCE efforts, I reserve the right not to grant any bonus points.
153
+
154
+Also, if I notice any cases of rule violations (people overhelping each
155
+other instead of letting each individual complete the EoCE on their own
156
+accord and ability), you risk forfeiting any/all bonus points or even any
157
+credit for the section(s) that you violated the rules on.
158
+
159
+Additionally:
160
+
161
+ * Solutions not abiding by spirit of project will be subject to a 50%
162
+ overall deduction
163
+ * Solutions not utilizing descriptive why and how comments will be
164
+ subject to a 50% overall deduction
165
+ * Solutions not utilizing indentation to promote scope and clarity will
166
+ be subject to a 50% overall deduction
167
+ * Solutions not organized and easy to read are subject to a 50% overall
168
+ deduction
169
+
170
+Good luck!
haas/spring2026/sysprog/eoce.md
... ...
@@ -0,0 +1,273 @@
1
+# SYSPROG SPRING2026 EOCE
2
+
3
+The End of Course Experience (eoce) satisfies the fourth discrete grading
4
+component of the course. It is meant to evaluate your knowledge and
5
+understanding gained through the semester.
6
+
7
+Unlike the regular weekly projects, the purpose of which is to promote a
8
+learning and understanding of the concepts of the course, this EoCE is
9
+meant more as a demonstration of your proficiency in understanding and
10
+utilizing the concepts and skills obtained, showing me how productive you
11
+can be with the experiences gained.
12
+
13
+## RULES
14
+
15
+Presented within will be various activities evaluating your knowledge and
16
+experience gained this semester. In places where you are able, the more
17
+you write (ie comment) and explain topics the better the chance you will
18
+have of receiving full credit (and alternatively, the more credit you
19
+will receive should something defer correctness).
20
+
21
+Unless otherwise specified, the components on this experience are open
22
+resource with the exception of other individuals. In that respect, it
23
+is **CLOSED PERSON**. This means you are not to communicate with
24
+other people (either in the class or otherwise), in real life or
25
+electronically. Use your own knowledge, use your own skills, and use your
26
+own ability to access the allowed resources to aid you in coming up with
27
+your well thought out responses to each activity.
28
+
29
+You are allowed, and expected, to seek clarification on any activity by
30
+asking me. But the aim here is to evaluate what you have learned, so do
31
+not expect tutoring. Any help should be prompted by a well-asked
32
+question. The better and more informed your questions, the better my
33
+responses MAY be. In many ways, I designed this EoCE premised on each and
34
+every one of you interacting with me through the asking of informed
35
+questions. Those that do not take advantage of asking such calibre of
36
+questions and instead end up struggling, please know that you're doing
37
+this wrong. But also know that, the aim here is for you to accomplish the
38
+various tasks through your own understanding of the task and concepts at
39
+hand, and not to outsource your thinking and remembering to others.
40
+
41
+You are to all of the available items. Submission is to be as a submitted
42
+archive to the usual and appropriate places: the 'pctF' project submitted
43
+via its usual process, the assembler will already be considered submitted
44
+(so make sure all your commits and contributions are pushed upstream). As
45
+for the chapters, there will be dedicated `sppD`, `sppE`, and `sppF`
46
+projects for you to use for submitting.
47
+
48
+To maximize any credit received (or to minimize points lost), optimize
49
+your submission for an organized and easy-to-read presentation of
50
+information that conforms with each section's stated guidelines. In the
51
+case of programs or scripts written, ensure that you are following proper
52
+and consistent commenting/documentation and indentation practices. Use
53
+well-named variables (at least 4 symbols long), and be mindful of how
54
+your particular files submitted will appear on a reasonably-sized
55
+terminal (most of my terminals are 80-90 characters wide), should that be
56
+the contextually relevant destination of output.
57
+
58
+The EoCE is worth 26 points of your overall grade (projects (52) +
59
+participation (13) + notes (13) + eoce (26) = 104), representing a
60
+distinct fourth category within the grading policy of the course
61
+(Projects, Journal, Participation, and EoCE).
62
+
63
+### FINALS WEEK AVAILABILITY
64
+
65
+While some classes are allocated a specific meeting time during finals
66
+week, I make all such times available should you be free and have
67
+questions. As such, finals week in **CHM123** will look something like
68
+this:
69
+
70
+ * Tuesday, May 12th, 2026 from 08:00AM-11:00AM
71
+ * Wednesday, May 13th, 2026 from 02:30PM-05:30PM
72
+ * Thursday, May 14th, 2026 from 11:15AM-02:15PM
73
+
74
+Do note, the discord remains available for questions, and there is no
75
+need for you to be physically present at a given time during finals week.
76
+These are merely resources available to you should you wish to utilize
77
+them in the appropriate manners they are available to be used.
78
+
79
+## CONTENT
80
+
81
+### CHAPTER 13
82
+
83
+For this component, you are going to do as you've done the other weeks,
84
+focusing on a chapter. The chapter of focus here is Chapter 13
85
+("Programming with Datagrams").
86
+
87
+ * reading the chapter
88
+ * discussing chapter concepts (in the class discord)
89
+ * experimenting/playing with the content in your own code
90
+ * identifying a UNIX tool or program you'd like to implement, making
91
+ use of pertinent concepts
92
+ * code should include statement of limitations (what functionality does
93
+ your code implement, what, especially compared to standard system
94
+ tools, does it not implement)
95
+ * no compiler notes, warnings, syntax errors, logical errors, or
96
+ runtime errors (if there are compiler flags to issue, they should
97
+ be clearly documented in the code/utilized in Makefile) if you
98
+ are implementing a UNIX tool (even if with only a subset of
99
+ functionality), if it outputs in a certain way, or takes input in a
100
+ certain way (as the core value of the tool), your implementation
101
+ should, as best as possible, seek to conform with that structure of
102
+ content.
103
+
104
+The overall aim is to enable you to challenge yourself, explore areas and
105
+concepts you are not familiar with, and grow as a programmer and problem
106
+solver. I don't want to see you just doing things the way you are
107
+familiar with (simply because you've always done them that way).
108
+
109
+### CHAPTER 14
110
+
111
+For this component, you are going to do as you've done the other weeks,
112
+focusing on a chapter. The chapter of focus here is Chapter 14
113
+("Threads: Concurrent Functions").
114
+
115
+ * reading the chapter
116
+ * discussing chapter concepts (in the class discord)
117
+ * experimenting/playing with the content in your own code
118
+ * identifying a UNIX tool or program you'd like to implement, making
119
+ use of pertinent concepts
120
+ * code should include statement of limitations (what functionality does
121
+ your code implement, what, especially compared to standard system
122
+ tools, does it not implement)
123
+ * no compiler notes, warnings, syntax errors, logical errors, or
124
+ runtime errors (if there are compiler flags to issue, they should
125
+ be clearly documented in the code/utilized in Makefile) if you
126
+ are implementing a UNIX tool (even if with only a subset of
127
+ functionality), if it outputs in a certain way, or takes input in a
128
+ certain way (as the core value of the tool), your implementation
129
+ should, as best as possible, seek to conform with that structure of
130
+ content.
131
+
132
+The overall aim is to enable you to challenge yourself, explore areas and
133
+concepts you are not familiar with, and grow as a programmer and problem
134
+solver. I don't want to see you just doing things the way you are
135
+familiar with (simply because you've always done them that way).
136
+
137
+### CHAPTER 15
138
+
139
+For this component, you are going to do as you've done the other weeks,
140
+focusing on a chapter. The chapter of focus here is Chapter 15
141
+("IPC Roundup").
142
+
143
+ * reading the chapter
144
+ * discussing chapter concepts (in the class discord)
145
+ * experimenting/playing with the content in your own code
146
+ * identifying a UNIX tool or program you'd like to implement, making
147
+ use of pertinent concepts
148
+ * code should include statement of limitations (what functionality does
149
+ your code implement, what, especially compared to standard system
150
+ tools, does it not implement)
151
+ * no compiler notes, warnings, syntax errors, logical errors, or
152
+ runtime errors (if there are compiler flags to issue, they should
153
+ be clearly documented in the code/utilized in Makefile) if you
154
+ are implementing a UNIX tool (even if with only a subset of
155
+ functionality), if it outputs in a certain way, or takes input in a
156
+ certain way (as the core value of the tool), your implementation
157
+ should, as best as possible, seek to conform with that structure of
158
+ content.
159
+
160
+The overall aim is to enable you to challenge yourself, explore areas and
161
+concepts you are not familiar with, and grow as a programmer and problem
162
+solver. I don't want to see you just doing things the way you are
163
+familiar with (simply because you've always done them that way).
164
+
165
+### VIRCON32 ASSEMBLER
166
+
167
+As an all-class collaborative project, the aim is to undertake the
168
+development of a command-line based `Vircon32 assembler`, utilizing
169
+various file and library functions, especially `getopt(3)` and the
170
+`regex(3)` functions.
171
+
172
+The project will be housed in the class repository, in a directory called
173
+`assembler/`. Code will be written in C, and will be run in the following
174
+form:
175
+
176
+```
177
+assembler$ ./assembler source.asm -o object.obj
178
+```
179
+
180
+Our assembler, unlike the official Vircon32 assembler, will NOT output to
181
+VBIN format (ie the VBIN header). Instead, we will just output the
182
+machine code.
183
+
184
+This should enable us to compile files individually, then `cat` them
185
+together to get one final result (and slap on a VBIN header later).
186
+
187
+It should also be able to take multiple source files, to output to a
188
+final object file:
189
+
190
+```
191
+assembler$ ./assembler source1.asm source2.asm source3.asm -o object.obj
192
+```
193
+
194
+Be sure to reference the `TODO.md` and `STRATEGY.md` files for
195
+information on approaches to take and general operating procedures.
196
+
197
+Each person should be active in the development of the assembler, keeping
198
+to the main branch as much as possible (progress will be evaluated based
199
+on the main branch), and focusing on code and development, not planning
200
+(consult me for general strategy and planning). The intention is to make
201
+use of the class discord for communications, in an on-going manner from
202
+now through thr end of the semester.
203
+
204
+Also, this would likely be an excellent project to showcase at the
205
+STUDENT EXPO in May (May 4th, 2026). So a poster will need to be created.
206
+
207
+The Expo will be held in the Kelly Lounge of the Commons, Monday, May
208
+4th, 12:00-2:30pm. The deadline for submission is April 27th, 2026. Any
209
+poster would reflect the concepts and processes that went into creating
210
+the assembler (parsing, encoding), obviously with a bias toward the
211
+sysprog-y aspects.
212
+
213
+The assembler may also be contributed to the Vircon32 Community
214
+Repository at the conclusion of the semester, for others in the community
215
+to make use of.
216
+
217
+### PCTF
218
+
219
+Your task here is a familiar one: a letter division, just as we've
220
+encountered all semester. Only, this one is of the solve4 variety (ie not
221
+only do you have to solve for the key and provide a written step-by-step
222
+solution, but you also have to solve for the quotient and the remainder).
223
+
224
+Additionally, the puzzle difficulty has been increased to 'hard', which
225
+should provide more of a challenge than the 'medium'-rated puzzles you've
226
+had prior.
227
+
228
+Be sure to submit the appropriately-named and formatted files persuant to
229
+stated pctX project specifications (especially where a solve4-category
230
+puzzle is concerned).
231
+
232
+## SUBMISSION
233
+
234
+The DEADLINE FOR SUBMISSION of this EoCE is 11:59:59pm EDT (that's
235
+23:59:59 in 24-hour time) Thursday, May 14th, 2026. This is the ultimate
236
+deadline for any and all coursework. There is no "late", only "too late".
237
+Don't be that person, not with this.
238
+
239
+I would highly recommend not waiting until the last moment (or even the
240
+last week) to start on this. It has been released weeks in advance, with
241
+the intention that you chip away at it a little bit at a time, over the
242
+course of weeks.
243
+
244
+As with the projects and other deliverables this semester, you can submit
245
+early (and worthwhile, early submissions or extra work can receive up to
246
+7 bonus points (applicable to the EoCE grading component)), and also
247
+submit as many times as you desire. Note that when you submit, that
248
+resets the timestamp from which I will evaluate any early submission
249
+bonus points or on-time eligibility.
250
+
251
+Eligibility of any received bonus points on the EoCE are ultimately up to
252
+my decision: if you have genuinely put forth just and honest effort that
253
+is worthy of this undertaking, you will likely receive any eligible bonus
254
+points as described. If you are more calculating and avoiding of work in
255
+your EoCE efforts, I reserve the right not to grant any bonus points.
256
+
257
+Also, if I notice any cases of rule violations (people overhelping each
258
+other instead of letting each individual complete the EoCE on their own
259
+accord and ability), you risk forfeiting any/all bonus points or even any
260
+credit for the section(s) that you violated the rules on.
261
+
262
+Additionally:
263
+
264
+ * Solutions not abiding by spirit of project will be subject to a 50%
265
+ overall deduction
266
+ * Solutions not utilizing descriptive why and how comments will be
267
+ subject to a 50% overall deduction
268
+ * Solutions not utilizing indentation to promote scope and clarity will
269
+ be subject to a 50% overall deduction
270
+ * Solutions not organized and easy to read are subject to a 50% overall
271
+ deduction
272
+
273
+Good luck!