haas/fall2026/c4eng.md
... ...
@@ -0,0 +1,770 @@
1
+# fall2026/c4eng
2
+
3
+# ENGR1050 C for Engineers
4
+
5
+## Syllabus / Course Homepage
6
+
7
+| Instructor: | Matthew Haas (haas@corning-cc.edu) |
8
+| Office: | `CHM123` |
9
+| Office Hours: | `T 10:30a-11:35a`, `W 02:00p-02:55p`, `R 10:30a-01:30p` |
10
+| Class Meeting: | CHM123 TR 08:30a-10:20a |
11
+| Class DESIG: | `c4eng` |
12
+| Class Chat: | `#c4eng` on discord |
13
+| Public Directory: | `/var/public/fall2026/C4ENG` |
14
+| CRN: | `14505`, `14506` |
15
+| '`W`' Drop Date: | November 1, 2026 |
16
+| ----------------- | -------------------------------------------------------------- |
17
+| DISCORD invite: | [https://discord.gg/8eu3nKjUXX](https://discord.gg/8eu3nKjUXX) |
18
+| Projects page: | [https://lab46.g7n.org/haas/fall2026/c4eng/projects.md](https://lab46.g7n.org/haas/fall2026/c4eng/projects.md) |
19
+| CCC Syllabus Statements: | [https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/](https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/) |
20
+
21
+## Table of Contents
22
+
23
+ * [Course Description](#course-description)
24
+ * [Course Objectives](#course-objectives)
25
+ * [Assumptions](#assumptions)
26
+ * [Course Materials](#course-materials)
27
+ * [Technology Policy](#technology-policy)
28
+ * [AI use policy](#ai-use-policy)
29
+ * [Grading Policy](#grading-policy)
30
+ * [Letter Grades](#letter-grades)
31
+ * [Course Notes](#course-notes)
32
+ * [Projects](#projects)
33
+ * [Participation](#participation)
34
+ * [EoCE](#eoce)
35
+ * [Submission Guidelines](#submission-guidelines)
36
+ * [Digital is best](#digital-is-best)
37
+ * [Identification](#identification)
38
+ * [Paraphrasing](#paraphrasing)
39
+ * [Organization](#organization)
40
+ * [Timeliness](#timeliness)
41
+ * [Errors](#errors)
42
+ * [Backups](#backups)
43
+ * [Common Sense](#common-sense)
44
+ * [Late Policy](#late-policy)
45
+ * [Attendance](#attendance)
46
+ * [Behaviour](#behaviour)
47
+ * [Collaboration](#collaboration)
48
+ * [Pet Peeves](#pet-peeves)
49
+ * [Rules for Success](#rules-for-success)
50
+ * [Documentation](#documentation)
51
+ * [Topics](#topics)
52
+ * [Student Understanding and Agreement of Syllabus Terms](#student-understanding-and-agreement-of-syllabus-terms)
53
+
54
+## Course Description
55
+
56
+An introduction to C programming and debugging procedures. The
57
+programming assignments will incorporate input/output techniques,
58
+iteration, decision making, arrays and sub programs. Engineering
59
+applications will be emphasized.
60
+
61
+(3 cr. hrs.) (Fall). Prerequisite: MATH 1412 or higher.
62
+Lecture/laboratory.
63
+
64
+## Course Objectives
65
+Upon successful, knowledgeable completion of this course, students will be able to:
66
+
67
+ * Write programs that read numbers and text, process the input and display results sequentially
68
+ * Write decision-making structures
69
+ * Write iterative structures
70
+ * Program using functions
71
+ * Use Arrays
72
+
73
+## Assumptions
74
+
75
+There are many great opportunities for realization and insight ahead, but
76
+there are also many obstacles standing in the way of you staying on a
77
+path of success. I find that uncommunicated assumptions can play a role
78
+in hampering progress, so please ensure you are suitably read up and
79
+aware of my assumptions coming into the course, along with my assumptions
80
+of your assumptions, playing the role of a studious student seeking
81
+enlightenment.
82
+
83
+Let's also make sure we are on the same playing field by establishing
84
+some definitions:
85
+
86
+**student**: A student is primarily a person enrolled in a school
87
+or other educational institution and who is under learning with
88
+goals of acquiring knowledge, developing professions and facilitating
89
+employment in a particular field. In the broader sense, **a student
90
+is anyone who applies themselves to the intensive intellectual
91
+engagement with some matter necessary to master it** as part of
92
+some practical affair in which such mastery is basic or decisive.
93
+(https://en.wikipedia.org/wiki/Student)
94
+
95
+While a decent definition, I would argue that it falls short by not also
96
+indicating certain things that should be stated, so herein are some
97
+further assumptions:
98
+
99
+A student, entering into the educational environment of a particular
100
+class or degree of study (especially at the undergraduate level where we
101
+reside), **DOES NOT** need to have any prior experience with the subject
102
+matter. That is: if you are taking a course on introductory programming
103
+in a certain language, the student is not expected to know how to program
104
+in that specific language (and depending on prerequisites to the course,
105
+may not even need to know anything about programming at the introductory
106
+level).
107
+
108
+To learn something means you don't know it. Not knowing something,
109
+there's a state of not understanding, and not being aware of what a
110
+particular thing or concept is. A student taking a class to learn
111
+something necessarily needs to be in active pursuit of gaining an
112
+understanding, but is not expecting to come in knowing anything. Learning
113
+is often a mistake-ridden process of bumping around in progressively less
114
+conceptually dark spaces as patterns are sussed out and intuitive
115
+connections are established. We learn best from our mistakes, so a
116
+student that does not make mistakes, or that avoids opportunities to make
117
+mistakes, isn't being a good student.
118
+
119
+Learning is build upon an ever-growing foundation (your life experience
120
+and knowledge, some derivation of society's and civilization's collective
121
+body of experience and knowledge), and to be eligible to take a college
122
+class, yes, SOME prerequisite knowledge is assumed, namely:
123
+
124
+ * you are functionally literate in English
125
+ * you know how to and can/will read (input/consume)
126
+ * you know how to and can/will write (output/create/produce)
127
+ * you know how to and can/will do math/computations
128
+ * you know how to and can/will think
129
+ * you know how to and can/will ask questions
130
+
131
+A student's (or learner's) absolute BEST tool is the question,
132
+specifically the regular asking of them. You **NEED** to be regularly
133
+engaging yourself and the class with questions, and responses to
134
+questions. No two people perceive something the same exact way.
135
+One explanation is not ideal for every individual. If an available
136
+explanation falls short with respect to being clarifying or promoting
137
+understanding, you should ask a question. If an available explanation is
138
+clarifying, but then upon further thought creates confusion or makes you
139
+wonder about other, potentially related things: YOU SHOULD ALSO ASK a
140
+question.
141
+
142
+The benefit of authentic education is that it transitions one from a
143
+state of predominantly not knowing what they don't know, to a state where
144
+while they may know that they know more than they did before, also then
145
+cultivates an important perception of then KNOWING that they don't know
146
+even more things.
147
+
148
+Education isn't about certainty or comfort in attaining a set of facts
149
+and calling it quits: It is about coming to terms with the endless
150
+uncertainty of possible things that can be pursued or known. We can never
151
+know everything, but we CAN know that we can never know everything. We
152
+instead strive for a functioning subset where we learn enough to give us
153
+a foundation in the present, and consistently keep learning (although
154
+hopefully less so exclusively in a classroom as time goes by, but
155
+instead by the individual having gained enough experience to become a
156
+self-learner) to keep up with the demands of tomorrow.
157
+
158
+So, as a student learner embarking upon and taking this class, know that
159
+I don't assume you know anything about the course you are taking, and
160
+that you will be reading and thinking and doing and computing and asking
161
+questions regularly so that by the conclusion of the course, you will
162
+have some greater idea of the nature of what was encountered in the
163
+class.
164
+
165
+If you don't want to ask questions, for whatever reason, nor want to
166
+bother with expanding your horizons, in learning new and different
167
+concepts and ways of doing things (ie you want to remain small and
168
+stagnant), then I would urge you to reconsider taking this course: it is
169
+NOT a daycare to keep your mind and hands pacified. It is an educational
170
+environment where you will be tasked to grow and improve.
171
+
172
+## Course Materials
173
+
174
+ * Raspberry Pi kit with accessories
175
+ * FREENOVE Ultimate Starter Kit (electronic components)
176
+
177
+## Technology Policy
178
+
179
+The baseline qualifications for taking this course include you having a proficiency:
180
+
181
+ * to type on a full-size computer keyboard (104-key or equivalent)
182
+ * with basic computing concepts (files, storage, units of information)
183
+ * to read instructions and available technical data in relevant theatres and domains
184
+
185
+... and an ability:
186
+
187
+ * to readily ask questions
188
+ * to take notes and later retrieve useful information from them
189
+ * to recall important concepts and experiences
190
+ * to work on class-related content outside of class
191
+
192
+... and a willingness:
193
+
194
+ * to attempt solving new and unfamiliar problems
195
+ * to encounter new and unfamiliar concepts
196
+ * to indulge in new and unfamiliar activities
197
+ * to learn in new and unfamiliar ways
198
+ * to work on class-related content outside of class
199
+
200
+## AI use policy
201
+
202
+With the advent of commercially-viable and desktop-usable AI products
203
+(AI/AGI/chatGPT/LLMs/etc.), heretofore all regarded as "AI", questions of
204
+ethics and allowability of such tools in the learning process have become
205
+a rather hot topic. For the purposes of my classes:
206
+
207
+AI use is **not** recommended; you would be better off at this stage not
208
+even touching it.
209
+
210
+AI is a powerful tool for productivity, yet when used prior to
211
+solid understanding of the concepts and information being transacted,
212
+ultimately suffer and stagnate.
213
+
214
+You should aim to understand and know how to do things yourself, by
215
+hand/manually. This allows you to better vet AI output, not to mention
216
+better leverage various automation technologies.
217
+
218
+During this learning process, do as much of the task as you can by hand
219
+or mentally: this is how you gain understanding and comprehension. This
220
+allows you to better vet AI output.
221
+
222
+If you insist on using AI, you hereby acknowledge you assume
223
+responsibility for its inherent perils and hazards it can cause you and
224
+your progress/success in this class:
225
+
226
+ * accept that you are putting yourself at risk of deeply sabotaging your learning journey, subjecting yourself to stagnant thought and limited perspectives, as you insulate yourself from the rigors of doing the actual work
227
+
228
+ * accept that you will have to live with the awareness that the instructor and other suitably aware individuals in the course may lose some faith in your humanity
229
+
230
+ * accept that, if you pass off AI-generated work as your own, and your work is questioned, **if you are unable to competently demonstrate your understanding, you risk losing any and all credit for that deliverable**
231
+
232
+ * YOU are the student, YOU are the one here to do the work and learn.
233
+
234
+AI prose is increasingly sophisticated and convincing. Yet there is a
235
+difference between verbosity and competence. Learning to differentiate
236
+between them is a valuable life skill, and an important ability to have
237
+when dealing with AI output.
238
+
239
+## Grading Policy
240
+
241
+The grading policy is broken down into 4 areas, totalling 104 points
242
+(which will account for 100% of the grade):
243
+
244
+ * Notes/Journal/Writing (13pts)
245
+ * Projects (52pts)
246
+ * Participation (13pts)
247
+ * EoCE (26pts).
248
+
249
+Each area, as well as the overall grade, will be evaluated based on a sum
250
+of accumulated points on each projects out of a sum of total points on
251
+each project (as opposed to a sum of averages on each project). This
252
+totaling tends to favor those who consistently do work throughout the
253
+semester, and I want to reward that.
254
+
255
+In addition, for each third to quarter of the class (at instructor's
256
+discretion), there will be a possibility of a **knowledge assessment**,
257
+the results of which will serve as a credit multiplier to any points
258
+accrued (ranging from 0.00-1.00). That means: if you skip or bomb the
259
+knowledge assessment, all your accrued points for that segment of the
260
+course are multiplied by 0.00, and that is the resultant credit that is
261
+factored into your grade.
262
+
263
+While the term 'percent' may be used, it is more appropriate to consider
264
+it a 'percent-oh-four', as the word 'percent' refers to PER each CENT
265
+(100). We are dealing not with 100s, but 104s.
266
+
267
+Also: with the possible exception of the project component, any
268
+accumulated point excesses will be capped at the allocation per that
269
+grading unit.
270
+
271
+### Letter Grades
272
+
273
+Letter grades are pegged to the following numeric values:
274
+
275
+ * **A** (98.00+)
276
+ * **A-** (92.00-97.99)
277
+ * **B+** (86.00-91.99)
278
+ * **B** (80.00-85.99)
279
+ * **B-** (74.00-79.99)
280
+ * **C+** (68.00-73.99)
281
+ * **C** (62.00-67.99)
282
+ * **D** (56.00-61.99)
283
+ * **F** ( 0.00-55.99)
284
+
285
+Any calculated values in excess of two decimal places that may impact the
286
+result is at the sole evaluatory discretion of the instructor (for
287
+example, getting a 92.997; if you've been a pleasant, decent human being,
288
+I may do you a favor. Just sayin'). Application of any 'rounding' or
289
+other result processing is also at the sole discretion of the instructor.
290
+
291
+Bonus points, if given/available, are applied to a particular grade
292
+component (for example, a project bonus point will only pad the projects
293
+component of the grade), and then only up to a maximum of that grade
294
+component's total value (ie, one cannot use bonus points to exceed the 13
295
+possible overall points on the journal, or participation, for example).
296
+
297
+In addition, some further constraints pertaining to bonus point
298
+eligibility:
299
+
300
+Bonus projects that are due the same week as a for-credit project will
301
+only be considered if the for-credit project was actually turned in.
302
+
303
+Bonus projects that are due the same week as a for-credit project will
304
+only be considered if the for-credit project had a final evaluated result
305
+of greater than or equal to 52%.
306
+
307
+Bonus points from early submission of a for-credit project will only be
308
+applied if the for-credit project had a final evaluated result of greater
309
+than or equal to 52%.
310
+
311
+**NOTE**: bonus projects or other extra credit items are **not** eligible
312
+for early submission bonuses.
313
+
314
+### Course Notes
315
+
316
+Accomplishing the assigned tasks represents only part of the educational
317
+experience. A vital part of learning involve understanding and thinking.
318
+Writing is perhaps the best tool we have of capturing thought.
319
+
320
+In each course, as appropriate, there will be an on-going, weekly
321
+class-collaborative documentation, in the form of coursenotes or some
322
+related endeavour where the aim will be to assemble a coherent,
323
+informative document providing insight what went on in class / improved
324
+presentation of some class resource.
325
+
326
+While collaborative in nature, each individual will be evaluated based on
327
+number of commits and quantity of content contributed. While class or
328
+resource topics may vary from week to week, look to contribute at least
329
+256 words of informative, relevant content for consideration of full
330
+credit in this category.
331
+
332
+### Projects
333
+
334
+Projects constitute the portion of your grade involving activities you
335
+perform in the name of experiencing and demonstrating knowledge in this
336
+class- the means by which I will be assessing your understanding of the
337
+material through directed explorations of various topics. Such projects
338
+may be comprehensive to one another.
339
+
340
+In some cases, depending on the situations involved, a project may be
341
+conducive for group-based collaboration. This is not the default case,
342
+but is specified on a case-by-case basis. In such scenarios, all involved
343
+group members should be identified prior to starting on the project.
344
+Additionally, ALL group members in a collaborative situation must perform
345
+fairly equivalent work output into the completion of the project.
346
+Deficient members may experience reduced success.
347
+
348
+In accordance with the late policy, projects past their deadline will see
349
+a late penalty of 33% levied per day. This is to mitigate procrastination
350
+and encourage better time management, and also to ensure progress
351
+continues- once we hit the third day, a past due project is no longer
352
+worth any credit, so it behooves everyone to stay on top of assigned work
353
+and to complete it by its respective deadline. To clarify, if a project
354
+is due by the end of Wednesday, it would be 33% late Thursday (1 day
355
+late), 66% late Friday (2 days late), 100% late once it becomes Saturday
356
+(3+ days late).
357
+
358
+### Participation
359
+
360
+Maintaining an ever present effort in your journey with respect to being
361
+present for class gatherings and making such effort known is an important
362
+aspect to academic interactions.
363
+
364
+For class (no matter the setting), you are to show your effort through
365
+demonstrating regular interactive activity on lab46 and related class
366
+resources (discord, repository). Emphasis will be on communications
367
+taking place with the entire class (the class discord chat).
368
+
369
+Participating in class interactions is of significant importance.
370
+Participation is like the "I care" component of your grade. If you care
371
+enough to learn and help enhance the experience, you will have no trouble
372
+here. If you are disruptive or are not putting forth effort, however,
373
+then it will be duly reflected.
374
+
375
+Weekly participation may link directly to overall credit received on
376
+weekly projects! Do not be silent and in the shadows- ask questions and
377
+be interactive with the class!
378
+
379
+Each week, you have the ability to earn participation credit by
380
+performing various activities (for some amount of points per week, likely
381
+reflective of week and progression of semester). The particular **wcp#**
382
+projects will detail the specific attributes and points available (and
383
+needed) for a particular week.
384
+
385
+I would encourage you to vary your participation activities from week to
386
+week, especially as no one single activity will eventually be enough to
387
+cover the entirety of your weekly participation requirements.
388
+
389
+If you anticipate missing a class, please notify me in advance. While you
390
+may still lose applicable participation credit, the advance notice will
391
+be taken into positive consideration.
392
+
393
+### EoCE
394
+
395
+As the semester starts wrapping up, the End of Course Experience (EoCE)
396
+will be released.
397
+
398
+Intended as a sort of comprehensive project(s), its aim is to evaluate
399
+your knowledge gained from the class this semester. Unlike other classes
400
+which have a "Final Exam", the EoCE is meant to be an EXPERIENCE, and as
401
+such celebrated across the land. If you're new to my classes, you'll see
402
+those with prior experience jump for joy at the thought of an EoCE (the
403
+twitching / convulsing is merely ecstatic joy that is difficult for the
404
+corporeal body to manifest).
405
+
406
+## Submission Guidelines
407
+
408
+The following are some guidelines to keep in mind when preparing your
409
+work for submission. Not all may always be applicable, to each class, or
410
+even each submission.
411
+
412
+### Digital is best
413
+
414
+Technology is a wonderful thing. It facilitates many of the tasks we'd
415
+otherwise have to do manually by hand.
416
+
417
+The intent here is to make things easy on both you and me.
418
+
419
+So use the technology, and don't just it for the sake of using it-- use
420
+it to make the task at hand easier (ie use the technology available and
421
+sanctioned for the course).
422
+
423
+With that said, some additional aspects to keep in mind:
424
+
425
+ * e-mails were designed to be plain text; don't make them into web pages
426
+ * e-mails should always have an informative subject line
427
+ * if you've got non-text files to include in an e-mail, just attach them
428
+ * you've got many attachments? archive/compress them, attach the archive
429
+ * plain ASCII text (UTF-8) is preferable over any enriched text format
430
+
431
+If appropriate, I also will accept submissions via singing telegram,
432
+airplane banner, crop circles, creative dance, three part rock aria, etc.
433
+so long that I get to witness such creativity, and receive something
434
+which lets me look back on it later (photos, video, transcription on
435
+paper, etc.). Chances are such unique submissions will gain you favorable
436
+considerations.
437
+
438
+### Identification
439
+
440
+Where applicable, be sure to include the following information on any
441
+submission:
442
+
443
+ * Name,
444
+ * Course and Section,
445
+ * Due Date,
446
+ * Assignment # and description,
447
+ * Short abstract describing the purpose of your program / assignment.
448
+
449
+Presentation of this information in a clear and organized fashion will
450
+make your assignment all the easier to read. You may come up with your
451
+own format for the display of this information.
452
+
453
+Any e-mail submissions should have an appropriate subject line. Please
454
+use subjects on all e-mails. This is also very important.
455
+
456
+Leaving off the subject line is like sending a letter without putting a
457
+stamp on it-- it causes someone extra work. And that someone would be me.
458
+So don't do it. Please please please use informative subject lines!
459
+
460
+### Paraphrasing
461
+
462
+For any provided questions, keywords, etc.: identify each question or
463
+selection you are answering by listing or paraphrasing the original
464
+question.
465
+
466
+Do not just give me an answer.
467
+
468
+This is important. I mean it. You don't know how frustrating it is to get
469
+an assignment that just has the answers on it. It takes so much longer to
470
+evaluate.
471
+
472
+I reserve the right to deduct points if you don't do this.
473
+
474
+### Organization
475
+
476
+Keep your programs and assignments organized and easy to read.
477
+
478
+Use a uniform writing style. Messy or unorganized submissions will have
479
+points deducted. Think to yourself: does it look good? Would **you** want
480
+to read this? Take pride in your work.
481
+
482
+These assignments are not just for me to read and grade- you may wish to
483
+incorporate them into a portfolio for use in the future. Making an
484
+investment now could pay off later!
485
+
486
+### Timeliness
487
+
488
+Turn in submissions on time.
489
+
490
+Late submissions will be subject to an appropriate penalty. Circumstances
491
+vary, see the Late Policy for details.
492
+
493
+In many cases, where possible, I do accept resubmissions.
494
+
495
+### Errors
496
+
497
+If you encounter an error while performing some task (and the directions
498
+do not indicate you should be receiving an error), chances are you made a
499
+typo. Consult the class chat, ask someone, or contact me.
500
+
501
+**NOTE**: Submissions containing answers based on user error will be
502
+considered incorrect.
503
+
504
+### Backups
505
+
506
+Be sure to keep a backup copy of all assignments submitted in the event
507
+something is lost in transmission.
508
+
509
+**It is your responsibility to be able to send another copy of your
510
+submission should the original be lost.**
511
+
512
+### Common Sense
513
+
514
+Use your own judgment. The world today is increasingly filled with rules
515
+and policies dictating what you can and cannot do. I am not about to
516
+go and list all the specifics and restrictions regarding assignment
517
+submission.
518
+
519
+You are here to learn and to grow, and I want to allow you a certain
520
+amount of flexibility in that process. Spending all your time formatting
521
+an assignment to my specifications isn't my idea of learning. Incorporate
522
+these guidelines into your general style, if you miss the mark I'll let
523
+you know. But focus more on learning and understanding than worrying
524
+about dotting every 'i' or crossing every 't'. There's enough of that
525
+elsewhere in the world.
526
+
527
+## Late Policy
528
+
529
+Sometimes, even though we try our hardest to get everything in on time,
530
+the spurious Murphy's Law will make an appearance. Your dog ate your
531
+network cable, a burst of cosmic rays damaged your RAM precisely where
532
+your work was located... the list goes on.
533
+
534
+If something is not submitted by its respective due date (or, heaven
535
+forbid, the late window), and no advance attempt has been made to
536
+communicate with me, the assignment will be invalidated of any value.
537
+
538
+Bottom line.. if something is going to be late: let me know. It happens,
539
+just don't make a habit of it. Communication is key.
540
+
541
+Unless otherwise specified, past due assignments will lose 33% credit per
542
+day, rendering them worthless credit-wise after 3 days.
543
+
544
+Please do remember most projects are released **at least** one week in
545
+advance. If you wait until the finals days before the deadline, and
546
+struggle due to lack of time, that isn't grounds for reconsideration of
547
+any deadlines or late penalties. Take the whole time, work away slowly at
548
+it over time, and that will likely lead to far fewer deadline rushes.
549
+
550
+### Attendance
551
+
552
+Attendance plays an important part in one's educational journey each
553
+semester. Missing class deprives you of essential knowledge and hinders
554
+understanding towards your eventual mastering of a topic.
555
+
556
+Because we are all here to learn (and if learning isn't a priority, I
557
+highly suggest you think about making it such), and believe it or not-
558
+learning isn't just about one person, but the entire group. So it is
559
+important to be present in order to positively contribute to the learning
560
+experience.
561
+
562
+I also reserve the right to report absent, or highly tardy students in
563
+the course. In some cases, that could result in being dropped from the
564
+course. On the same token, I reserve the right NOT to report or do
565
+anything to such students. Sometimes failure can be the best teacher.
566
+
567
+### Behaviour
568
+
569
+Should your behaviour in the class be notably and consistently unruly,
570
+off-topic, or alarming, I have the ability to remove you from the class.
571
+
572
+I will likely issue a warning or report (although not necessarily to the
573
+individual- sometimes an administrative reporting is in order to have
574
+them resolve the issue) indicating a desire to have you cease the
575
+particular behaviour, but through continued transgressions, may actually
576
+elevate to forced removal from the class.
577
+
578
+The priority is to the well-being of the class community. I cannot have
579
+individuals derailing that for their own personal gain or purposes.
580
+
581
+## Collaboration
582
+
583
+Because this course is open resource (ie book, computer, note, etc.) I
584
+would like it generally to remain **closed person** and **closed
585
+intelligence** (the thinking done should be your own, not outsourcing it
586
+to some artificial entity). The reason for this is that the amount of
587
+resources available to you are vast, and the goal here is to discover and
588
+learn the material through individual initiative.
589
+
590
+It IS possible to help others without giving away answers.
591
+
592
+Respond to questions with a question, give pointers to where information
593
+might be located in legitimate sources, remind them of the usefulness of
594
+manuals, and the availability of search engines.
595
+
596
+Individuals are allowed and expected, to assist others through the class
597
+chat **WITHOUT GIVING EXPLICIT ANSWERS**, so long as it does not
598
+interfere with any other existing circumstance. If group work is required
599
+on anything, that attribute will be specifically stated.
600
+
601
+Explicit copying on or of any class work is forbidden. If any evidence or
602
+suggestion of non-authentic work is discovered (and I can tell you some
603
+stories) in your particular direction, you risk both my wrath as well as
604
+the possibility of disciplinary action by the school. Academic dishonesty
605
+and plagiarism may be prosecuted under the purview as laid out in the
606
+school's Academic Honesty Policy, as listed under the Code of Student
607
+Conduct: Academic Honesty section in the CCC Course Catalog.
608
+
609
+So just play it safe and make sure your work is your own, and borrowed
610
+information is appropriately cited or referenced.
611
+
612
+## Pet Peeves
613
+
614
+Everyone has their buttons that can be pushed the wrong way. Here are a
615
+few of mine, that I would prefer not encountering:
616
+
617
+The eager, often surface-only desire to destroy things (especially with
618
+no desire to understand the why behind it all).
619
+
620
+The notion that 'old', 'unpopular', 'uncomfortable', or 'different',
621
+especially in terms of technology or experiences, is somehow bad (there
622
+are plenty of useful things to learn, for the patterns will often
623
+remanifest in future technologies down the road)
624
+
625
+Apologizing: "sorry I had to ask a question", "sorry I misunderstood",
626
+"sorry I failed to do that action"; I WANT people to ask questions.
627
+Questions are based on not fully understanding something. And if your
628
+actions come up short, apologies only serve to highlight the deficiency.
629
+The best solution: to fix it and not keep repeating the same mistake.
630
+There may be things worthy of apologizing for. For most incidents of
631
+apology I encounter related to classes, such is irrelevant. If you feel
632
+you are in the wrong for asking a question, you're doing this whole
633
+learning thing wrong.
634
+
635
+Overhelping "the weakest link"; a somewhat modern trend, where I see
636
+woefully unprepared/unready individuals overly assisted through the
637
+course (where the intent is to save them from failing). This is but a
638
+short-term perspective, contributing to their long-term failure.
639
+
640
+Opting out of things that seem overwhelming, yet somehow expecting things
641
+will get better as time goes on.
642
+
643
+The desire to impress me-- impressing comes by being impressive, not
644
+selling an act to me (in short, don't try to impress me, just do your
645
+best work, and have me be impressed by how impressive it naturally is).
646
+
647
+Avoiding the developing/strengthening your own memory and recall, and
648
+relying on others (including the instructor) to be your memory.
649
+
650
+The obsession over and recitation of hardware specs-- this has nothing to
651
+do with computing, yet many mistakenly believe it to be such (a small
652
+aspect of IT and an occasionally fun hobby? sure.)
653
+
654
+The compensation for lack of knowledge by clinging tightly to (perceived)
655
+known knowledge-- I expect everyone not to know things; knowing we don't
656
+know enables us to learn.
657
+
658
+The avoiding of questions out of fear they may not be worthy of asking--
659
+how else can I know where you are if you don't ask?
660
+
661
+The asking for the answer as if it were a question, to avoid thinking or
662
+doing the work yourself. Questions are the a result of your thinking, not
663
+"I don't know, so tell me?", or the worst (literally): "What do I need to
664
+do in order to get an A/full credit?"
665
+
666
+The absolute belief that if I say something then it is the truth (same
667
+for the inverse, converse, contrapositive, etc.)-- being open-minded and
668
+questioning is one of the greatest abilities we can have. Society trains
669
+you to be compliant with external authority at the expense of your own;
670
+to be educated and intelligent, in part, means you have cultivated your
671
+own self-authority so you can make your own decisions.
672
+
673
+The impression that if something is said frequently or confidently
674
+enough, then it must be true, and that makes someone an "expert" who
675
+should be believed, followed, and unquestioned.
676
+
677
+The tendency to brute force through something instead of trying to think
678
+or learn new approaches-- memorizing and regurgitation will often not
679
+work out in your favour here (or greatly annoy me).
680
+
681
+Being tangibly obsessed with knowing your exact grade, while being
682
+uninformed about the process of calculating it yourself from available
683
+information.
684
+
685
+Complaining upstream about me/my class without actually bringing issues
686
+to me first to address.
687
+
688
+Destroying context in asynchronous communications (ie deleting Discord
689
+messages after making a post, asking a question, and getting some sort of
690
+resolution): this makes it entirely unhelpful for others to also benefit,
691
+and leaves gaping holes in the existing conversation. Please do not
692
+delete your Discord messages after getting a response.
693
+
694
+Using AI, and failing to distinguish between your own skills and
695
+knowledge, and what AI is able to produce, treating them as one and the
696
+same. As I've said elsewhere, at this level, you should be avoiding
697
+flagrant AI use, as it can become a fatal crutch, stagnating your
698
+abilities.
699
+
700
+## Rules for Success
701
+
702
+For maximum success in the class, please adhere to the following rules:
703
+
704
+ * start on activities early
705
+ * observe/study, read/intuit, and comprehend the subject matter
706
+ * play/tinker/experiment with the subject matter (external to projects)
707
+ * ask well-informed and copious questions
708
+
709
+Struggle and problems in the course almost immediately arise when one
710
+fails to follow one or more of these guidelines.
711
+
712
+## Documentation
713
+
714
+The following criteria should be kept in mind when contributing content
715
+to collaborative documentation, the course notes, and any pertinent
716
+class-related communications:
717
+
718
+ * Never use a form of a word in its own definition
719
+ * Use external hyperlinks only as citations
720
+ * Content first, then formatting
721
+ * There is only one empire- ours
722
+ * Contribute only original content
723
+ * Paraphrase and cite existing information
724
+ * Do NOT blatantly copy existing information
725
+ * A healthy resource is an active resource
726
+ * Do not focus on just your contributions
727
+ * Mistakes are opportunities for future contributions
728
+
729
+## Topics
730
+
731
+The following is a list of the major topics being covered in this course:
732
+
733
+ * Standard I/O (STDIO, STDOUT, STDERR)
734
+ * Header Files (Local and System), C Standard Library (Libc), Libraries
735
+ * arithmetic (equations, operators)
736
+ * logic and operators (and, or, not, xor)
737
+ * Variables (types, ranges, sizes)
738
+ * Scope (Block, Local, Global, File)
739
+ * Pointers (address of, assignment, dereferencing)
740
+ * Type Casting
741
+ * Selection Structures (if, case/switch)
742
+ * Repetition/Iteration Structures (for, while, do while)
743
+ * Arrays (standard notation, pointer arithmetic, single-dimensional, multi-dimensional)
744
+ * File Access (Read, Write, Append)
745
+ * Structures (Declaration, Accessing Elements, Pointers to)
746
+ * typedef, enum, union
747
+ * Functions, Parameters (Pass by: Value, Address, Reference), Return Types, Recursion, Command-line arguments
748
+ * Compiler, Preprocessor, Flags, Assembler, Linker, Multi-file programs (how to structure, how to compile)
749
+
750
+## Student Understanding and Agreement of Syllabus Terms
751
+
752
+By reading through this document, participating in the class chat,
753
+utilizing class resources, and performing the various class activities
754
+and projects, you understand and consent:
755
+
756
+ * to the rules, policies governing your status as a student at SUNY CCC.
757
+ * to the structure, policies, and nature of the course as laid out here.
758
+ * to having an adequate understanding of course prerequisite knowledge.
759
+ * to maintain a respectful, inquisitive, well-behaved, and learning-oriented focus as you participate and go through the course.
760
+ * to practice (and further cultivate, as needed) the fundamental aspects of a student taking this course, which includes being able and willing:
761
+ * to read, comprehend and work with the material and information inherent to the course.
762
+ * to write and express your thoughts in coherent, descriptive sentences.
763
+ * willing to analyze, problem solve, debug, troubleshoot, ideate, creatively, and logically/rationally think.
764
+ * willing to compute and transact in number concepts (literal, symbolic or abstract) and any related units in their various processes.
765
+ * to, upon facing uncertainty, confusion, or lack of understanding, will ask copious, well-informed, and well-intending questions to clarify your state of understanding.
766
+ * if cause for issue rises, you will bring it to my attention so that it may be best addressed as locally and pertinently as possible to the course and its educational environment.
767
+ * participate in the course with a focus on curiosity, discovering, exploring, learning, and understanding.
768
+ * starting early on deliverables so that ample time is available for discovering, exploring, learning, and asking any questions as needed.
769
+ * that, as a student, a genuine learning experience necessarily involves some level of unfamiliarity, which may invoke discomfort.
770
+ * that your learning and the nature of the course is an inherently asynchronous thing. It is your responsibility to manage your time, so that you can have adequate time to ask questions and accomplish your own tasks.
haas/fall2026/comporg.md
... ...
@@ -0,0 +1,801 @@
1
+# fall2026/comporg
2
+
3
+# CSCS2650 Computer Organization
4
+
5
+## Syllabus / Course Homepage
6
+
7
+| Instructor: | Matthew Haas (haas@corning-cc.edu) |
8
+| Office: | `CHM123` |
9
+| Office Hours: | `T 10:30a-11:35a`, `W 02:00p-02:55p`, `R 10:30a-01:30p` |
10
+| Class Meeting: | independent study |
11
+| Class DESIG: | `comporg` |
12
+| Class Chat: | `#comporg` on discord |
13
+| Public Directory: | `/var/public/fall2026/COMPORG` |
14
+| CRN: | `15559` |
15
+| '`W`' Drop Date: | November 1, 2026 |
16
+| ----------------- | -------------------------------------------------------------- |
17
+| DISCORD invite: | [https://discord.gg/8eu3nKjUXX](https://discord.gg/8eu3nKjUXX) |
18
+| Projects page: | [https://lab46.g7n.org/haas/fall2026/comporg/projects.md](https://lab46.g7n.org/haas/fall2026/comporg/projects.md) |
19
+| CCC Syllabus Statements: | [https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/](https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/) |
20
+
21
+## Table of Contents
22
+
23
+ * [Course Description](#course-description)
24
+ * [Course Objectives](#course-objectives)
25
+ * [Assumptions](#assumptions)
26
+ * [Course Materials](#course-materials)
27
+ * [Technology Policy](#technology-policy)
28
+ * [AI use policy](#ai-use-policy)
29
+ * [Grading Policy](#grading-policy)
30
+ * [Letter Grades](#letter-grades)
31
+ * [Course Notes](#course-notes)
32
+ * [Projects](#projects)
33
+ * [Participation](#participation)
34
+ * [EoCE](#eoce)
35
+ * [Submission Guidelines](#submission-guidelines)
36
+ * [Digital is best](#digital-is-best)
37
+ * [Identification](#identification)
38
+ * [Paraphrasing](#paraphrasing)
39
+ * [Organization](#organization)
40
+ * [Timeliness](#timeliness)
41
+ * [Errors](#errors)
42
+ * [Backups](#backups)
43
+ * [Common Sense](#common-sense)
44
+ * [Late Policy](#late-policy)
45
+ * [Attendance](#attendance)
46
+ * [Behaviour](#behaviour)
47
+ * [Collaboration](#collaboration)
48
+ * [Pet Peeves](#pet-peeves)
49
+ * [Rules for Success](#rules-for-success)
50
+ * [Documentation](#documentation)
51
+ * [Topics](#topics)
52
+ * [Student Understanding and Agreement of Syllabus Terms](#student-understanding-and-agreement-of-syllabus-terms)
53
+
54
+## Course Description
55
+
56
+Computer architecture and assembly language programming methods.
57
+Includes addressing, binary and computer arithmetic, boolean logic, bus
58
+structures, control and data flow, data representation, debugging,
59
+input/output, instruction cycle, instruction sets, interrupts, linking,
60
+machine language, memory, processors, registers, storage, subroutines,
61
+and translation. Connection to compilers and operating systems discussed.
62
+
63
+(4 cr. hrs.) (Spring) Prerequisite: CSCS1320, CSCS2420, or instructor
64
+consent.
65
+
66
+## Course Objectives
67
+Upon successful completion of this course, students will be able to:
68
+
69
+ * Analyze the fundamental organization of a computer system, including
70
+the functional relationships between the CPU, memory hierarchy, and I/O
71
+subsystems.
72
+
73
+ * Evaluate the impact of various number systems and data representations
74
+on computational precision and hardware efficiency.
75
+
76
+ * Translate high-level programming logic into assembly-level
77
+instructions to demonstrate an understanding of the underlying execution
78
+model.
79
+
80
+ * Implement algorithmic solutions using low-level programming
81
+techniques, focusing on the effective use of processor registers and
82
+memory addressing modes.
83
+
84
+ * Apply stack and branching logic to develop structured, modular code at
85
+the machine level.
86
+
87
+ * Examine the interface between application software and the operating
88
+system by executing and managing direct system calls.
89
+
90
+ * Deconstruct the role of standard runtime libraries in abstracting
91
+hardware complexities and facilitating system-level services.
92
+
93
+ * Appraise how low-level architectural constraints and instruction set
94
+design influence the performance and optimization of high-level software.
95
+
96
+## Assumptions
97
+
98
+There are many great opportunities for realization and insight ahead, but
99
+there are also many obstacles standing in the way of you staying on a
100
+path of success. I find that uncommunicated assumptions can play a role
101
+in hampering progress, so please ensure you are suitably read up and
102
+aware of my assumptions coming into the course, along with my assumptions
103
+of your assumptions, playing the role of a studious student seeking
104
+enlightenment.
105
+
106
+Let's also make sure we are on the same playing field by establishing
107
+some definitions:
108
+
109
+**student**: A student is primarily a person enrolled in a school
110
+or other educational institution and who is under learning with
111
+goals of acquiring knowledge, developing professions and facilitating
112
+employment in a particular field. In the broader sense, **a student
113
+is anyone who applies themselves to the intensive intellectual
114
+engagement with some matter necessary to master it** as part of
115
+some practical affair in which such mastery is basic or decisive.
116
+(https://en.wikipedia.org/wiki/Student)
117
+
118
+While a decent definition, I would argue that it falls short by not also
119
+indicating certain things that should be stated, so herein are some
120
+further assumptions:
121
+
122
+A student, entering into the educational environment of a particular
123
+class or degree of study (especially at the undergraduate level where we
124
+reside), **DOES NOT** need to have any prior experience with the subject
125
+matter. That is: if you are taking a course on introductory programming
126
+in a certain language, the student is not expected to know how to program
127
+in that specific language (and depending on prerequisites to the course,
128
+may not even need to know anything about programming at the introductory
129
+level).
130
+
131
+To learn something means you don't know it. Not knowing something,
132
+there's a state of not understanding, and not being aware of what a
133
+particular thing or concept is. A student taking a class to learn
134
+something necessarily needs to be in active pursuit of gaining an
135
+understanding, but is not expecting to come in knowing anything. Learning
136
+is often a mistake-ridden process of bumping around in progressively less
137
+conceptually dark spaces as patterns are sussed out and intuitive
138
+connections are established. We learn best from our mistakes, so a
139
+student that does not make mistakes, or that avoids opportunities to make
140
+mistakes, isn't being a good student.
141
+
142
+Learning is build upon an ever-growing foundation (your life experience
143
+and knowledge, some derivation of society's and civilization's collective
144
+body of experience and knowledge), and to be eligible to take a college
145
+class, yes, SOME prerequisite knowledge is assumed, namely:
146
+
147
+ * you are functionally literate in English
148
+ * you know how to and can/will read (input/consume)
149
+ * you know how to and can/will write (output/create/produce)
150
+ * you know how to and can/will do math/computations
151
+ * you know how to and can/will think
152
+ * you know how to and can/will ask questions
153
+
154
+A student's (or learner's) absolute BEST tool is the question,
155
+specifically the regular asking of them. You **NEED** to be regularly
156
+engaging yourself and the class with questions, and responses to
157
+questions. No two people perceive something the same exact way.
158
+One explanation is not ideal for every individual. If an available
159
+explanation falls short with respect to being clarifying or promoting
160
+understanding, you should ask a question. If an available explanation is
161
+clarifying, but then upon further thought creates confusion or makes you
162
+wonder about other, potentially related things: YOU SHOULD ALSO ASK a
163
+question.
164
+
165
+The benefit of authentic education is that it transitions one from a
166
+state of predominantly not knowing what they don't know, to a state where
167
+while they may know that they know more than they did before, also then
168
+cultivates an important perception of then KNOWING that they don't know
169
+even more things.
170
+
171
+Education isn't about certainty or comfort in attaining a set of facts
172
+and calling it quits: It is about coming to terms with the endless
173
+uncertainty of possible things that can be pursued or known. We can never
174
+know everything, but we CAN know that we can never know everything. We
175
+instead strive for a functioning subset where we learn enough to give us
176
+a foundation in the present, and consistently keep learning (although
177
+hopefully less so exclusively in a classroom as time goes by, but
178
+instead by the individual having gained enough experience to become a
179
+self-learner) to keep up with the demands of tomorrow.
180
+
181
+So, as a student learner embarking upon and taking this class, know that
182
+I don't assume you know anything about the course you are taking, and
183
+that you will be reading and thinking and doing and computing and asking
184
+questions regularly so that by the conclusion of the course, you will
185
+have some greater idea of the nature of what was encountered in the
186
+class.
187
+
188
+If you don't want to ask questions, for whatever reason, nor want to
189
+bother with expanding your horizons, in learning new and different
190
+concepts and ways of doing things (ie you want to remain small and
191
+stagnant), then I would urge you to reconsider taking this course: it is
192
+NOT a daycare to keep your mind and hands pacified. It is an educational
193
+environment where you will be tasked to grow and improve.
194
+
195
+## Course Materials
196
+
197
+ * No materials needed (resources available online)
198
+
199
+## Technology Policy
200
+
201
+The baseline qualifications for taking this course include you having a
202
+proficiency:
203
+
204
+ * to type on a full-size computer keyboard (104-key or equivalent)
205
+ * with basic computing concepts (files, storage, units of information)
206
+ * to read instructions and available technical data in relevant theatres and domains
207
+
208
+... and an ability:
209
+
210
+ * to readily ask questions
211
+ * to take notes and later retrieve useful information from them
212
+ * to recall important concepts and experiences
213
+ * to work on class-related content outside of class
214
+
215
+... and a willingness:
216
+
217
+ * to attempt solving new and unfamiliar problems
218
+ * to encounter new and unfamiliar concepts
219
+ * to indulge in new and unfamiliar activities
220
+ * to learn in new and unfamiliar ways
221
+ * to work on class-related content outside of class
222
+
223
+## AI use policy
224
+
225
+With the advent of commercially-viable and desktop-usable AI products
226
+(AI/AGI/chatGPT/LLMs/etc.), heretofore all regarded as "AI", questions of
227
+ethics and allowability of such tools in the learning process have become
228
+a rather hot topic. For the purposes of my classes:
229
+
230
+AI use is **not** recommended; you would be better off at this stage not
231
+even touching it.
232
+
233
+AI is a powerful tool for productivity, yet when used prior to
234
+solid understanding of the concepts and information being transacted,
235
+ultimately suffer and stagnate.
236
+
237
+You should aim to understand and know how to do things yourself, by
238
+hand/manually. This allows you to better vet AI output, not to mention
239
+better leverage various automation technologies.
240
+
241
+During this learning process, do as much of the task as you can by hand
242
+or mentally: this is how you gain understanding and comprehension. This
243
+allows you to better vet AI output.
244
+
245
+If you insist on using AI, you hereby acknowledge you assume
246
+responsibility for its inherent perils and hazards it can cause you and
247
+your progress/success in this class:
248
+
249
+ * accept that you are putting yourself at risk of deeply sabotaging your learning journey, subjecting yourself to stagnant thought and limited perspectives, as you insulate yourself from the rigors of doing the actual work
250
+
251
+ * accept that you will have to live with the awareness that the instructor and other suitably aware individuals in the course may lose some faith in your humanity
252
+
253
+ * accept that, if you pass off AI-generated work as your own, and your work is questioned, **if you are unable to competently demonstrate your understanding, you risk losing any and all credit for that deliverable**
254
+
255
+ * YOU are the student, YOU are the one here to do the work and learn.
256
+
257
+AI prose is increasingly sophisticated and convincing. Yet there is a
258
+difference between verbosity and competence. Learning to differentiate
259
+between them is a valuable life skill, and an important ability to have
260
+when dealing with AI output.
261
+
262
+## Grading Policy
263
+
264
+The grading policy is broken down into 4 areas, totalling 104 points
265
+(which will account for 100% of the grade):
266
+
267
+ * Notes/Journal/Writing (13pts)
268
+ * Projects (52pts)
269
+ * Participation (13pts)
270
+ * EoCE (26pts).
271
+
272
+Each area, as well as the overall grade, will be evaluated based on a sum
273
+of accumulated points on each projects out of a sum of total points on
274
+each project (as opposed to a sum of averages on each project). This
275
+totaling tends to favor those who consistently do work throughout the
276
+semester, and I want to reward that.
277
+
278
+In addition, for each third to quarter of the class (at instructor's
279
+discretion), there will be a possibility of a **knowledge assessment**,
280
+the results of which will serve as a credit multiplier to any points
281
+accrued (ranging from 0.00-1.00). That means: if you skip or bomb the
282
+knowledge assessment, all your accrued points for that segment of the
283
+course are multiplied by 0.00, and that is the resultant credit that is
284
+factored into your grade.
285
+
286
+While the term 'percent' may be used, it is more appropriate to consider
287
+it a 'percent-oh-four', as the word 'percent' refers to PER each CENT
288
+(100). We are dealing not with 100s, but 104s.
289
+
290
+Also: with the possible exception of the project component, any
291
+accumulated point excesses will be capped at the allocation per that
292
+grading unit.
293
+
294
+### Letter Grades
295
+
296
+Letter grades are pegged to the following numeric values:
297
+
298
+ * **A** (98.00+)
299
+ * **A-** (92.00-97.99)
300
+ * **B+** (86.00-91.99)
301
+ * **B** (80.00-85.99)
302
+ * **B-** (74.00-79.99)
303
+ * **C+** (68.00-73.99)
304
+ * **C** (62.00-67.99)
305
+ * **D** (56.00-61.99)
306
+ * **F** ( 0.00-55.99)
307
+
308
+Any calculated values in excess of two decimal places that may impact the
309
+result is at the sole evaluatory discretion of the instructor (for
310
+example, getting a 92.997; if you've been a pleasant, decent human being,
311
+I may do you a favor. Just sayin'). Application of any 'rounding' or
312
+other result processing is also at the sole discretion of the instructor.
313
+
314
+Bonus points, if given/available, are applied to a particular grade
315
+component (for example, a project bonus point will only pad the projects
316
+component of the grade), and then only up to a maximum of that grade
317
+component's total value (ie, one cannot use bonus points to exceed the 13
318
+possible overall points on the journal, or participation, for example).
319
+
320
+In addition, some further constraints pertaining to bonus point
321
+eligibility:
322
+
323
+Bonus projects that are due the same week as a for-credit project will
324
+only be considered if the for-credit project was actually turned in.
325
+
326
+Bonus projects that are due the same week as a for-credit project will
327
+only be considered if the for-credit project had a final evaluated result
328
+of greater than or equal to 52%.
329
+
330
+Bonus points from early submission of a for-credit project will only be
331
+applied if the for-credit project had a final evaluated result of greater
332
+than or equal to 52%.
333
+
334
+**NOTE**: bonus projects or other extra credit items are **not** eligible
335
+for early submission bonuses.
336
+
337
+### Course Notes
338
+
339
+Accomplishing the assigned tasks represents only part of the educational
340
+experience. A vital part of learning involve understanding and thinking.
341
+Writing is perhaps the best tool we have of capturing thought.
342
+
343
+In each course, as appropriate, there will be an on-going, weekly
344
+class-collaborative documentation, in the form of coursenotes or some
345
+related endeavour where the aim will be to assemble a coherent,
346
+informative document providing insight what went on in class / improved
347
+presentation of some class resource.
348
+
349
+While collaborative in nature, each individual will be evaluated based on
350
+number of commits and quantity of content contributed. While class or
351
+resource topics may vary from week to week, look to contribute at least
352
+256 words of informative, relevant content for consideration of full
353
+credit in this category.
354
+
355
+### Projects
356
+
357
+Projects constitute the portion of your grade involving activities you
358
+perform in the name of experiencing and demonstrating knowledge in this
359
+class- the means by which I will be assessing your understanding of the
360
+material through directed explorations of various topics. Such projects
361
+may be comprehensive to one another.
362
+
363
+In some cases, depending on the situations involved, a project may be
364
+conducive for group-based collaboration. This is not the default case,
365
+but is specified on a case-by-case basis. In such scenarios, all involved
366
+group members should be identified prior to starting on the project.
367
+Additionally, ALL group members in a collaborative situation must perform
368
+fairly equivalent work output into the completion of the project.
369
+Deficient members may experience reduced success.
370
+
371
+In accordance with the late policy, projects past their deadline will see
372
+a late penalty of 33% levied per day. This is to mitigate procrastination
373
+and encourage better time management, and also to ensure progress
374
+continues- once we hit the third day, a past due project is no longer
375
+worth any credit, so it behooves everyone to stay on top of assigned work
376
+and to complete it by its respective deadline. To clarify, if a project
377
+is due by the end of Wednesday, it would be 33% late Thursday (1 day
378
+late), 66% late Friday (2 days late), 100% late once it becomes Saturday
379
+(3+ days late).
380
+
381
+### Participation
382
+
383
+Maintaining an ever present effort in your journey with respect to being
384
+present for class gatherings and making such effort known is an important
385
+aspect to academic interactions.
386
+
387
+For class (no matter the setting), you are to show your effort through
388
+demonstrating regular interactive activity on lab46 and related class
389
+resources (discord, repository). Emphasis will be on communications
390
+taking place with the entire class (the class discord chat).
391
+
392
+Participating in class interactions is of significant importance.
393
+Participation is like the "I care" component of your grade. If you care
394
+enough to learn and help enhance the experience, you will have no trouble
395
+here. If you are disruptive or are not putting forth effort, however,
396
+then it will be duly reflected.
397
+
398
+Weekly participation may link directly to overall credit received on
399
+weekly projects! Do not be silent and in the shadows- ask questions and
400
+be interactive with the class!
401
+
402
+Each week, you have the ability to earn participation credit by
403
+performing various activities (for some amount of points per week, likely
404
+reflective of week and progression of semester). The particular **wcp#**
405
+projects will detail the specific attributes and points available (and
406
+needed) for a particular week.
407
+
408
+I would encourage you to vary your participation activities from week to
409
+week, especially as no one single activity will eventually be enough to
410
+cover the entirety of your weekly participation requirements.
411
+
412
+If you anticipate missing a class, please notify me in advance. While you
413
+may still lose applicable participation credit, the advance notice will
414
+be taken into positive consideration.
415
+
416
+### EoCE
417
+
418
+As the semester starts wrapping up, the End of Course Experience (EoCE)
419
+will be released.
420
+
421
+Intended as a sort of comprehensive project(s), its aim is to evaluate
422
+your knowledge gained from the class this semester. Unlike other classes
423
+which have a "Final Exam", the EoCE is meant to be an EXPERIENCE, and as
424
+such celebrated across the land. If you're new to my classes, you'll see
425
+those with prior experience jump for joy at the thought of an EoCE (the
426
+twitching / convulsing is merely ecstatic joy that is difficult for the
427
+corporeal body to manifest).
428
+
429
+## Submission Guidelines
430
+
431
+The following are some guidelines to keep in mind when preparing your
432
+work for submission. Not all may always be applicable, to each class, or
433
+even each submission.
434
+
435
+### Digital is best
436
+
437
+Technology is a wonderful thing. It facilitates many of the tasks we'd
438
+otherwise have to do manually by hand.
439
+
440
+The intent here is to make things easy on both you and me.
441
+
442
+So use the technology, and don't just it for the sake of using it-- use
443
+it to make the task at hand easier (ie use the technology available and
444
+sanctioned for the course).
445
+
446
+With that said, some additional aspects to keep in mind:
447
+
448
+ * e-mails were designed to be plain text; don't make them into web pages
449
+ * e-mails should always have an informative subject line
450
+ * if you've got non-text files to include in an e-mail, just attach them
451
+ * you've got many attachments? archive/compress them, attach the archive
452
+ * plain ASCII text (UTF-8) is preferable over any enriched text format
453
+
454
+If appropriate, I also will accept submissions via singing telegram,
455
+airplane banner, crop circles, creative dance, three part rock aria, etc.
456
+so long that I get to witness such creativity, and receive something
457
+which lets me look back on it later (photos, video, transcription on
458
+paper, etc.). Chances are such unique submissions will gain you favorable
459
+considerations.
460
+
461
+### Identification
462
+
463
+Where applicable, be sure to include the following information on any
464
+submission:
465
+
466
+ * Name,
467
+ * Course and Section,
468
+ * Due Date,
469
+ * Assignment # and description,
470
+ * Short abstract describing the purpose of your program / assignment.
471
+
472
+Presentation of this information in a clear and organized fashion will
473
+make your assignment all the easier to read. You may come up with your
474
+own format for the display of this information.
475
+
476
+Any e-mail submissions should have an appropriate subject line. Please
477
+use subjects on all e-mails. This is also very important.
478
+
479
+Leaving off the subject line is like sending a letter without putting a
480
+stamp on it-- it causes someone extra work. And that someone would be me.
481
+So don't do it. Please please please use informative subject lines!
482
+
483
+### Paraphrasing
484
+
485
+For any provided questions, keywords, etc.: identify each question or
486
+selection you are answering by listing or paraphrasing the original
487
+question.
488
+
489
+Do not just give me an answer.
490
+
491
+This is important. I mean it. You don't know how frustrating it is to get
492
+an assignment that just has the answers on it. It takes so much longer to
493
+evaluate.
494
+
495
+I reserve the right to deduct points if you don't do this.
496
+
497
+### Organization
498
+
499
+Keep your programs and assignments organized and easy to read.
500
+
501
+Use a uniform writing style. Messy or unorganized submissions will have
502
+points deducted. Think to yourself: does it look good? Would **you** want
503
+to read this? Take pride in your work.
504
+
505
+These assignments are not just for me to read and grade- you may wish to
506
+incorporate them into a portfolio for use in the future. Making an
507
+investment now could pay off later!
508
+
509
+### Timeliness
510
+
511
+Turn in submissions on time.
512
+
513
+Late submissions will be subject to an appropriate penalty. Circumstances
514
+vary, see the Late Policy for details.
515
+
516
+In many cases, where possible, I do accept resubmissions.
517
+
518
+### Errors
519
+
520
+If you encounter an error while performing some task (and the directions
521
+do not indicate you should be receiving an error), chances are you made a
522
+typo. Consult the class chat, ask someone, or contact me.
523
+
524
+**NOTE**: Submissions containing answers based on user error will be
525
+considered incorrect.
526
+
527
+### Backups
528
+
529
+Be sure to keep a backup copy of all assignments submitted in the event
530
+something is lost in transmission.
531
+
532
+**It is your responsibility to be able to send another copy of your
533
+submission should the original be lost.**
534
+
535
+### Common Sense
536
+
537
+Use your own judgment. The world today is increasingly filled with rules
538
+and policies dictating what you can and cannot do. I am not about to
539
+go and list all the specifics and restrictions regarding assignment
540
+submission.
541
+
542
+You are here to learn and to grow, and I want to allow you a certain
543
+amount of flexibility in that process. Spending all your time formatting
544
+an assignment to my specifications isn't my idea of learning. Incorporate
545
+these guidelines into your general style, if you miss the mark I'll let
546
+you know. But focus more on learning and understanding than worrying
547
+about dotting every 'i' or crossing every 't'. There's enough of that
548
+elsewhere in the world.
549
+
550
+## Late Policy
551
+
552
+Sometimes, even though we try our hardest to get everything in on time,
553
+the spurious Murphy's Law will make an appearance. Your dog ate your
554
+network cable, a burst of cosmic rays damaged your RAM precisely where
555
+your work was located... the list goes on.
556
+
557
+If something is not submitted by its respective due date (or, heaven
558
+forbid, the late window), and no advance attempt has been made to
559
+communicate with me, the assignment will be invalidated of any value.
560
+
561
+Bottom line.. if something is going to be late: let me know. It happens,
562
+just don't make a habit of it. Communication is key.
563
+
564
+Unless otherwise specified, past due assignments will lose 33% credit per
565
+day, rendering them worthless credit-wise after 3 days.
566
+
567
+Please do remember most projects are released **at least** one week in
568
+advance. If you wait until the finals days before the deadline, and
569
+struggle due to lack of time, that isn't grounds for reconsideration of
570
+any deadlines or late penalties. Take the whole time, work away slowly at
571
+it over time, and that will likely lead to far fewer deadline rushes.
572
+
573
+### Attendance
574
+
575
+Attendance plays an important part in one's educational journey each
576
+semester. Missing class deprives you of essential knowledge and hinders
577
+understanding towards your eventual mastering of a topic.
578
+
579
+Because we are all here to learn (and if learning isn't a priority, I
580
+highly suggest you think about making it such), and believe it or not-
581
+learning isn't just about one person, but the entire group. So it is
582
+important to be present in order to positively contribute to the learning
583
+experience.
584
+
585
+I also reserve the right to report absent, or highly tardy students in
586
+the course. In some cases, that could result in being dropped from the
587
+course. On the same token, I reserve the right NOT to report or do
588
+anything to such students. Sometimes failure can be the best teacher.
589
+
590
+### Behaviour
591
+
592
+Should your behaviour in the class be notably and consistently unruly,
593
+off-topic, or alarming, I have the ability to remove you from the class.
594
+
595
+I will likely issue a warning or report (although not necessarily to the
596
+individual- sometimes an administrative reporting is in order to have
597
+them resolve the issue) indicating a desire to have you cease the
598
+particular behaviour, but through continued transgressions, may actually
599
+elevate to forced removal from the class.
600
+
601
+The priority is to the well-being of the class community. I cannot have
602
+individuals derailing that for their own personal gain or purposes.
603
+
604
+## Collaboration
605
+
606
+Because this course is open resource (ie book, computer, note, etc.) I
607
+would like it generally to remain **closed person** and **closed
608
+intelligence** (the thinking done should be your own, not outsourcing it
609
+to some artificial entity). The reason for this is that the amount of
610
+resources available to you are vast, and the goal here is to discover and
611
+learn the material through individual initiative.
612
+
613
+It IS possible to help others without giving away answers.
614
+
615
+Respond to questions with a question, give pointers to where information
616
+might be located in legitimate sources, remind them of the usefulness of
617
+manuals, and the availability of search engines.
618
+
619
+Individuals are allowed and expected, to assist others through the class
620
+chat **WITHOUT GIVING EXPLICIT ANSWERS**, so long as it does not
621
+interfere with any other existing circumstance. If group work is required
622
+on anything, that attribute will be specifically stated.
623
+
624
+Explicit copying on or of any class work is forbidden. If any evidence or
625
+suggestion of non-authentic work is discovered (and I can tell you some
626
+stories) in your particular direction, you risk both my wrath as well as
627
+the possibility of disciplinary action by the school. Academic dishonesty
628
+and plagiarism may be prosecuted under the purview as laid out in the
629
+school's Academic Honesty Policy, as listed under the Code of Student
630
+Conduct: Academic Honesty section in the CCC Course Catalog.
631
+
632
+So just play it safe and make sure your work is your own, and borrowed
633
+information is appropriately cited or referenced.
634
+
635
+## Pet Peeves
636
+
637
+Everyone has their buttons that can be pushed the wrong way. Here are a
638
+few of mine, that I would prefer not encountering:
639
+
640
+The eager, often surface-only desire to destroy things (especially with
641
+no desire to understand the why behind it all).
642
+
643
+The notion that 'old', 'unpopular', 'uncomfortable', or 'different',
644
+especially in terms of technology or experiences, is somehow bad (there
645
+are plenty of useful things to learn, for the patterns will often
646
+remanifest in future technologies down the road)
647
+
648
+Apologizing: "sorry I had to ask a question", "sorry I misunderstood",
649
+"sorry I failed to do that action"; I WANT people to ask questions.
650
+Questions are based on not fully understanding something. And if your
651
+actions come up short, apologies only serve to highlight the deficiency.
652
+The best solution: to fix it and not keep repeating the same mistake.
653
+There may be things worthy of apologizing for. For most incidents of
654
+apology I encounter related to classes, such is irrelevant. If you feel
655
+you are in the wrong for asking a question, you're doing this whole
656
+learning thing wrong.
657
+
658
+Overhelping "the weakest link"; a somewhat modern trend, where I see
659
+woefully unprepared/unready individuals overly assisted through the
660
+course (where the intent is to save them from failing). This is but a
661
+short-term perspective, contributing to their long-term failure.
662
+
663
+Opting out of things that seem overwhelming, yet somehow expecting things
664
+will get better as time goes on.
665
+
666
+The desire to impress me-- impressing comes by being impressive, not
667
+selling an act to me (in short, don't try to impress me, just do your
668
+best work, and have me be impressed by how impressive it naturally is).
669
+
670
+Avoiding the developing/strengthening your own memory and recall, and
671
+relying on others (including the instructor) to be your memory.
672
+
673
+The obsession over and recitation of hardware specs-- this has nothing to
674
+do with computing, yet many mistakenly believe it to be such (a small
675
+aspect of IT and an occasionally fun hobby? sure.)
676
+
677
+The compensation for lack of knowledge by clinging tightly to (perceived)
678
+known knowledge-- I expect everyone not to know things; knowing we don't
679
+know enables us to learn.
680
+
681
+The avoiding of questions out of fear they may not be worthy of asking--
682
+how else can I know where you are if you don't ask?
683
+
684
+The asking for the answer as if it were a question, to avoid thinking or
685
+doing the work yourself. Questions are the a result of your thinking, not
686
+"I don't know, so tell me?", or the worst (literally): "What do I need to
687
+do in order to get an A/full credit?"
688
+
689
+The absolute belief that if I say something then it is the truth (same
690
+for the inverse, converse, contrapositive, etc.)-- being open-minded and
691
+questioning is one of the greatest abilities we can have. Society trains
692
+you to be compliant with external authority at the expense of your own;
693
+to be educated and intelligent, in part, means you have cultivated your
694
+own self-authority so you can make your own decisions.
695
+
696
+The impression that if something is said frequently or confidently
697
+enough, then it must be true, and that makes someone an "expert" who
698
+should be believed, followed, and unquestioned.
699
+
700
+The tendency to brute force through something instead of trying to think
701
+or learn new approaches-- memorizing and regurgitation will often not
702
+work out in your favour here (or greatly annoy me).
703
+
704
+Being tangibly obsessed with knowing your exact grade, while being
705
+uninformed about the process of calculating it yourself from available
706
+information.
707
+
708
+Complaining upstream about me/my class without actually bringing issues
709
+to me first to address.
710
+
711
+Destroying context in asynchronous communications (ie deleting Discord
712
+messages after making a post, asking a question, and getting some sort of
713
+resolution): this makes it entirely unhelpful for others to also benefit,
714
+and leaves gaping holes in the existing conversation. Please do not
715
+delete your Discord messages after getting a response.
716
+
717
+Using AI, and failing to distinguish between your own skills and
718
+knowledge, and what AI is able to produce, treating them as one and the
719
+same. As I've said elsewhere, at this level, you should be avoiding
720
+flagrant AI use, as it can become a fatal crutch, stagnating your
721
+abilities.
722
+
723
+## Rules for Success
724
+
725
+For maximum success in the class, please adhere to the following rules:
726
+
727
+ * start on activities early
728
+ * observe/study, read/intuit, and comprehend the subject matter
729
+ * play/tinker/experiment with the subject matter (external to projects)
730
+ * ask well-informed and copious questions
731
+
732
+Struggle and problems in the course almost immediately arise when one
733
+fails to follow one or more of these guidelines.
734
+
735
+## Documentation
736
+
737
+The following criteria should be kept in mind when contributing content
738
+to collaborative documentation, the course notes, and any pertinent
739
+class-related communications:
740
+
741
+ * Never use a form of a word in its own definition
742
+ * Use external hyperlinks only as citations
743
+ * Content first, then formatting
744
+ * There is only one empire- ours
745
+ * Contribute only original content
746
+ * Paraphrase and cite existing information
747
+ * Do NOT blatantly copy existing information
748
+ * A healthy resource is an active resource
749
+ * Do not focus on just your contributions
750
+ * Mistakes are opportunities for future contributions
751
+
752
+## Topics
753
+
754
+The following is a list of the major topics being covered in this course:
755
+
756
+ * von Neumann vs. Harvard architecture
757
+ * Fetch-Execute Cycle
758
+ * Binary and Hexadecimal Number Representation
759
+ * Processor & Memory Organization
760
+ * Registers (General Purpose/Integer, Floating Pointer, Accumulator, Data)
761
+ * Registers (Stack Pointer, Program Counter, Flag/Status)
762
+ * Registers (Index/Pointer)
763
+ * Instruction Sets (CISC, RISC)
764
+ * Boolean Arithmetic Operations (Addition, Subtraction, Multiplication, Division)
765
+ * Logic Operations (AND, OR, XOR)
766
+ * Negated Logic Operations (NOT, NAND, NOR, XNOR)
767
+ * Data Instructions (Data Movement, Address Movement, Data Conversion, Bit Manipulation)
768
+ * Control and Data Flow
769
+ * Subroutines (Calling, Return Address)
770
+ * Storage
771
+ * Machine Word
772
+ * Stack Operations
773
+ * Data Representation (Big Endian, Little Endian, Size, Integer, Floating Point, ASCII)
774
+ * Data Representation (Sign Representation, One's Complement, Two's Complement)
775
+ * Linking, Object and Machine Code
776
+ * I/O
777
+ * Interrupts
778
+ * Address Bus
779
+ * Data Bus
780
+
781
+## Student Understanding and Agreement of Syllabus Terms
782
+
783
+By reading through this document, participating in the class chat,
784
+utilizing class resources, and performing the various class activities
785
+and projects, you understand and consent:
786
+
787
+ * to the rules, policies governing your status as a student at SUNY CCC.
788
+ * to the structure, policies, and nature of the course as laid out here.
789
+ * to having an adequate understanding of course prerequisite knowledge.
790
+ * to maintain a respectful, inquisitive, well-behaved, and learning-oriented focus as you participate and go through the course.
791
+ * to practice (and further cultivate, as needed) the fundamental aspects of a student taking this course, which includes being able and willing:
792
+ * to read, comprehend and work with the material and information inherent to the course.
793
+ * to write and express your thoughts in coherent, descriptive sentences.
794
+ * willing to analyze, problem solve, debug, troubleshoot, ideate, creatively, and logically/rationally think.
795
+ * willing to compute and transact in number concepts (literal, symbolic or abstract) and any related units in their various processes.
796
+ * to, upon facing uncertainty, confusion, or lack of understanding, will ask copious, well-informed, and well-intending questions to clarify your state of understanding.
797
+ * if cause for issue rises, you will bring it to my attention so that it may be best addressed as locally and pertinently as possible to the course and its educational environment.
798
+ * participate in the course with a focus on curiosity, discovering, exploring, learning, and understanding.
799
+ * starting early on deliverables so that ample time is available for discovering, exploring, learning, and asking any questions as needed.
800
+ * that, as a student, a genuine learning experience necessarily involves some level of unfamiliarity, which may invoke discomfort.
801
+ * that your learning and the nature of the course is an inherently asynchronous thing. It is your responsibility to manage your time, so that you can have adequate time to ask questions and accomplish your own tasks.
haas/fall2026/cprog.md
... ...
@@ -0,0 +1,797 @@
1
+# fall2026/cprog
2
+
3
+# CSCS1320 C/C++ Programming
4
+
5
+## Syllabus / Course Homepage
6
+
7
+| Instructor: | Matthew Haas (haas@corning-cc.edu) |
8
+| Office: | `CHM123` |
9
+| Office Hours: | `T 10:30a-11:35a`, `W 02:00p-02:55p`, `R 10:30a-01:30p` |
10
+| Class Meeting: | CHM123 W 03:00p-04:50p |
11
+| Class DESIG: | `cprog` |
12
+| Class Chat: | `#cprog` on discord |
13
+| Public Directory: | `/var/public/fall2026/CPROG` |
14
+| CRN: | `14639` |
15
+| '`W`' Drop Date: | November 1, 2026 |
16
+| ----------------- | -------------------------------------------------------------- |
17
+| DISCORD invite: | [https://discord.gg/8eu3nKjUXX](https://discord.gg/8eu3nKjUXX) |
18
+| Projects page: | [https://lab46.g7n.org/haas/fall2026/cprog/projects.md](https://lab46.g7n.org/haas/fall2026/cprog/projects.md) |
19
+| CCC Syllabus Statements: | [https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/](https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/) |
20
+
21
+## Table of Contents
22
+
23
+ * [Course Description](#course-description)
24
+ * [Course Objectives](#course-objectives)
25
+ * [Assumptions](#assumptions)
26
+ * [Course Materials](#course-materials)
27
+ * [Technology Policy](#technology-policy)
28
+ * [AI use policy](#ai-use-policy)
29
+ * [Grading Policy](#grading-policy)
30
+ * [Letter Grades](#letter-grades)
31
+ * [Course Notes](#course-notes)
32
+ * [Projects](#projects)
33
+ * [Participation](#participation)
34
+ * [EoCE](#eoce)
35
+ * [Submission Guidelines](#submission-guidelines)
36
+ * [Digital is best](#digital-is-best)
37
+ * [Identification](#identification)
38
+ * [Paraphrasing](#paraphrasing)
39
+ * [Organization](#organization)
40
+ * [Timeliness](#timeliness)
41
+ * [Errors](#errors)
42
+ * [Backups](#backups)
43
+ * [Common Sense](#common-sense)
44
+ * [Late Policy](#late-policy)
45
+ * [Attendance](#attendance)
46
+ * [Behaviour](#behaviour)
47
+ * [Collaboration](#collaboration)
48
+ * [Pet Peeves](#pet-peeves)
49
+ * [Rules for Success](#rules-for-success)
50
+ * [Documentation](#documentation)
51
+ * [Topics](#topics)
52
+ * [Student Understanding and Agreement of Syllabus Terms](#student-understanding-and-agreement-of-syllabus-terms)
53
+
54
+## Course Description
55
+
56
+C/C++ Programming for systems, commercial, and scientific applications.
57
+Topics include: procedural vs. object-oriented programming, data types,
58
+operators, standard control structures, functions, pointers, arrays,
59
+structures, classes, objects, encapsulation, inheritance, polymorphism,
60
+templates and libraries.
61
+
62
+(4 cr. hrs.) (Fall, Spring) Prerequisite: CSCS 1240 or Instructor Consent
63
+Lecture/laboratory.
64
+
65
+## Course Objectives
66
+Upon completion of this course, students will be able to:
67
+
68
+ * Implement functional programs using basic syntax, including variables,
69
+loops, and conditional logic, that satisfy automated test requirements.
70
+
71
+ * Define the relationship between a variable’s value and its memory
72
+address using basic pointer syntax (the address-of and dereference
73
+operators).
74
+
75
+ * Recognize how data is represented and stored in memory, including the
76
+size and limits of standard primitive types.
77
+
78
+ * Label data structures as either scalar (single-value) or composite
79
+(multi-value) based on their declaration.
80
+
81
+ * Distinguish between collections of the same data type (arrays) and
82
+collections of differing data types (structures) within a code snippet.
83
+
84
+ * Construct modular code by defining functions and utilizing different
85
+methods of passing data into them.
86
+
87
+ * Select the most appropriate control structure or data type to solve a
88
+specific, predefined logical problem.
89
+
90
+ * Utilize built-in language libraries to perform standard input/output
91
+and common computational tasks.
92
+
93
+## Assumptions
94
+
95
+There are many great opportunities for realization and insight ahead, but
96
+there are also many obstacles standing in the way of you staying on a
97
+path of success. I find that uncommunicated assumptions can play a role
98
+in hampering progress, so please ensure you are suitably read up and
99
+aware of my assumptions coming into the course, along with my assumptions
100
+of your assumptions, playing the role of a studious student seeking
101
+enlightenment.
102
+
103
+Let's also make sure we are on the same playing field by establishing
104
+some definitions:
105
+
106
+**student**: A student is primarily a person enrolled in a school
107
+or other educational institution and who is under learning with
108
+goals of acquiring knowledge, developing professions and facilitating
109
+employment in a particular field. In the broader sense, **a student
110
+is anyone who applies themselves to the intensive intellectual
111
+engagement with some matter necessary to master it** as part of
112
+some practical affair in which such mastery is basic or decisive.
113
+(https://en.wikipedia.org/wiki/Student)
114
+
115
+While a decent definition, I would argue that it falls short by not also
116
+indicating certain things that should be stated, so herein are some
117
+further assumptions:
118
+
119
+A student, entering into the educational environment of a particular
120
+class or degree of study (especially at the undergraduate level where we
121
+reside), **DOES NOT** need to have any prior experience with the subject
122
+matter. That is: if you are taking a course on introductory programming
123
+in a certain language, the student is not expected to know how to program
124
+in that specific language (and depending on prerequisites to the course,
125
+may not even need to know anything about programming at the introductory
126
+level).
127
+
128
+To learn something means you don't know it. Not knowing something,
129
+there's a state of not understanding, and not being aware of what a
130
+particular thing or concept is. A student taking a class to learn
131
+something necessarily needs to be in active pursuit of gaining an
132
+understanding, but is not expecting to come in knowing anything. Learning
133
+is often a mistake-ridden process of bumping around in progressively less
134
+conceptually dark spaces as patterns are sussed out and intuitive
135
+connections are established. We learn best from our mistakes, so a
136
+student that does not make mistakes, or that avoids opportunities to make
137
+mistakes, isn't being a good student.
138
+
139
+Learning is build upon an ever-growing foundation (your life experience
140
+and knowledge, some derivation of society's and civilization's collective
141
+body of experience and knowledge), and to be eligible to take a college
142
+class, yes, SOME prerequisite knowledge is assumed, namely:
143
+
144
+ * you are functionally literate in English
145
+ * you know how to and can/will read (input/consume)
146
+ * you know how to and can/will write (output/create/produce)
147
+ * you know how to and can/will do math/computations
148
+ * you know how to and can/will think
149
+ * you know how to and can/will ask questions
150
+
151
+A student's (or learner's) absolute BEST tool is the question,
152
+specifically the regular asking of them. You **NEED** to be regularly
153
+engaging yourself and the class with questions, and responses to
154
+questions. No two people perceive something the same exact way.
155
+One explanation is not ideal for every individual. If an available
156
+explanation falls short with respect to being clarifying or promoting
157
+understanding, you should ask a question. If an available explanation is
158
+clarifying, but then upon further thought creates confusion or makes you
159
+wonder about other, potentially related things: YOU SHOULD ALSO ASK a
160
+question.
161
+
162
+The benefit of authentic education is that it transitions one from a
163
+state of predominantly not knowing what they don't know, to a state where
164
+while they may know that they know more than they did before, also then
165
+cultivates an important perception of then KNOWING that they don't know
166
+even more things.
167
+
168
+Education isn't about certainty or comfort in attaining a set of facts
169
+and calling it quits: It is about coming to terms with the endless
170
+uncertainty of possible things that can be pursued or known. We can never
171
+know everything, but we CAN know that we can never know everything. We
172
+instead strive for a functioning subset where we learn enough to give us
173
+a foundation in the present, and consistently keep learning (although
174
+hopefully less so exclusively in a classroom as time goes by, but
175
+instead by the individual having gained enough experience to become a
176
+self-learner) to keep up with the demands of tomorrow.
177
+
178
+So, as a student learner embarking upon and taking this class, know that
179
+I don't assume you know anything about the course you are taking, and
180
+that you will be reading and thinking and doing and computing and asking
181
+questions regularly so that by the conclusion of the course, you will
182
+have some greater idea of the nature of what was encountered in the
183
+class.
184
+
185
+If you don't want to ask questions, for whatever reason, nor want to
186
+bother with expanding your horizons, in learning new and different
187
+concepts and ways of doing things (ie you want to remain small and
188
+stagnant), then I would urge you to reconsider taking this course: it is
189
+NOT a daycare to keep your mind and hands pacified. It is an educational
190
+environment where you will be tasked to grow and improve.
191
+
192
+## Course Materials
193
+
194
+ * No materials needed (resources available online)
195
+
196
+## Technology Policy
197
+
198
+The baseline qualifications for taking this course include you having a proficiency:
199
+
200
+ * to type on a full-size computer keyboard (104-key or equivalent)
201
+ * with basic computing concepts (files, storage, units of information)
202
+ * to read instructions and available technical data in relevant theatres and domains
203
+
204
+... and an ability:
205
+
206
+ * to readily ask questions
207
+ * to take notes and later retrieve useful information from them
208
+ * to recall important concepts and experiences
209
+ * to work on class-related content outside of class
210
+
211
+... and a willingness:
212
+
213
+ * to attempt solving new and unfamiliar problems
214
+ * to encounter new and unfamiliar concepts
215
+ * to indulge in new and unfamiliar activities
216
+ * to learn in new and unfamiliar ways
217
+ * to work on class-related content outside of class
218
+
219
+## AI use policy
220
+
221
+With the advent of commercially-viable and desktop-usable AI products
222
+(AI/AGI/chatGPT/LLMs/etc.), heretofore all regarded as "AI", questions of
223
+ethics and allowability of such tools in the learning process have become
224
+a rather hot topic. For the purposes of my classes:
225
+
226
+AI use is **not** recommended; you would be better off at this stage not
227
+even touching it.
228
+
229
+AI is a powerful tool for productivity, yet when used prior to
230
+solid understanding of the concepts and information being transacted,
231
+ultimately suffer and stagnate.
232
+
233
+You should aim to understand and know how to do things yourself, by
234
+hand/manually. This allows you to better vet AI output, not to mention
235
+better leverage various automation technologies.
236
+
237
+During this learning process, do as much of the task as you can by hand
238
+or mentally: this is how you gain understanding and comprehension. This
239
+allows you to better vet AI output.
240
+
241
+If you insist on using AI, you hereby acknowledge you assume
242
+responsibility for its inherent perils and hazards it can cause you and
243
+your progress/success in this class:
244
+
245
+ * accept that you are putting yourself at risk of deeply sabotaging your learning journey, subjecting yourself to stagnant thought and limited perspectives, as you insulate yourself from the rigors of doing the actual work
246
+
247
+ * accept that you will have to live with the awareness that the instructor and other suitably aware individuals in the course may lose some faith in your humanity
248
+
249
+ * accept that, if you pass off AI-generated work as your own, and your work is questioned, **if you are unable to competently demonstrate your understanding, you risk losing any and all credit for that deliverable**
250
+
251
+ * YOU are the student, YOU are the one here to do the work and learn.
252
+
253
+AI prose is increasingly sophisticated and convincing. Yet there is a
254
+difference between verbosity and competence. Learning to differentiate
255
+between them is a valuable life skill, and an important ability to have
256
+when dealing with AI output.
257
+
258
+## Grading Policy
259
+
260
+The grading policy is broken down into 4 areas, totalling 104 points
261
+(which will account for 100% of the grade):
262
+
263
+ * Notes/Journal/Writing (13pts)
264
+ * Projects (52pts)
265
+ * Participation (13pts)
266
+ * EoCE (26pts).
267
+
268
+Each area, as well as the overall grade, will be evaluated based on a sum
269
+of accumulated points on each projects out of a sum of total points on
270
+each project (as opposed to a sum of averages on each project). This
271
+totaling tends to favor those who consistently do work throughout the
272
+semester, and I want to reward that.
273
+
274
+In addition, for each third to quarter of the class (at instructor's
275
+discretion), there will be a possibility of a **knowledge assessment**,
276
+the results of which will serve as a credit multiplier to any points
277
+accrued (ranging from 0.00-1.00). That means: if you skip or bomb the
278
+knowledge assessment, all your accrued points for that segment of the
279
+course are multiplied by 0.00, and that is the resultant credit that is
280
+factored into your grade.
281
+
282
+While the term 'percent' may be used, it is more appropriate to consider
283
+it a 'percent-oh-four', as the word 'percent' refers to PER each CENT
284
+(100). We are dealing not with 100s, but 104s.
285
+
286
+Also: with the possible exception of the project component, any
287
+accumulated point excesses will be capped at the allocation per that
288
+grading unit.
289
+
290
+### Letter Grades
291
+
292
+Letter grades are pegged to the following numeric values:
293
+
294
+ * **A** (98.00+)
295
+ * **A-** (92.00-97.99)
296
+ * **B+** (86.00-91.99)
297
+ * **B** (80.00-85.99)
298
+ * **B-** (74.00-79.99)
299
+ * **C+** (68.00-73.99)
300
+ * **C** (62.00-67.99)
301
+ * **D** (56.00-61.99)
302
+ * **F** ( 0.00-55.99)
303
+
304
+Any calculated values in excess of two decimal places that may impact the
305
+result is at the sole evaluatory discretion of the instructor (for
306
+example, getting a 92.997; if you've been a pleasant, decent human being,
307
+I may do you a favor. Just sayin'). Application of any 'rounding' or
308
+other result processing is also at the sole discretion of the instructor.
309
+
310
+Bonus points, if given/available, are applied to a particular grade
311
+component (for example, a project bonus point will only pad the projects
312
+component of the grade), and then only up to a maximum of that grade
313
+component's total value (ie, one cannot use bonus points to exceed the 13
314
+possible overall points on the journal, or participation, for example).
315
+
316
+In addition, some further constraints pertaining to bonus point
317
+eligibility:
318
+
319
+Bonus projects that are due the same week as a for-credit project will
320
+only be considered if the for-credit project was actually turned in.
321
+
322
+Bonus projects that are due the same week as a for-credit project will
323
+only be considered if the for-credit project had a final evaluated result
324
+of greater than or equal to 52%.
325
+
326
+Bonus points from early submission of a for-credit project will only be
327
+applied if the for-credit project had a final evaluated result of greater
328
+than or equal to 52%.
329
+
330
+**NOTE**: bonus projects or other extra credit items are **not** eligible
331
+for early submission bonuses.
332
+
333
+### Course Notes
334
+
335
+Accomplishing the assigned tasks represents only part of the educational
336
+experience. A vital part of learning involve understanding and thinking.
337
+Writing is perhaps the best tool we have of capturing thought.
338
+
339
+In each course, as appropriate, there will be an on-going, weekly
340
+class-collaborative documentation, in the form of coursenotes or some
341
+related endeavour where the aim will be to assemble a coherent,
342
+informative document providing insight what went on in class / improved
343
+presentation of some class resource.
344
+
345
+While collaborative in nature, each individual will be evaluated based on
346
+number of commits and quantity of content contributed. While class or
347
+resource topics may vary from week to week, look to contribute at least
348
+256 words of informative, relevant content for consideration of full
349
+credit in this category.
350
+
351
+### Projects
352
+
353
+Projects constitute the portion of your grade involving activities you
354
+perform in the name of experiencing and demonstrating knowledge in this
355
+class- the means by which I will be assessing your understanding of the
356
+material through directed explorations of various topics. Such projects
357
+may be comprehensive to one another.
358
+
359
+In some cases, depending on the situations involved, a project may be
360
+conducive for group-based collaboration. This is not the default case,
361
+but is specified on a case-by-case basis. In such scenarios, all involved
362
+group members should be identified prior to starting on the project.
363
+Additionally, ALL group members in a collaborative situation must perform
364
+fairly equivalent work output into the completion of the project.
365
+Deficient members may experience reduced success.
366
+
367
+In accordance with the late policy, projects past their deadline will see
368
+a late penalty of 33% levied per day. This is to mitigate procrastination
369
+and encourage better time management, and also to ensure progress
370
+continues- once we hit the third day, a past due project is no longer
371
+worth any credit, so it behooves everyone to stay on top of assigned work
372
+and to complete it by its respective deadline. To clarify, if a project
373
+is due by the end of Wednesday, it would be 33% late Thursday (1 day
374
+late), 66% late Friday (2 days late), 100% late once it becomes Saturday
375
+(3+ days late).
376
+
377
+### Participation
378
+
379
+Maintaining an ever present effort in your journey with respect to being
380
+present for class gatherings and making such effort known is an important
381
+aspect to academic interactions.
382
+
383
+For class (no matter the setting), you are to show your effort through
384
+demonstrating regular interactive activity on lab46 and related class
385
+resources (discord, repository). Emphasis will be on communications
386
+taking place with the entire class (the class discord chat).
387
+
388
+Participating in class interactions is of significant importance.
389
+Participation is like the "I care" component of your grade. If you care
390
+enough to learn and help enhance the experience, you will have no trouble
391
+here. If you are disruptive or are not putting forth effort, however,
392
+then it will be duly reflected.
393
+
394
+Weekly participation may link directly to overall credit received on
395
+weekly projects! Do not be silent and in the shadows- ask questions and
396
+be interactive with the class!
397
+
398
+Each week, you have the ability to earn participation credit by
399
+performing various activities (for some amount of points per week, likely
400
+reflective of week and progression of semester). The particular **wcp#**
401
+projects will detail the specific attributes and points available (and
402
+needed) for a particular week.
403
+
404
+I would encourage you to vary your participation activities from week to
405
+week, especially as no one single activity will eventually be enough to
406
+cover the entirety of your weekly participation requirements.
407
+
408
+If you anticipate missing a class, please notify me in advance. While you
409
+may still lose applicable participation credit, the advance notice will
410
+be taken into positive consideration.
411
+
412
+### EoCE
413
+
414
+As the semester starts wrapping up, the End of Course Experience (EoCE)
415
+will be released.
416
+
417
+Intended as a sort of comprehensive project(s), its aim is to evaluate
418
+your knowledge gained from the class this semester. Unlike other classes
419
+which have a "Final Exam", the EoCE is meant to be an EXPERIENCE, and as
420
+such celebrated across the land. If you're new to my classes, you'll see
421
+those with prior experience jump for joy at the thought of an EoCE (the
422
+twitching / convulsing is merely ecstatic joy that is difficult for the
423
+corporeal body to manifest).
424
+
425
+## Submission Guidelines
426
+
427
+The following are some guidelines to keep in mind when preparing your
428
+work for submission. Not all may always be applicable, to each class, or
429
+even each submission.
430
+
431
+### Digital is best
432
+
433
+Technology is a wonderful thing. It facilitates many of the tasks we'd
434
+otherwise have to do manually by hand.
435
+
436
+The intent here is to make things easy on both you and me.
437
+
438
+So use the technology, and don't just it for the sake of using it-- use
439
+it to make the task at hand easier (ie use the technology available and
440
+sanctioned for the course).
441
+
442
+With that said, some additional aspects to keep in mind:
443
+
444
+ * e-mails were designed to be plain text; don't make them into web pages
445
+ * e-mails should always have an informative subject line
446
+ * if you've got non-text files to include in an e-mail, just attach them
447
+ * you've got many attachments? archive/compress them, attach the archive
448
+ * plain ASCII text (UTF-8) is preferable over any enriched text format
449
+
450
+If appropriate, I also will accept submissions via singing telegram,
451
+airplane banner, crop circles, creative dance, three part rock aria, etc.
452
+so long that I get to witness such creativity, and receive something
453
+which lets me look back on it later (photos, video, transcription on
454
+paper, etc.). Chances are such unique submissions will gain you favorable
455
+considerations.
456
+
457
+### Identification
458
+
459
+Where applicable, be sure to include the following information on any
460
+submission:
461
+
462
+ * Name,
463
+ * Course and Section,
464
+ * Due Date,
465
+ * Assignment # and description,
466
+ * Short abstract describing the purpose of your program / assignment.
467
+
468
+Presentation of this information in a clear and organized fashion will
469
+make your assignment all the easier to read. You may come up with your
470
+own format for the display of this information.
471
+
472
+Any e-mail submissions should have an appropriate subject line. Please
473
+use subjects on all e-mails. This is also very important.
474
+
475
+Leaving off the subject line is like sending a letter without putting a
476
+stamp on it-- it causes someone extra work. And that someone would be me.
477
+So don't do it. Please please please use informative subject lines!
478
+
479
+### Paraphrasing
480
+
481
+For any provided questions, keywords, etc.: identify each question or
482
+selection you are answering by listing or paraphrasing the original
483
+question.
484
+
485
+Do not just give me an answer.
486
+
487
+This is important. I mean it. You don't know how frustrating it is to get
488
+an assignment that just has the answers on it. It takes so much longer to
489
+evaluate.
490
+
491
+I reserve the right to deduct points if you don't do this.
492
+
493
+### Organization
494
+
495
+Keep your programs and assignments organized and easy to read.
496
+
497
+Use a uniform writing style. Messy or unorganized submissions will have
498
+points deducted. Think to yourself: does it look good? Would **you** want
499
+to read this? Take pride in your work.
500
+
501
+These assignments are not just for me to read and grade- you may wish to
502
+incorporate them into a portfolio for use in the future. Making an
503
+investment now could pay off later!
504
+
505
+### Timeliness
506
+
507
+Turn in submissions on time.
508
+
509
+Late submissions will be subject to an appropriate penalty. Circumstances
510
+vary, see the Late Policy for details.
511
+
512
+In many cases, where possible, I do accept resubmissions.
513
+
514
+### Errors
515
+
516
+If you encounter an error while performing some task (and the directions
517
+do not indicate you should be receiving an error), chances are you made a
518
+typo. Consult the class chat, ask someone, or contact me.
519
+
520
+**NOTE**: Submissions containing answers based on user error will be
521
+considered incorrect.
522
+
523
+### Backups
524
+
525
+Be sure to keep a backup copy of all assignments submitted in the event
526
+something is lost in transmission.
527
+
528
+**It is your responsibility to be able to send another copy of your
529
+submission should the original be lost.**
530
+
531
+### Common Sense
532
+
533
+Use your own judgment. The world today is increasingly filled with rules
534
+and policies dictating what you can and cannot do. I am not about to
535
+go and list all the specifics and restrictions regarding assignment
536
+submission.
537
+
538
+You are here to learn and to grow, and I want to allow you a certain
539
+amount of flexibility in that process. Spending all your time formatting
540
+an assignment to my specifications isn't my idea of learning. Incorporate
541
+these guidelines into your general style, if you miss the mark I'll let
542
+you know. But focus more on learning and understanding than worrying
543
+about dotting every 'i' or crossing every 't'. There's enough of that
544
+elsewhere in the world.
545
+
546
+## Late Policy
547
+
548
+Sometimes, even though we try our hardest to get everything in on time,
549
+the spurious Murphy's Law will make an appearance. Your dog ate your
550
+network cable, a burst of cosmic rays damaged your RAM precisely where
551
+your work was located... the list goes on.
552
+
553
+If something is not submitted by its respective due date (or, heaven
554
+forbid, the late window), and no advance attempt has been made to
555
+communicate with me, the assignment will be invalidated of any value.
556
+
557
+Bottom line.. if something is going to be late: let me know. It happens,
558
+just don't make a habit of it. Communication is key.
559
+
560
+Unless otherwise specified, past due assignments will lose 33% credit per
561
+day, rendering them worthless credit-wise after 3 days.
562
+
563
+Please do remember most projects are released **at least** one week in
564
+advance. If you wait until the finals days before the deadline, and
565
+struggle due to lack of time, that isn't grounds for reconsideration of
566
+any deadlines or late penalties. Take the whole time, work away slowly at
567
+it over time, and that will likely lead to far fewer deadline rushes.
568
+
569
+### Attendance
570
+
571
+Attendance plays an important part in one's educational journey each
572
+semester. Missing class deprives you of essential knowledge and hinders
573
+understanding towards your eventual mastering of a topic.
574
+
575
+Because we are all here to learn (and if learning isn't a priority, I
576
+highly suggest you think about making it such), and believe it or not-
577
+learning isn't just about one person, but the entire group. So it is
578
+important to be present in order to positively contribute to the learning
579
+experience.
580
+
581
+I also reserve the right to report absent, or highly tardy students in
582
+the course. In some cases, that could result in being dropped from the
583
+course. On the same token, I reserve the right NOT to report or do
584
+anything to such students. Sometimes failure can be the best teacher.
585
+
586
+### Behaviour
587
+
588
+Should your behaviour in the class be notably and consistently unruly,
589
+off-topic, or alarming, I have the ability to remove you from the class.
590
+
591
+I will likely issue a warning or report (although not necessarily to the
592
+individual- sometimes an administrative reporting is in order to have
593
+them resolve the issue) indicating a desire to have you cease the
594
+particular behaviour, but through continued transgressions, may actually
595
+elevate to forced removal from the class.
596
+
597
+The priority is to the well-being of the class community. I cannot have
598
+individuals derailing that for their own personal gain or purposes.
599
+
600
+## Collaboration
601
+
602
+Because this course is open resource (ie book, computer, note, etc.) I
603
+would like it generally to remain **closed person** and **closed
604
+intelligence** (the thinking done should be your own, not outsourcing it
605
+to some artificial entity). The reason for this is that the amount of
606
+resources available to you are vast, and the goal here is to discover and
607
+learn the material through individual initiative.
608
+
609
+It IS possible to help others without giving away answers.
610
+
611
+Respond to questions with a question, give pointers to where information
612
+might be located in legitimate sources, remind them of the usefulness of
613
+manuals, and the availability of search engines.
614
+
615
+Individuals are allowed and expected, to assist others through the class
616
+chat **WITHOUT GIVING EXPLICIT ANSWERS**, so long as it does not
617
+interfere with any other existing circumstance. If group work is required
618
+on anything, that attribute will be specifically stated.
619
+
620
+Explicit copying on or of any class work is forbidden. If any evidence or
621
+suggestion of non-authentic work is discovered (and I can tell you some
622
+stories) in your particular direction, you risk both my wrath as well as
623
+the possibility of disciplinary action by the school. Academic dishonesty
624
+and plagiarism may be prosecuted under the purview as laid out in the
625
+school's Academic Honesty Policy, as listed under the Code of Student
626
+Conduct: Academic Honesty section in the CCC Course Catalog.
627
+
628
+So just play it safe and make sure your work is your own, and borrowed
629
+information is appropriately cited or referenced.
630
+
631
+## Pet Peeves
632
+
633
+Everyone has their buttons that can be pushed the wrong way. Here are a
634
+few of mine, that I would prefer not encountering:
635
+
636
+The eager, often surface-only desire to destroy things (especially with
637
+no desire to understand the why behind it all).
638
+
639
+The notion that 'old', 'unpopular', 'uncomfortable', or 'different',
640
+especially in terms of technology or experiences, is somehow bad (there
641
+are plenty of useful things to learn, for the patterns will often
642
+remanifest in future technologies down the road)
643
+
644
+Apologizing: "sorry I had to ask a question", "sorry I misunderstood",
645
+"sorry I failed to do that action"; I WANT people to ask questions.
646
+Questions are based on not fully understanding something. And if your
647
+actions come up short, apologies only serve to highlight the deficiency.
648
+The best solution: to fix it and not keep repeating the same mistake.
649
+There may be things worthy of apologizing for. For most incidents of
650
+apology I encounter related to classes, such is irrelevant. If you feel
651
+you are in the wrong for asking a question, you're doing this whole
652
+learning thing wrong.
653
+
654
+Overhelping "the weakest link"; a somewhat modern trend, where I see
655
+woefully unprepared/unready individuals overly assisted through the
656
+course (where the intent is to save them from failing). This is but a
657
+short-term perspective, contributing to their long-term failure.
658
+
659
+Opting out of things that seem overwhelming, yet somehow expecting things
660
+will get better as time goes on.
661
+
662
+The desire to impress me-- impressing comes by being impressive, not
663
+selling an act to me (in short, don't try to impress me, just do your
664
+best work, and have me be impressed by how impressive it naturally is).
665
+
666
+Avoiding the developing/strengthening your own memory and recall, and
667
+relying on others (including the instructor) to be your memory.
668
+
669
+The obsession over and recitation of hardware specs-- this has nothing to
670
+do with computing, yet many mistakenly believe it to be such (a small
671
+aspect of IT and an occasionally fun hobby? sure.)
672
+
673
+The compensation for lack of knowledge by clinging tightly to (perceived)
674
+known knowledge-- I expect everyone not to know things; knowing we don't
675
+know enables us to learn.
676
+
677
+The avoiding of questions out of fear they may not be worthy of asking--
678
+how else can I know where you are if you don't ask?
679
+
680
+The asking for the answer as if it were a question, to avoid thinking or
681
+doing the work yourself. Questions are the a result of your thinking, not
682
+"I don't know, so tell me?", or the worst (literally): "What do I need to
683
+do in order to get an A/full credit?"
684
+
685
+The absolute belief that if I say something then it is the truth (same
686
+for the inverse, converse, contrapositive, etc.)-- being open-minded and
687
+questioning is one of the greatest abilities we can have. Society trains
688
+you to be compliant with external authority at the expense of your own;
689
+to be educated and intelligent, in part, means you have cultivated your
690
+own self-authority so you can make your own decisions.
691
+
692
+The impression that if something is said frequently or confidently
693
+enough, then it must be true, and that makes someone an "expert" who
694
+should be believed, followed, and unquestioned.
695
+
696
+The tendency to brute force through something instead of trying to think
697
+or learn new approaches-- memorizing and regurgitation will often not
698
+work out in your favour here (or greatly annoy me).
699
+
700
+Being tangibly obsessed with knowing your exact grade, while being
701
+uninformed about the process of calculating it yourself from available
702
+information.
703
+
704
+Complaining upstream about me/my class without actually bringing issues
705
+to me first to address.
706
+
707
+Destroying context in asynchronous communications (ie deleting Discord
708
+messages after making a post, asking a question, and getting some sort of
709
+resolution): this makes it entirely unhelpful for others to also benefit,
710
+and leaves gaping holes in the existing conversation. Please do not
711
+delete your Discord messages after getting a response.
712
+
713
+Using AI, and failing to distinguish between your own skills and
714
+knowledge, and what AI is able to produce, treating them as one and the
715
+same. As I've said elsewhere, at this level, you should be avoiding
716
+flagrant AI use, as it can become a fatal crutch, stagnating your
717
+abilities.
718
+
719
+## Rules for Success
720
+
721
+For maximum success in the class, please adhere to the following rules:
722
+
723
+ * start on activities early
724
+ * observe/study, read/intuit, and comprehend the subject matter
725
+ * play/tinker/experiment with the subject matter (external to projects)
726
+ * ask well-informed and copious questions
727
+
728
+Struggle and problems in the course almost immediately arise when one
729
+fails to follow one or more of these guidelines.
730
+
731
+## Documentation
732
+
733
+The following criteria should be kept in mind when contributing content
734
+to collaborative documentation, the course notes, and any pertinent
735
+class-related communications:
736
+
737
+ * Never use a form of a word in its own definition
738
+ * Use external hyperlinks only as citations
739
+ * Content first, then formatting
740
+ * There is only one empire- ours
741
+ * Contribute only original content
742
+ * Paraphrase and cite existing information
743
+ * Do NOT blatantly copy existing information
744
+ * A healthy resource is an active resource
745
+ * Do not focus on just your contributions
746
+ * Mistakes are opportunities for future contributions
747
+
748
+## Topics
749
+
750
+The following is a list of the major topics being covered in this course:
751
+
752
+ * Standard I/O (STDIO, STDOUT, STDERR)
753
+ * Header Files (Local and System), C Standard Library (Libc), Libraries
754
+ * arithmetic (equations, operators)
755
+ * logic and operators (and, or, not, xor)
756
+ * Variables (types, ranges, sizes)
757
+ * Scope (Block, Local, Global, File)
758
+ * Pointers (address of, assignment, dereferencing)
759
+ * Type Casting
760
+ * Selection Structures (if, case/switch)
761
+ * Repetition/Iteration Structures (for, while, do while)
762
+ * Arrays (standard notation, pointer arithmetic, single-dimensional, multi-dimensional)
763
+ * File Access (Read, Write, Append)
764
+ * Structures (Declaration, Accessing Elements, Pointers to)
765
+ * typedef, enum, union
766
+ * Functions, Parameters (Pass by: Value, Address, Reference), Return Types, Recursion, Command-line arguments
767
+ * Compiler, Preprocessor, Flags, Assembler, Linker, Multi-file programs (how to structure, how to compile)
768
+ * I/O Streams (cin, cout, cerr, stream operators) [C++]
769
+ * Namespaces [C++]
770
+ * Type Casting Operators, Const-Volatility Specifiers (const, volatile) [C++]
771
+ * Classes (Objects, Constructor, Destructor, Access Control, Public, Protected, Private, Friend, "this" pointer) [C++]
772
+ * Inheritance (single, multiple Inheritance), Polymorphism/Virtual Functions, Abstract Base Class [C++]
773
+ * Overloading (Functions, Operators) [C++]
774
+ * Exception Handing (throw, try, catch) [C++]
775
+ * Templates, STL (Standard Template Library) [C++]
776
+
777
+## Student Understanding and Agreement of Syllabus Terms
778
+
779
+By reading through this document, participating in the class chat,
780
+utilizing class resources, and performing the various class activities
781
+and projects, you understand and consent:
782
+
783
+ * to the rules, policies governing your status as a student at SUNY CCC.
784
+ * to the structure, policies, and nature of the course as laid out here.
785
+ * to having an adequate understanding of course prerequisite knowledge.
786
+ * to maintain a respectful, inquisitive, well-behaved, and learning-oriented focus as you participate and go through the course.
787
+ * to practice (and further cultivate, as needed) the fundamental aspects of a student taking this course, which includes being able and willing:
788
+ * to read, comprehend and work with the material and information inherent to the course.
789
+ * to write and express your thoughts in coherent, descriptive sentences.
790
+ * willing to analyze, problem solve, debug, troubleshoot, ideate, creatively, and logically/rationally think.
791
+ * willing to compute and transact in number concepts (literal, symbolic or abstract) and any related units in their various processes.
792
+ * to, upon facing uncertainty, confusion, or lack of understanding, will ask copious, well-informed, and well-intending questions to clarify your state of understanding.
793
+ * if cause for issue rises, you will bring it to my attention so that it may be best addressed as locally and pertinently as possible to the course and its educational environment.
794
+ * participate in the course with a focus on curiosity, discovering, exploring, learning, and understanding.
795
+ * starting early on deliverables so that ample time is available for discovering, exploring, learning, and asking any questions as needed.
796
+ * that, as a student, a genuine learning experience necessarily involves some level of unfamiliarity, which may invoke discomfort.
797
+ * that your learning and the nature of the course is an inherently asynchronous thing. It is your responsibility to manage your time, so that you can have adequate time to ask questions and accomplish your own tasks.
haas/fall2026/data.md
... ...
@@ -0,0 +1,820 @@
1
+# fall2026/data
2
+
3
+# CSCS2320 Data Structures
4
+
5
+## Syllabus / Course Homepage
6
+
7
+| Instructor: | Matthew Haas (haas@corning-cc.edu) |
8
+| Office: | `CHM123` |
9
+| Office Hours: | `T 10:30a-11:35a`, `W 02:00p-02:55p`, `R 10:30a-01:30p` |
10
+| Class Meeting: | CHM123 R 3:15p-5:05p |
11
+| Class DESIG: | `data` |
12
+| Class Chat: | `#data` on discord |
13
+| Public Directory: | `/var/public/fall2026/DATA` |
14
+| CRN: | `14535` |
15
+| '`W`' Drop Date: | November 1, 2026 |
16
+| ----------------- | -------------------------------------------------------------- |
17
+| DISCORD invite: | [https://discord.gg/8eu3nKjUXX](https://discord.gg/8eu3nKjUXX) |
18
+| Projects page: | [https://lab46.g7n.org/haas/fall2026/data/projects.md](https://lab46.g7n.org/haas/fall2026/data/projects.md) |
19
+| CCC Syllabus Statements: | [https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/](https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/) |
20
+
21
+## Table of Contents
22
+
23
+ * [Course Description](#course-description)
24
+ * [Course Objectives](#course-objectives)
25
+ * [Assumptions](#assumptions)
26
+ * [Course Materials](#course-materials)
27
+ * [Technology Policy](#technology-policy)
28
+ * [AI use policy](#ai-use-policy)
29
+ * [Grading Policy](#grading-policy)
30
+ * [Letter Grades](#letter-grades)
31
+ * [Course Notes](#course-notes)
32
+ * [Projects](#projects)
33
+ * [Participation](#participation)
34
+ * [EoCE](#eoce)
35
+ * [Submission Guidelines](#submission-guidelines)
36
+ * [Digital is best](#digital-is-best)
37
+ * [Identification](#identification)
38
+ * [Paraphrasing](#paraphrasing)
39
+ * [Organization](#organization)
40
+ * [Timeliness](#timeliness)
41
+ * [Errors](#errors)
42
+ * [Backups](#backups)
43
+ * [Common Sense](#common-sense)
44
+ * [Late Policy](#late-policy)
45
+ * [Attendance](#attendance)
46
+ * [Behaviour](#behaviour)
47
+ * [Collaboration](#collaboration)
48
+ * [Pet Peeves](#pet-peeves)
49
+ * [Rules for Success](#rules-for-success)
50
+ * [Documentation](#documentation)
51
+ * [Topics](#topics)
52
+ * [Student Understanding and Agreement of Syllabus Terms](#student-understanding-and-agreement-of-syllabus-terms)
53
+
54
+## Course Description
55
+
56
+Data and data structures, linear lists, strings, stacks, queues, linked
57
+lists, arrays, and orthogonal lists. Trees, multi-linked structure, table
58
+search, sorting techniques, storage allocation, and sequential and random
59
+file access.
60
+
61
+(3 cr. hrs.) (Fall). Prerequisite: CSCS1320 C/C++ Programming.
62
+
63
+## Course Objectives
64
+
65
+Upon successful completion of this course, students will be able to:
66
+
67
+ * Analyze the memory allocation strategies and internal representations
68
+of primitive and user-defined data structures within system memory.
69
+
70
+ * Implement fundamental data structures—including linked lists,
71
+stacks, queues, and trees—from first principles using pointer
72
+manipulation and dynamic memory management.
73
+
74
+ * Evaluate the performance of alternative data structure implementations
75
+using Big O notation to determine time and space complexity.
76
+
77
+ * Synthesize complex programs by integrating multiple data structures to
78
+solve multi-faceted computational problems.
79
+
80
+ * Compare and contrast the trade-offs between static and dynamic memory
81
+structures regarding flexibility, overhead, and access speed.
82
+
83
+ * Justify the selection of a specific data structure based on the unique
84
+constraints and requirements of a given algorithmic challenge.
85
+
86
+ * Explain the practical applications of various data structures in
87
+software engineering, such as buffer management, recursion handling, and
88
+hierarchical data modeling.
89
+
90
+ * Debug and optimize data-intensive applications by tracing memory usage
91
+and resolving issues related to data persistence and integrity.
92
+
93
+## Assumptions
94
+
95
+There are many great opportunities for realization and insight ahead, but
96
+there are also many obstacles standing in the way of you staying on a
97
+path of success. I find that uncommunicated assumptions can play a role
98
+in hampering progress, so please ensure you are suitably read up and
99
+aware of my assumptions coming into the course, along with my assumptions
100
+of your assumptions, playing the role of a studious student seeking
101
+enlightenment.
102
+
103
+Let's also make sure we are on the same playing field by establishing
104
+some definitions:
105
+
106
+**student**: A student is primarily a person enrolled in a school
107
+or other educational institution and who is under learning with
108
+goals of acquiring knowledge, developing professions and facilitating
109
+employment in a particular field. In the broader sense, **a student
110
+is anyone who applies themselves to the intensive intellectual
111
+engagement with some matter necessary to master it** as part of
112
+some practical affair in which such mastery is basic or decisive.
113
+(https://en.wikipedia.org/wiki/Student)
114
+
115
+While a decent definition, I would argue that it falls short by not also
116
+indicating certain things that should be stated, so herein are some
117
+further assumptions:
118
+
119
+A student, entering into the educational environment of a particular
120
+class or degree of study (especially at the undergraduate level where we
121
+reside), **DOES NOT** need to have any prior experience with the subject
122
+matter. That is: if you are taking a course on introductory programming
123
+in a certain language, the student is not expected to know how to program
124
+in that specific language (and depending on prerequisites to the course,
125
+may not even need to know anything about programming at the introductory
126
+level).
127
+
128
+To learn something means you don't know it. Not knowing something,
129
+there's a state of not understanding, and not being aware of what a
130
+particular thing or concept is. A student taking a class to learn
131
+something necessarily needs to be in active pursuit of gaining an
132
+understanding, but is not expecting to come in knowing anything. Learning
133
+is often a mistake-ridden process of bumping around in progressively less
134
+conceptually dark spaces as patterns are sussed out and intuitive
135
+connections are established. We learn best from our mistakes, so a
136
+student that does not make mistakes, or that avoids opportunities to make
137
+mistakes, isn't being a good student.
138
+
139
+Learning is build upon an ever-growing foundation (your life experience
140
+and knowledge, some derivation of society's and civilization's collective
141
+body of experience and knowledge), and to be eligible to take a college
142
+class, yes, SOME prerequisite knowledge is assumed, namely:
143
+
144
+ * you are functionally literate in English
145
+ * you know how to and can/will read (input/consume)
146
+ * you know how to and can/will write (output/create/produce)
147
+ * you know how to and can/will do math/computations
148
+ * you know how to and can/will think
149
+ * you know how to and can/will ask questions
150
+
151
+A student's (or learner's) absolute BEST tool is the question,
152
+specifically the regular asking of them. You **NEED** to be regularly
153
+engaging yourself and the class with questions, and responses to
154
+questions. No two people perceive something the same exact way.
155
+One explanation is not ideal for every individual. If an available
156
+explanation falls short with respect to being clarifying or promoting
157
+understanding, you should ask a question. If an available explanation is
158
+clarifying, but then upon further thought creates confusion or makes you
159
+wonder about other, potentially related things: YOU SHOULD ALSO ASK a
160
+question.
161
+
162
+The benefit of authentic education is that it transitions one from a
163
+state of predominantly not knowing what they don't know, to a state where
164
+while they may know that they know more than they did before, also then
165
+cultivates an important perception of then KNOWING that they don't know
166
+even more things.
167
+
168
+Education isn't about certainty or comfort in attaining a set of facts
169
+and calling it quits: It is about coming to terms with the endless
170
+uncertainty of possible things that can be pursued or known. We can never
171
+know everything, but we CAN know that we can never know everything. We
172
+instead strive for a functioning subset where we learn enough to give us
173
+a foundation in the present, and consistently keep learning (although
174
+hopefully less so exclusively in a classroom as time goes by, but
175
+instead by the individual having gained enough experience to become a
176
+self-learner) to keep up with the demands of tomorrow.
177
+
178
+So, as a student learner embarking upon and taking this class, know that
179
+I don't assume you know anything about the course you are taking, and
180
+that you will be reading and thinking and doing and computing and asking
181
+questions regularly so that by the conclusion of the course, you will
182
+have some greater idea of the nature of what was encountered in the
183
+class.
184
+
185
+If you don't want to ask questions, for whatever reason, nor want to
186
+bother with expanding your horizons, in learning new and different
187
+concepts and ways of doing things (ie you want to remain small and
188
+stagnant), then I would urge you to reconsider taking this course: it is
189
+NOT a daycare to keep your mind and hands pacified. It is an educational
190
+environment where you will be tasked to grow and improve.
191
+
192
+## Course Materials
193
+
194
+ * No materials needed (resources available online)
195
+
196
+## Technology Policy
197
+
198
+The baseline qualifications for taking this course include you having a proficiency:
199
+
200
+ * to type on a full-size computer keyboard (104-key or equivalent)
201
+ * with basic computing concepts (files, storage, units of information)
202
+ * to read instructions and available technical data in relevant theatres and domains
203
+
204
+... and an ability:
205
+
206
+ * to readily ask questions
207
+ * to take notes and later retrieve useful information from them
208
+ * to recall important concepts and experiences
209
+ * to work on class-related content outside of class
210
+
211
+... and a willingness:
212
+
213
+ * to attempt solving new and unfamiliar problems
214
+ * to encounter new and unfamiliar concepts
215
+ * to indulge in new and unfamiliar activities
216
+ * to learn in new and unfamiliar ways
217
+ * to work on class-related content outside of class
218
+
219
+## AI use policy
220
+
221
+With the advent of commercially-viable and desktop-usable AI products
222
+(AI/AGI/chatGPT/LLMs/etc.), heretofore all regarded as "AI", questions of
223
+ethics and allowability of such tools in the learning process have become
224
+a rather hot topic. For the purposes of my classes:
225
+
226
+AI use is **not** recommended; you would be better off at this stage not
227
+even touching it.
228
+
229
+AI is a powerful tool for productivity, yet when used prior to
230
+solid understanding of the concepts and information being transacted,
231
+ultimately suffer and stagnate.
232
+
233
+You should aim to understand and know how to do things yourself, by
234
+hand/manually. This allows you to better vet AI output, not to mention
235
+better leverage various automation technologies.
236
+
237
+During this learning process, do as much of the task as you can by hand
238
+or mentally: this is how you gain understanding and comprehension. This
239
+allows you to better vet AI output.
240
+
241
+If you insist on using AI, you hereby acknowledge you assume
242
+responsibility for its inherent perils and hazards it can cause you and
243
+your progress/success in this class:
244
+
245
+ * accept that you are putting yourself at risk of deeply sabotaging your learning journey, subjecting yourself to stagnant thought and limited perspectives, as you insulate yourself from the rigors of doing the actual work
246
+
247
+ * accept that you will have to live with the awareness that the instructor and other suitably aware individuals in the course may lose some faith in your humanity
248
+
249
+ * accept that, if you pass off AI-generated work as your own, and your work is questioned, **if you are unable to competently demonstrate your understanding, you risk losing any and all credit for that deliverable**
250
+
251
+ * YOU are the student, YOU are the one here to do the work and learn.
252
+
253
+AI prose is increasingly sophisticated and convincing. Yet there is a
254
+difference between verbosity and competence. Learning to differentiate
255
+between them is a valuable life skill, and an important ability to have
256
+when dealing with AI output.
257
+
258
+## Grading Policy
259
+
260
+The grading policy is broken down into 4 areas, totalling 104 points
261
+(which will account for 100% of the grade):
262
+
263
+ * Notes/Journal/Writing (13pts)
264
+ * Projects (52pts)
265
+ * Participation (13pts)
266
+ * EoCE (26pts).
267
+
268
+Each area, as well as the overall grade, will be evaluated based on a sum
269
+of accumulated points on each projects out of a sum of total points on
270
+each project (as opposed to a sum of averages on each project). This
271
+totaling tends to favor those who consistently do work throughout the
272
+semester, and I want to reward that.
273
+
274
+In addition, for each third to quarter of the class (at instructor's
275
+discretion), there will be a possibility of a **knowledge assessment**,
276
+the results of which will serve as a credit multiplier to any points
277
+accrued (ranging from 0.00-1.00). That means: if you skip or bomb the
278
+knowledge assessment, all your accrued points for that segment of the
279
+course are multiplied by 0.00, and that is the resultant credit that is
280
+factored into your grade.
281
+
282
+While the term 'percent' may be used, it is more appropriate to consider
283
+it a 'percent-oh-four', as the word 'percent' refers to PER each CENT
284
+(100). We are dealing not with 100s, but 104s.
285
+
286
+Also: with the possible exception of the project component, any
287
+accumulated point excesses will be capped at the allocation per that
288
+grading unit.
289
+
290
+### Letter Grades
291
+
292
+Letter grades are pegged to the following numeric values:
293
+
294
+ * **A** (98.00+)
295
+ * **A-** (92.00-97.99)
296
+ * **B+** (86.00-91.99)
297
+ * **B** (80.00-85.99)
298
+ * **B-** (74.00-79.99)
299
+ * **C+** (68.00-73.99)
300
+ * **C** (62.00-67.99)
301
+ * **D** (56.00-61.99)
302
+ * **F** ( 0.00-55.99)
303
+
304
+Any calculated values in excess of two decimal places that may impact the
305
+result is at the sole evaluatory discretion of the instructor (for
306
+example, getting a 92.997; if you've been a pleasant, decent human being,
307
+I may do you a favor. Just sayin'). Application of any 'rounding' or
308
+other result processing is also at the sole discretion of the instructor.
309
+
310
+Bonus points, if given/available, are applied to a particular grade
311
+component (for example, a project bonus point will only pad the projects
312
+component of the grade), and then only up to a maximum of that grade
313
+component's total value (ie, one cannot use bonus points to exceed the 13
314
+possible overall points on the journal, or participation, for example).
315
+
316
+In addition, some further constraints pertaining to bonus point
317
+eligibility:
318
+
319
+Bonus projects that are due the same week as a for-credit project will
320
+only be considered if the for-credit project was actually turned in.
321
+
322
+Bonus projects that are due the same week as a for-credit project will
323
+only be considered if the for-credit project had a final evaluated result
324
+of greater than or equal to 52%.
325
+
326
+Bonus points from early submission of a for-credit project will only be
327
+applied if the for-credit project had a final evaluated result of greater
328
+than or equal to 52%.
329
+
330
+**NOTE**: bonus projects or other extra credit items are **not** eligible
331
+for early submission bonuses.
332
+
333
+### Course Notes
334
+
335
+Accomplishing the assigned tasks represents only part of the educational
336
+experience. A vital part of learning involve understanding and thinking.
337
+Writing is perhaps the best tool we have of capturing thought.
338
+
339
+In each course, as appropriate, there will be an on-going, weekly
340
+class-collaborative documentation, in the form of coursenotes or some
341
+related endeavour where the aim will be to assemble a coherent,
342
+informative document providing insight what went on in class / improved
343
+presentation of some class resource.
344
+
345
+While collaborative in nature, each individual will be evaluated based on
346
+number of commits and quantity of content contributed. While class or
347
+resource topics may vary from week to week, look to contribute at least
348
+256 words of informative, relevant content for consideration of full
349
+credit in this category.
350
+
351
+### Projects
352
+
353
+Projects constitute the portion of your grade involving activities you
354
+perform in the name of experiencing and demonstrating knowledge in this
355
+class- the means by which I will be assessing your understanding of the
356
+material through directed explorations of various topics. Such projects
357
+may be comprehensive to one another.
358
+
359
+In some cases, depending on the situations involved, a project may be
360
+conducive for group-based collaboration. This is not the default case,
361
+but is specified on a case-by-case basis. In such scenarios, all involved
362
+group members should be identified prior to starting on the project.
363
+Additionally, ALL group members in a collaborative situation must perform
364
+fairly equivalent work output into the completion of the project.
365
+Deficient members may experience reduced success.
366
+
367
+In accordance with the late policy, projects past their deadline will see
368
+a late penalty of 33% levied per day. This is to mitigate procrastination
369
+and encourage better time management, and also to ensure progress
370
+continues- once we hit the third day, a past due project is no longer
371
+worth any credit, so it behooves everyone to stay on top of assigned work
372
+and to complete it by its respective deadline. To clarify, if a project
373
+is due by the end of Wednesday, it would be 33% late Thursday (1 day
374
+late), 66% late Friday (2 days late), 100% late once it becomes Saturday
375
+(3+ days late).
376
+
377
+### Participation
378
+
379
+Maintaining an ever present effort in your journey with respect to being
380
+present for class gatherings and making such effort known is an important
381
+aspect to academic interactions.
382
+
383
+For class (no matter the setting), you are to show your effort through
384
+demonstrating regular interactive activity on lab46 and related class
385
+resources (discord, repository). Emphasis will be on communications
386
+taking place with the entire class (the class discord chat).
387
+
388
+Participating in class interactions is of significant importance.
389
+Participation is like the "I care" component of your grade. If you care
390
+enough to learn and help enhance the experience, you will have no trouble
391
+here. If you are disruptive or are not putting forth effort, however,
392
+then it will be duly reflected.
393
+
394
+Weekly participation may link directly to overall credit received on
395
+weekly projects! Do not be silent and in the shadows- ask questions and
396
+be interactive with the class!
397
+
398
+Each week, you have the ability to earn participation credit by
399
+performing various activities (for some amount of points per week, likely
400
+reflective of week and progression of semester). The particular **wcp#**
401
+projects will detail the specific attributes and points available (and
402
+needed) for a particular week.
403
+
404
+I would encourage you to vary your participation activities from week to
405
+week, especially as no one single activity will eventually be enough to
406
+cover the entirety of your weekly participation requirements.
407
+
408
+If you anticipate missing a class, please notify me in advance. While you
409
+may still lose applicable participation credit, the advance notice will
410
+be taken into positive consideration.
411
+
412
+### EoCE
413
+
414
+As the semester starts wrapping up, the End of Course Experience (EoCE)
415
+will be released.
416
+
417
+Intended as a sort of comprehensive project(s), its aim is to evaluate
418
+your knowledge gained from the class this semester. Unlike other classes
419
+which have a "Final Exam", the EoCE is meant to be an EXPERIENCE, and as
420
+such celebrated across the land. If you're new to my classes, you'll see
421
+those with prior experience jump for joy at the thought of an EoCE (the
422
+twitching / convulsing is merely ecstatic joy that is difficult for the
423
+corporeal body to manifest).
424
+
425
+## Submission Guidelines
426
+
427
+The following are some guidelines to keep in mind when preparing your
428
+work for submission. Not all may always be applicable, to each class, or
429
+even each submission.
430
+
431
+### Digital is best
432
+
433
+Technology is a wonderful thing. It facilitates many of the tasks we'd
434
+otherwise have to do manually by hand.
435
+
436
+The intent here is to make things easy on both you and me.
437
+
438
+So use the technology, and don't just it for the sake of using it-- use
439
+it to make the task at hand easier (ie use the technology available and
440
+sanctioned for the course).
441
+
442
+With that said, some additional aspects to keep in mind:
443
+
444
+ * e-mails were designed to be plain text; don't make them into web pages
445
+ * e-mails should always have an informative subject line
446
+ * if you've got non-text files to include in an e-mail, just attach them
447
+ * you've got many attachments? archive/compress them, attach the archive
448
+ * plain ASCII text (UTF-8) is preferable over any enriched text format
449
+
450
+If appropriate, I also will accept submissions via singing telegram,
451
+airplane banner, crop circles, creative dance, three part rock aria, etc.
452
+so long that I get to witness such creativity, and receive something
453
+which lets me look back on it later (photos, video, transcription on
454
+paper, etc.). Chances are such unique submissions will gain you favorable
455
+considerations.
456
+
457
+### Identification
458
+
459
+Where applicable, be sure to include the following information on any
460
+submission:
461
+
462
+ * Name,
463
+ * Course and Section,
464
+ * Due Date,
465
+ * Assignment # and description,
466
+ * Short abstract describing the purpose of your program / assignment.
467
+
468
+Presentation of this information in a clear and organized fashion will
469
+make your assignment all the easier to read. You may come up with your
470
+own format for the display of this information.
471
+
472
+Any e-mail submissions should have an appropriate subject line. Please
473
+use subjects on all e-mails. This is also very important.
474
+
475
+Leaving off the subject line is like sending a letter without putting a
476
+stamp on it-- it causes someone extra work. And that someone would be me.
477
+So don't do it. Please please please use informative subject lines!
478
+
479
+### Paraphrasing
480
+
481
+For any provided questions, keywords, etc.: identify each question or
482
+selection you are answering by listing or paraphrasing the original
483
+question.
484
+
485
+Do not just give me an answer.
486
+
487
+This is important. I mean it. You don't know how frustrating it is to get
488
+an assignment that just has the answers on it. It takes so much longer to
489
+evaluate.
490
+
491
+I reserve the right to deduct points if you don't do this.
492
+
493
+### Organization
494
+
495
+Keep your programs and assignments organized and easy to read.
496
+
497
+Use a uniform writing style. Messy or unorganized submissions will have
498
+points deducted. Think to yourself: does it look good? Would **you** want
499
+to read this? Take pride in your work.
500
+
501
+These assignments are not just for me to read and grade- you may wish to
502
+incorporate them into a portfolio for use in the future. Making an
503
+investment now could pay off later!
504
+
505
+### Timeliness
506
+
507
+Turn in submissions on time.
508
+
509
+Late submissions will be subject to an appropriate penalty. Circumstances
510
+vary, see the Late Policy for details.
511
+
512
+In many cases, where possible, I do accept resubmissions.
513
+
514
+### Errors
515
+
516
+If you encounter an error while performing some task (and the directions
517
+do not indicate you should be receiving an error), chances are you made a
518
+typo. Consult the class chat, ask someone, or contact me.
519
+
520
+**NOTE**: Submissions containing answers based on user error will be
521
+considered incorrect.
522
+
523
+### Backups
524
+
525
+Be sure to keep a backup copy of all assignments submitted in the event
526
+something is lost in transmission.
527
+
528
+**It is your responsibility to be able to send another copy of your
529
+submission should the original be lost.**
530
+
531
+### Common Sense
532
+
533
+Use your own judgment. The world today is increasingly filled with rules
534
+and policies dictating what you can and cannot do. I am not about to
535
+go and list all the specifics and restrictions regarding assignment
536
+submission.
537
+
538
+You are here to learn and to grow, and I want to allow you a certain
539
+amount of flexibility in that process. Spending all your time formatting
540
+an assignment to my specifications isn't my idea of learning. Incorporate
541
+these guidelines into your general style, if you miss the mark I'll let
542
+you know. But focus more on learning and understanding than worrying
543
+about dotting every 'i' or crossing every 't'. There's enough of that
544
+elsewhere in the world.
545
+
546
+## Late Policy
547
+
548
+Sometimes, even though we try our hardest to get everything in on time,
549
+the spurious Murphy's Law will make an appearance. Your dog ate your
550
+network cable, a burst of cosmic rays damaged your RAM precisely where
551
+your work was located... the list goes on.
552
+
553
+If something is not submitted by its respective due date (or, heaven
554
+forbid, the late window), and no advance attempt has been made to
555
+communicate with me, the assignment will be invalidated of any value.
556
+
557
+Bottom line.. if something is going to be late: let me know. It happens,
558
+just don't make a habit of it. Communication is key.
559
+
560
+Unless otherwise specified, past due assignments will lose 33% credit per
561
+day, rendering them worthless credit-wise after 3 days.
562
+
563
+Please do remember most projects are released **at least** one week in
564
+advance. If you wait until the finals days before the deadline, and
565
+struggle due to lack of time, that isn't grounds for reconsideration of
566
+any deadlines or late penalties. Take the whole time, work away slowly at
567
+it over time, and that will likely lead to far fewer deadline rushes.
568
+
569
+### Attendance
570
+
571
+Attendance plays an important part in one's educational journey each
572
+semester. Missing class deprives you of essential knowledge and hinders
573
+understanding towards your eventual mastering of a topic.
574
+
575
+Because we are all here to learn (and if learning isn't a priority, I
576
+highly suggest you think about making it such), and believe it or not-
577
+learning isn't just about one person, but the entire group. So it is
578
+important to be present in order to positively contribute to the learning
579
+experience.
580
+
581
+I also reserve the right to report absent, or highly tardy students in
582
+the course. In some cases, that could result in being dropped from the
583
+course. On the same token, I reserve the right NOT to report or do
584
+anything to such students. Sometimes failure can be the best teacher.
585
+
586
+### Behaviour
587
+
588
+Should your behaviour in the class be notably and consistently unruly,
589
+off-topic, or alarming, I have the ability to remove you from the class.
590
+
591
+I will likely issue a warning or report (although not necessarily to the
592
+individual- sometimes an administrative reporting is in order to have
593
+them resolve the issue) indicating a desire to have you cease the
594
+particular behaviour, but through continued transgressions, may actually
595
+elevate to forced removal from the class.
596
+
597
+The priority is to the well-being of the class community. I cannot have
598
+individuals derailing that for their own personal gain or purposes.
599
+
600
+## Collaboration
601
+
602
+Because this course is open resource (ie book, computer, note, etc.) I
603
+would like it generally to remain **closed person** and **closed
604
+intelligence** (the thinking done should be your own, not outsourcing it
605
+to some artificial entity). The reason for this is that the amount of
606
+resources available to you are vast, and the goal here is to discover and
607
+learn the material through individual initiative.
608
+
609
+It IS possible to help others without giving away answers.
610
+
611
+Respond to questions with a question, give pointers to where information
612
+might be located in legitimate sources, remind them of the usefulness of
613
+manuals, and the availability of search engines.
614
+
615
+Individuals are allowed and expected, to assist others through the class
616
+chat **WITHOUT GIVING EXPLICIT ANSWERS**, so long as it does not
617
+interfere with any other existing circumstance. If group work is required
618
+on anything, that attribute will be specifically stated.
619
+
620
+Explicit copying on or of any class work is forbidden. If any evidence or
621
+suggestion of non-authentic work is discovered (and I can tell you some
622
+stories) in your particular direction, you risk both my wrath as well as
623
+the possibility of disciplinary action by the school. Academic dishonesty
624
+and plagiarism may be prosecuted under the purview as laid out in the
625
+school's Academic Honesty Policy, as listed under the Code of Student
626
+Conduct: Academic Honesty section in the CCC Course Catalog.
627
+
628
+So just play it safe and make sure your work is your own, and borrowed
629
+information is appropriately cited or referenced.
630
+
631
+## Pet Peeves
632
+
633
+Everyone has their buttons that can be pushed the wrong way. Here are a
634
+few of mine, that I would prefer not encountering:
635
+
636
+The eager, often surface-only desire to destroy things (especially with
637
+no desire to understand the why behind it all).
638
+
639
+The notion that 'old', 'unpopular', 'uncomfortable', or 'different',
640
+especially in terms of technology or experiences, is somehow bad (there
641
+are plenty of useful things to learn, for the patterns will often
642
+remanifest in future technologies down the road)
643
+
644
+Apologizing: "sorry I had to ask a question", "sorry I misunderstood",
645
+"sorry I failed to do that action"; I WANT people to ask questions.
646
+Questions are based on not fully understanding something. And if your
647
+actions come up short, apologies only serve to highlight the deficiency.
648
+The best solution: to fix it and not keep repeating the same mistake.
649
+There may be things worthy of apologizing for. For most incidents of
650
+apology I encounter related to classes, such is irrelevant. If you feel
651
+you are in the wrong for asking a question, you're doing this whole
652
+learning thing wrong.
653
+
654
+Overhelping "the weakest link"; a somewhat modern trend, where I see
655
+woefully unprepared/unready individuals overly assisted through the
656
+course (where the intent is to save them from failing). This is but a
657
+short-term perspective, contributing to their long-term failure.
658
+
659
+Opting out of things that seem overwhelming, yet somehow expecting things
660
+will get better as time goes on.
661
+
662
+The desire to impress me-- impressing comes by being impressive, not
663
+selling an act to me (in short, don't try to impress me, just do your
664
+best work, and have me be impressed by how impressive it naturally is).
665
+
666
+Avoiding the developing/strengthening your own memory and recall, and
667
+relying on others (including the instructor) to be your memory.
668
+
669
+The obsession over and recitation of hardware specs-- this has nothing to
670
+do with computing, yet many mistakenly believe it to be such (a small
671
+aspect of IT and an occasionally fun hobby? sure.)
672
+
673
+The compensation for lack of knowledge by clinging tightly to (perceived)
674
+known knowledge-- I expect everyone not to know things; knowing we don't
675
+know enables us to learn.
676
+
677
+The avoiding of questions out of fear they may not be worthy of asking--
678
+how else can I know where you are if you don't ask?
679
+
680
+The asking for the answer as if it were a question, to avoid thinking or
681
+doing the work yourself. Questions are the a result of your thinking, not
682
+"I don't know, so tell me?", or the worst (literally): "What do I need to
683
+do in order to get an A/full credit?"
684
+
685
+The absolute belief that if I say something then it is the truth (same
686
+for the inverse, converse, contrapositive, etc.)-- being open-minded and
687
+questioning is one of the greatest abilities we can have. Society trains
688
+you to be compliant with external authority at the expense of your own;
689
+to be educated and intelligent, in part, means you have cultivated your
690
+own self-authority so you can make your own decisions.
691
+
692
+The impression that if something is said frequently or confidently
693
+enough, then it must be true, and that makes someone an "expert" who
694
+should be believed, followed, and unquestioned.
695
+
696
+The tendency to brute force through something instead of trying to think
697
+or learn new approaches-- memorizing and regurgitation will often not
698
+work out in your favour here (or greatly annoy me).
699
+
700
+Being tangibly obsessed with knowing your exact grade, while being
701
+uninformed about the process of calculating it yourself from available
702
+information.
703
+
704
+Complaining upstream about me/my class without actually bringing issues
705
+to me first to address.
706
+
707
+Destroying context in asynchronous communications (ie deleting Discord
708
+messages after making a post, asking a question, and getting some sort of
709
+resolution): this makes it entirely unhelpful for others to also benefit,
710
+and leaves gaping holes in the existing conversation. Please do not
711
+delete your Discord messages after getting a response.
712
+
713
+Using AI, and failing to distinguish between your own skills and
714
+knowledge, and what AI is able to produce, treating them as one and the
715
+same. As I've said elsewhere, at this level, you should be avoiding
716
+flagrant AI use, as it can become a fatal crutch, stagnating your
717
+abilities.
718
+
719
+## Rules for Success
720
+
721
+For maximum success in the class, please adhere to the following rules:
722
+
723
+ * start on activities early
724
+ * observe/study, read/intuit, and comprehend the subject matter
725
+ * play/tinker/experiment with the subject matter (external to projects)
726
+ * ask well-informed and copious questions
727
+
728
+Struggle and problems in the course almost immediately arise when one
729
+fails to follow one or more of these guidelines.
730
+
731
+## Documentation
732
+
733
+The following criteria should be kept in mind when contributing content
734
+to collaborative documentation, the course notes, and any pertinent
735
+class-related communications:
736
+
737
+ * Never use a form of a word in its own definition
738
+ * Use external hyperlinks only as citations
739
+ * Content first, then formatting
740
+ * There is only one empire- ours
741
+ * Contribute only original content
742
+ * Paraphrase and cite existing information
743
+ * Do NOT blatantly copy existing information
744
+ * A healthy resource is an active resource
745
+ * Do not focus on just your contributions
746
+ * Mistakes are opportunities for future contributions
747
+
748
+## Topics
749
+
750
+The following is a list of the major topics being covered in this course:
751
+
752
+ * Pointers (address of, assignment, dereferencing)
753
+ * arrays, pointer arithmetic
754
+ * pointers to pointers
755
+ * null pointers
756
+ * void pointers
757
+ * function pointers
758
+ * Static allocation vs. Dynamic allocation
759
+ * Memory allocation (malloc(), new)
760
+ * Memory De-allocation (free(), delete)
761
+ * structures
762
+ * structure pointer
763
+ * Singly Linked Lists
764
+ * creating
765
+ * inserting
766
+ * appending
767
+ * obtaining
768
+ * copying
769
+ * deleting
770
+ * Doubly Linked Lists
771
+ * Stacks (array-based, linked-list based)
772
+ * Pushing
773
+ * Popping
774
+ * Top
775
+ * Overflow condition (where applicable?)
776
+ * Underflow condition
777
+ * LIFO or FIFO?
778
+ * Queues (array-based, linked-list based)
779
+ * Enqueuing
780
+ * Dequeuing
781
+ * Overrun and Underrun conditions
782
+ * LIFO or FIFO?
783
+ * Computational Complexity
784
+ * Big-O, Theta, bounds
785
+ * Sorting Algorithms
786
+ * Selection sort algorithm
787
+ * Bubble sort algorithm
788
+ * Insert sort algorithm
789
+ * Quick sort algorithm
790
+ * Merge sort algorithm
791
+ * Binary Search algorithm
792
+ * Trees, Binary Trees (nodes, parents, children)
793
+ * insertion
794
+ * removal
795
+ * searching
796
+ * traversal (pre-order, post-order, in-order)
797
+ * Graphs
798
+ * Hash Tables (keys, collisions)
799
+
800
+## Student Understanding and Agreement of Syllabus Terms
801
+
802
+By reading through this document, participating in the class chat,
803
+utilizing class resources, and performing the various class activities
804
+and projects, you understand and consent:
805
+
806
+ * to the rules, policies governing your status as a student at SUNY CCC.
807
+ * to the structure, policies, and nature of the course as laid out here.
808
+ * to having an adequate understanding of course prerequisite knowledge.
809
+ * to maintain a respectful, inquisitive, well-behaved, and learning-oriented focus as you participate and go through the course.
810
+ * to practice (and further cultivate, as needed) the fundamental aspects of a student taking this course, which includes being able and willing:
811
+ * to read, comprehend and work with the material and information inherent to the course.
812
+ * to write and express your thoughts in coherent, descriptive sentences.
813
+ * willing to analyze, problem solve, debug, troubleshoot, ideate, creatively, and logically/rationally think.
814
+ * willing to compute and transact in number concepts (literal, symbolic or abstract) and any related units in their various processes.
815
+ * to, upon facing uncertainty, confusion, or lack of understanding, will ask copious, well-informed, and well-intending questions to clarify your state of understanding.
816
+ * if cause for issue rises, you will bring it to my attention so that it may be best addressed as locally and pertinently as possible to the course and its educational environment.
817
+ * participate in the course with a focus on curiosity, discovering, exploring, learning, and understanding.
818
+ * starting early on deliverables so that ample time is available for discovering, exploring, learning, and asking any questions as needed.
819
+ * that, as a student, a genuine learning experience necessarily involves some level of unfamiliarity, which may invoke discomfort.
820
+ * that your learning and the nature of the course is an inherently asynchronous thing. It is your responsibility to manage your time, so that you can have adequate time to ask questions and accomplish your own tasks.
haas/fall2026/discrete.md
... ...
@@ -0,0 +1,787 @@
1
+# fall2026/discrete
2
+
3
+# CSCS2330 Discrete Structures
4
+
5
+## Syllabus / Course Homepage
6
+
7
+| Instructor: | Matthew Haas (haas@corning-cc.edu) |
8
+| Office: | `CHM123` |
9
+| Office Hours: | `T 10:30a-11:35a`, `W 02:00p-02:55p`, `R 10:30a-01:30p` |
10
+| Class Meeting: | CHM123 TR 01:45p-03:05p |
11
+| Class DESIG: | `discrete` |
12
+| Class Chat: | `#discrete` on discord |
13
+| Public Directory: | `/var/public/fall2026/DISCRETE` |
14
+| CRN: | `14575` |
15
+| '`W`' Drop Date: | November 1, 2026 |
16
+| ----------------- | -------------------------------------------------------------- |
17
+| DISCORD invite: | [https://discord.gg/8eu3nKjUXX](https://discord.gg/8eu3nKjUXX) |
18
+| Projects page: | [https://lab46.g7n.org/haas/fall2026/discrete/projects.md](https://lab46.g7n.org/haas/fall2026/discrete/projects.md) |
19
+| CCC Syllabus Statements: | [https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/](https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/) |
20
+
21
+## Table of Contents
22
+
23
+ * [Course Description](#course-description)
24
+ * [Course Objectives](#course-objectives)
25
+ * [Assumptions](#assumptions)
26
+ * [Course Materials](#course-materials)
27
+ * [Technology Policy](#technology-policy)
28
+ * [AI use policy](#ai-use-policy)
29
+ * [Grading Policy](#grading-policy)
30
+ * [Letter Grades](#letter-grades)
31
+ * [Course Notes](#course-notes)
32
+ * [Projects](#projects)
33
+ * [Participation](#participation)
34
+ * [EoCE](#eoce)
35
+ * [Submission Guidelines](#submission-guidelines)
36
+ * [Digital is best](#digital-is-best)
37
+ * [Identification](#identification)
38
+ * [Paraphrasing](#paraphrasing)
39
+ * [Organization](#organization)
40
+ * [Timeliness](#timeliness)
41
+ * [Errors](#errors)
42
+ * [Backups](#backups)
43
+ * [Common Sense](#common-sense)
44
+ * [Late Policy](#late-policy)
45
+ * [Attendance](#attendance)
46
+ * [Behaviour](#behaviour)
47
+ * [Collaboration](#collaboration)
48
+ * [Pet Peeves](#pet-peeves)
49
+ * [Rules for Success](#rules-for-success)
50
+ * [Documentation](#documentation)
51
+ * [Topics](#topics)
52
+ * [Student Understanding and Agreement of Syllabus Terms](#student-understanding-and-agreement-of-syllabus-terms)
53
+
54
+## Course Description
55
+
56
+Discrete mathematical foundations and their relationship to computing.
57
+The foundation of discrete structures, mathematical reasoning,
58
+combinatorics, graphs and trees, Boolean Algebra and logic gates, and
59
+Karnaugh mapping.
60
+
61
+(3 cr. hrs.) (Fall). Prerequisite: MATH 1240 and either (CSCS 1320 or CSCS 2420) or instructor consent. Students cannot receive credit for this course and MATH 2330.
62
+
63
+## Course Objectives
64
+Upon successful completion of this course, students will be able to:
65
+
66
+ * Simplify program control flow by applying Boolean algebraic identities
67
+to reduce the complexity of conditional logic.
68
+
69
+ * Implement low-level data manipulations using bitwise operations to
70
+manage binary states, masks, and flags.
71
+
72
+ * Apply recursive definitions and iterative logic to solve
73
+self-referential problems and manage hierarchical data processes.
74
+
75
+ * Utilize modular arithmetic and number theory concepts to develop
76
+efficient algorithms for data indexing and manipulation.
77
+
78
+ * Translate formal logical propositions into executable code to ensure
79
+rigorous validation of system constraints and user inputs.
80
+
81
+ * Evaluate algorithmic scaling and resource consumption by applying
82
+counting principles and growth rate analysis to code structures.
83
+
84
+ * Model discrete relationships between data elements using set theory to
85
+optimize searching, filtering, and organizational logic.
86
+
87
+ * Verify the correctness of software modules by constructing logical
88
+models that test all possible execution paths and state transitions.
89
+
90
+## Assumptions
91
+
92
+There are many great opportunities for realization and insight ahead, but
93
+there are also many obstacles standing in the way of you staying on a
94
+path of success. I find that uncommunicated assumptions can play a role
95
+in hampering progress, so please ensure you are suitably read up and
96
+aware of my assumptions coming into the course, along with my assumptions
97
+of your assumptions, playing the role of a studious student seeking
98
+enlightenment.
99
+
100
+Let's also make sure we are on the same playing field by establishing
101
+some definitions:
102
+
103
+**student**: A student is primarily a person enrolled in a school
104
+or other educational institution and who is under learning with
105
+goals of acquiring knowledge, developing professions and facilitating
106
+employment in a particular field. In the broader sense, **a student
107
+is anyone who applies themselves to the intensive intellectual
108
+engagement with some matter necessary to master it** as part of
109
+some practical affair in which such mastery is basic or decisive.
110
+(https://en.wikipedia.org/wiki/Student)
111
+
112
+While a decent definition, I would argue that it falls short by not also
113
+indicating certain things that should be stated, so herein are some
114
+further assumptions:
115
+
116
+A student, entering into the educational environment of a particular
117
+class or degree of study (especially at the undergraduate level where we
118
+reside), **DOES NOT** need to have any prior experience with the subject
119
+matter. That is: if you are taking a course on introductory programming
120
+in a certain language, the student is not expected to know how to program
121
+in that specific language (and depending on prerequisites to the course,
122
+may not even need to know anything about programming at the introductory
123
+level).
124
+
125
+To learn something means you don't know it. Not knowing something,
126
+there's a state of not understanding, and not being aware of what a
127
+particular thing or concept is. A student taking a class to learn
128
+something necessarily needs to be in active pursuit of gaining an
129
+understanding, but is not expecting to come in knowing anything. Learning
130
+is often a mistake-ridden process of bumping around in progressively less
131
+conceptually dark spaces as patterns are sussed out and intuitive
132
+connections are established. We learn best from our mistakes, so a
133
+student that does not make mistakes, or that avoids opportunities to make
134
+mistakes, isn't being a good student.
135
+
136
+Learning is build upon an ever-growing foundation (your life experience
137
+and knowledge, some derivation of society's and civilization's collective
138
+body of experience and knowledge), and to be eligible to take a college
139
+class, yes, SOME prerequisite knowledge is assumed, namely:
140
+
141
+ * you are functionally literate in English
142
+ * you know how to and can/will read (input/consume)
143
+ * you know how to and can/will write (output/create/produce)
144
+ * you know how to and can/will do math/computations
145
+ * you know how to and can/will think
146
+ * you know how to and can/will ask questions
147
+
148
+A student's (or learner's) absolute BEST tool is the question,
149
+specifically the regular asking of them. You **NEED** to be regularly
150
+engaging yourself and the class with questions, and responses to
151
+questions. No two people perceive something the same exact way.
152
+One explanation is not ideal for every individual. If an available
153
+explanation falls short with respect to being clarifying or promoting
154
+understanding, you should ask a question. If an available explanation is
155
+clarifying, but then upon further thought creates confusion or makes you
156
+wonder about other, potentially related things: YOU SHOULD ALSO ASK a
157
+question.
158
+
159
+The benefit of authentic education is that it transitions one from a
160
+state of predominantly not knowing what they don't know, to a state where
161
+while they may know that they know more than they did before, also then
162
+cultivates an important perception of then KNOWING that they don't know
163
+even more things.
164
+
165
+Education isn't about certainty or comfort in attaining a set of facts
166
+and calling it quits: It is about coming to terms with the endless
167
+uncertainty of possible things that can be pursued or known. We can never
168
+know everything, but we CAN know that we can never know everything. We
169
+instead strive for a functioning subset where we learn enough to give us
170
+a foundation in the present, and consistently keep learning (although
171
+hopefully less so exclusively in a classroom as time goes by, but
172
+instead by the individual having gained enough experience to become a
173
+self-learner) to keep up with the demands of tomorrow.
174
+
175
+So, as a student learner embarking upon and taking this class, know that
176
+I don't assume you know anything about the course you are taking, and
177
+that you will be reading and thinking and doing and computing and asking
178
+questions regularly so that by the conclusion of the course, you will
179
+have some greater idea of the nature of what was encountered in the
180
+class.
181
+
182
+If you don't want to ask questions, for whatever reason, nor want to
183
+bother with expanding your horizons, in learning new and different
184
+concepts and ways of doing things (ie you want to remain small and
185
+stagnant), then I would urge you to reconsider taking this course: it is
186
+NOT a daycare to keep your mind and hands pacified. It is an educational
187
+environment where you will be tasked to grow and improve.
188
+
189
+## Course Materials
190
+
191
+ * Discrete Math and Its Applications by Kenneth H. Rosen (hardcover)
192
+ ISBN: 9781266045479
193
+
194
+## Technology Policy
195
+
196
+The baseline qualifications for taking this course include you having a
197
+proficiency:
198
+
199
+ * to type on a full-size computer keyboard (104-key or equivalent)
200
+ * with basic computing concepts (files, storage, units of information)
201
+ * to read instructions and available technical data in relevant theatres and domains
202
+
203
+... and an ability:
204
+
205
+ * to readily ask questions
206
+ * to take notes and later retrieve useful information from them
207
+ * to recall important concepts and experiences
208
+ * to work on class-related content outside of class
209
+
210
+... and a willingness:
211
+
212
+ * to attempt solving new and unfamiliar problems
213
+ * to encounter new and unfamiliar concepts
214
+ * to indulge in new and unfamiliar activities
215
+ * to learn in new and unfamiliar ways
216
+ * to work on class-related content outside of class
217
+
218
+## AI use policy
219
+
220
+With the advent of commercially-viable and desktop-usable AI products
221
+(AI/AGI/chatGPT/LLMs/etc.), heretofore all regarded as "AI", questions of
222
+ethics and allowability of such tools in the learning process have become
223
+a rather hot topic. For the purposes of my classes:
224
+
225
+AI use is **not** recommended; you would be better off at this stage not
226
+even touching it.
227
+
228
+AI is a powerful tool for productivity, yet when used prior to
229
+solid understanding of the concepts and information being transacted,
230
+ultimately suffer and stagnate.
231
+
232
+You should aim to understand and know how to do things yourself, by
233
+hand/manually. This allows you to better vet AI output, not to mention
234
+better leverage various automation technologies.
235
+
236
+During this learning process, do as much of the task as you can by hand
237
+or mentally: this is how you gain understanding and comprehension. This
238
+allows you to better vet AI output.
239
+
240
+If you insist on using AI, you hereby acknowledge you assume
241
+responsibility for its inherent perils and hazards it can cause you and
242
+your progress/success in this class:
243
+
244
+ * accept that you are putting yourself at risk of deeply sabotaging your learning journey, subjecting yourself to stagnant thought and limited perspectives, as you insulate yourself from the rigors of doing the actual work
245
+
246
+ * accept that you will have to live with the awareness that the instructor and other suitably aware individuals in the course may lose some faith in your humanity
247
+
248
+ * accept that, if you pass off AI-generated work as your own, and your work is questioned, **if you are unable to competently demonstrate your understanding, you risk losing any and all credit for that deliverable**
249
+
250
+ * YOU are the student, YOU are the one here to do the work and learn.
251
+
252
+AI prose is increasingly sophisticated and convincing. Yet there is a
253
+difference between verbosity and competence. Learning to differentiate
254
+between them is a valuable life skill, and an important ability to have
255
+when dealing with AI output.
256
+
257
+## Grading Policy
258
+
259
+The grading policy is broken down into 4 areas, totalling 104 points
260
+(which will account for 100% of the grade):
261
+
262
+ * Notes/Journal/Writing (13pts)
263
+ * Projects (52pts)
264
+ * Participation (13pts)
265
+ * EoCE (26pts).
266
+
267
+Each area, as well as the overall grade, will be evaluated based on a sum
268
+of accumulated points on each projects out of a sum of total points on
269
+each project (as opposed to a sum of averages on each project). This
270
+totaling tends to favor those who consistently do work throughout the
271
+semester, and I want to reward that.
272
+
273
+In addition, for each third to quarter of the class (at instructor's
274
+discretion), there will be a possibility of a **knowledge assessment**,
275
+the results of which will serve as a credit multiplier to any points
276
+accrued (ranging from 0.00-1.00). That means: if you skip or bomb the
277
+knowledge assessment, all your accrued points for that segment of the
278
+course are multiplied by 0.00, and that is the resultant credit that is
279
+factored into your grade.
280
+
281
+While the term 'percent' may be used, it is more appropriate to consider
282
+it a 'percent-oh-four', as the word 'percent' refers to PER each CENT
283
+(100). We are dealing not with 100s, but 104s.
284
+
285
+Also: with the possible exception of the project component, any
286
+accumulated point excesses will be capped at the allocation per that
287
+grading unit.
288
+
289
+### Letter Grades
290
+
291
+Letter grades are pegged to the following numeric values:
292
+
293
+ * **A** (98.00+)
294
+ * **A-** (92.00-97.99)
295
+ * **B+** (86.00-91.99)
296
+ * **B** (80.00-85.99)
297
+ * **B-** (74.00-79.99)
298
+ * **C+** (68.00-73.99)
299
+ * **C** (62.00-67.99)
300
+ * **D** (56.00-61.99)
301
+ * **F** ( 0.00-55.99)
302
+
303
+Any calculated values in excess of two decimal places that may impact the
304
+result is at the sole evaluatory discretion of the instructor (for
305
+example, getting a 92.997; if you've been a pleasant, decent human being,
306
+I may do you a favor. Just sayin'). Application of any 'rounding' or
307
+other result processing is also at the sole discretion of the instructor.
308
+
309
+Bonus points, if given/available, are applied to a particular grade
310
+component (for example, a project bonus point will only pad the projects
311
+component of the grade), and then only up to a maximum of that grade
312
+component's total value (ie, one cannot use bonus points to exceed the 13
313
+possible overall points on the journal, or participation, for example).
314
+
315
+In addition, some further constraints pertaining to bonus point
316
+eligibility:
317
+
318
+Bonus projects that are due the same week as a for-credit project will
319
+only be considered if the for-credit project was actually turned in.
320
+
321
+Bonus projects that are due the same week as a for-credit project will
322
+only be considered if the for-credit project had a final evaluated result
323
+of greater than or equal to 52%.
324
+
325
+Bonus points from early submission of a for-credit project will only be
326
+applied if the for-credit project had a final evaluated result of greater
327
+than or equal to 52%.
328
+
329
+**NOTE**: bonus projects or other extra credit items are **not** eligible
330
+for early submission bonuses.
331
+
332
+### Course Notes
333
+
334
+Accomplishing the assigned tasks represents only part of the educational
335
+experience. A vital part of learning involve understanding and thinking.
336
+Writing is perhaps the best tool we have of capturing thought.
337
+
338
+In each course, as appropriate, there will be an on-going, weekly
339
+class-collaborative documentation, in the form of coursenotes or some
340
+related endeavour where the aim will be to assemble a coherent,
341
+informative document providing insight what went on in class / improved
342
+presentation of some class resource.
343
+
344
+While collaborative in nature, each individual will be evaluated based on
345
+number of commits and quantity of content contributed. While class or
346
+resource topics may vary from week to week, look to contribute at least
347
+256 words of informative, relevant content for consideration of full
348
+credit in this category.
349
+
350
+### Projects
351
+
352
+Projects constitute the portion of your grade involving activities you
353
+perform in the name of experiencing and demonstrating knowledge in this
354
+class- the means by which I will be assessing your understanding of the
355
+material through directed explorations of various topics. Such projects
356
+may be comprehensive to one another.
357
+
358
+In some cases, depending on the situations involved, a project may be
359
+conducive for group-based collaboration. This is not the default case,
360
+but is specified on a case-by-case basis. In such scenarios, all involved
361
+group members should be identified prior to starting on the project.
362
+Additionally, ALL group members in a collaborative situation must perform
363
+fairly equivalent work output into the completion of the project.
364
+Deficient members may experience reduced success.
365
+
366
+In accordance with the late policy, projects past their deadline will see
367
+a late penalty of 33% levied per day. This is to mitigate procrastination
368
+and encourage better time management, and also to ensure progress
369
+continues- once we hit the third day, a past due project is no longer
370
+worth any credit, so it behooves everyone to stay on top of assigned work
371
+and to complete it by its respective deadline. To clarify, if a project
372
+is due by the end of Wednesday, it would be 33% late Thursday (1 day
373
+late), 66% late Friday (2 days late), 100% late once it becomes Saturday
374
+(3+ days late).
375
+
376
+### Participation
377
+
378
+Maintaining an ever present effort in your journey with respect to being
379
+present for class gatherings and making such effort known is an important
380
+aspect to academic interactions.
381
+
382
+For class (no matter the setting), you are to show your effort through
383
+demonstrating regular interactive activity on lab46 and related class
384
+resources (discord, repository). Emphasis will be on communications
385
+taking place with the entire class (the class discord chat).
386
+
387
+Participating in class interactions is of significant importance.
388
+Participation is like the "I care" component of your grade. If you care
389
+enough to learn and help enhance the experience, you will have no trouble
390
+here. If you are disruptive or are not putting forth effort, however,
391
+then it will be duly reflected.
392
+
393
+Weekly participation may link directly to overall credit received on
394
+weekly projects! Do not be silent and in the shadows- ask questions and
395
+be interactive with the class!
396
+
397
+Each week, you have the ability to earn participation credit by
398
+performing various activities (for some amount of points per week, likely
399
+reflective of week and progression of semester). The particular **wcp#**
400
+projects will detail the specific attributes and points available (and
401
+needed) for a particular week.
402
+
403
+I would encourage you to vary your participation activities from week to
404
+week, especially as no one single activity will eventually be enough to
405
+cover the entirety of your weekly participation requirements.
406
+
407
+If you anticipate missing a class, please notify me in advance. While you
408
+may still lose applicable participation credit, the advance notice will
409
+be taken into positive consideration.
410
+
411
+### EoCE
412
+
413
+As the semester starts wrapping up, the End of Course Experience (EoCE)
414
+will be released.
415
+
416
+Intended as a sort of comprehensive project(s), its aim is to evaluate
417
+your knowledge gained from the class this semester. Unlike other classes
418
+which have a "Final Exam", the EoCE is meant to be an EXPERIENCE, and as
419
+such celebrated across the land. If you're new to my classes, you'll see
420
+those with prior experience jump for joy at the thought of an EoCE (the
421
+twitching / convulsing is merely ecstatic joy that is difficult for the
422
+corporeal body to manifest).
423
+
424
+## Submission Guidelines
425
+
426
+The following are some guidelines to keep in mind when preparing your
427
+work for submission. Not all may always be applicable, to each class, or
428
+even each submission.
429
+
430
+### Digital is best
431
+
432
+Technology is a wonderful thing. It facilitates many of the tasks we'd
433
+otherwise have to do manually by hand.
434
+
435
+The intent here is to make things easy on both you and me.
436
+
437
+So use the technology, and don't just it for the sake of using it-- use
438
+it to make the task at hand easier (ie use the technology available and
439
+sanctioned for the course).
440
+
441
+With that said, some additional aspects to keep in mind:
442
+
443
+ * e-mails were designed to be plain text; don't make them into web pages
444
+ * e-mails should always have an informative subject line
445
+ * if you've got non-text files to include in an e-mail, just attach them
446
+ * you've got many attachments? archive/compress them, attach the archive
447
+ * plain ASCII text (UTF-8) is preferable over any enriched text format
448
+
449
+If appropriate, I also will accept submissions via singing telegram,
450
+airplane banner, crop circles, creative dance, three part rock aria, etc.
451
+so long that I get to witness such creativity, and receive something
452
+which lets me look back on it later (photos, video, transcription on
453
+paper, etc.). Chances are such unique submissions will gain you favorable
454
+considerations.
455
+
456
+### Identification
457
+
458
+Where applicable, be sure to include the following information on any
459
+submission:
460
+
461
+ * Name,
462
+ * Course and Section,
463
+ * Due Date,
464
+ * Assignment # and description,
465
+ * Short abstract describing the purpose of your program / assignment.
466
+
467
+Presentation of this information in a clear and organized fashion will
468
+make your assignment all the easier to read. You may come up with your
469
+own format for the display of this information.
470
+
471
+Any e-mail submissions should have an appropriate subject line. Please
472
+use subjects on all e-mails. This is also very important.
473
+
474
+Leaving off the subject line is like sending a letter without putting a
475
+stamp on it-- it causes someone extra work. And that someone would be me.
476
+So don't do it. Please please please use informative subject lines!
477
+
478
+### Paraphrasing
479
+
480
+For any provided questions, keywords, etc.: identify each question or
481
+selection you are answering by listing or paraphrasing the original
482
+question.
483
+
484
+Do not just give me an answer.
485
+
486
+This is important. I mean it. You don't know how frustrating it is to get
487
+an assignment that just has the answers on it. It takes so much longer to
488
+evaluate.
489
+
490
+I reserve the right to deduct points if you don't do this.
491
+
492
+### Organization
493
+
494
+Keep your programs and assignments organized and easy to read.
495
+
496
+Use a uniform writing style. Messy or unorganized submissions will have
497
+points deducted. Think to yourself: does it look good? Would **you** want
498
+to read this? Take pride in your work.
499
+
500
+These assignments are not just for me to read and grade- you may wish to
501
+incorporate them into a portfolio for use in the future. Making an
502
+investment now could pay off later!
503
+
504
+### Timeliness
505
+
506
+Turn in submissions on time.
507
+
508
+Late submissions will be subject to an appropriate penalty. Circumstances
509
+vary, see the Late Policy for details.
510
+
511
+In many cases, where possible, I do accept resubmissions.
512
+
513
+### Errors
514
+
515
+If you encounter an error while performing some task (and the directions
516
+do not indicate you should be receiving an error), chances are you made a
517
+typo. Consult the class chat, ask someone, or contact me.
518
+
519
+**NOTE**: Submissions containing answers based on user error will be
520
+considered incorrect.
521
+
522
+### Backups
523
+
524
+Be sure to keep a backup copy of all assignments submitted in the event
525
+something is lost in transmission.
526
+
527
+**It is your responsibility to be able to send another copy of your
528
+submission should the original be lost.**
529
+
530
+### Common Sense
531
+
532
+Use your own judgment. The world today is increasingly filled with rules
533
+and policies dictating what you can and cannot do. I am not about to
534
+go and list all the specifics and restrictions regarding assignment
535
+submission.
536
+
537
+You are here to learn and to grow, and I want to allow you a certain
538
+amount of flexibility in that process. Spending all your time formatting
539
+an assignment to my specifications isn't my idea of learning. Incorporate
540
+these guidelines into your general style, if you miss the mark I'll let
541
+you know. But focus more on learning and understanding than worrying
542
+about dotting every 'i' or crossing every 't'. There's enough of that
543
+elsewhere in the world.
544
+
545
+## Late Policy
546
+
547
+Sometimes, even though we try our hardest to get everything in on time,
548
+the spurious Murphy's Law will make an appearance. Your dog ate your
549
+network cable, a burst of cosmic rays damaged your RAM precisely where
550
+your work was located... the list goes on.
551
+
552
+If something is not submitted by its respective due date (or, heaven
553
+forbid, the late window), and no advance attempt has been made to
554
+communicate with me, the assignment will be invalidated of any value.
555
+
556
+Bottom line.. if something is going to be late: let me know. It happens,
557
+just don't make a habit of it. Communication is key.
558
+
559
+Unless otherwise specified, past due assignments will lose 33% credit per
560
+day, rendering them worthless credit-wise after 3 days.
561
+
562
+Please do remember most projects are released **at least** one week in
563
+advance. If you wait until the finals days before the deadline, and
564
+struggle due to lack of time, that isn't grounds for reconsideration of
565
+any deadlines or late penalties. Take the whole time, work away slowly at
566
+it over time, and that will likely lead to far fewer deadline rushes.
567
+
568
+### Attendance
569
+
570
+Attendance plays an important part in one's educational journey each
571
+semester. Missing class deprives you of essential knowledge and hinders
572
+understanding towards your eventual mastering of a topic.
573
+
574
+Because we are all here to learn (and if learning isn't a priority, I
575
+highly suggest you think about making it such), and believe it or not-
576
+learning isn't just about one person, but the entire group. So it is
577
+important to be present in order to positively contribute to the learning
578
+experience.
579
+
580
+I also reserve the right to report absent, or highly tardy students in
581
+the course. In some cases, that could result in being dropped from the
582
+course. On the same token, I reserve the right NOT to report or do
583
+anything to such students. Sometimes failure can be the best teacher.
584
+
585
+### Behaviour
586
+
587
+Should your behaviour in the class be notably and consistently unruly,
588
+off-topic, or alarming, I have the ability to remove you from the class.
589
+
590
+I will likely issue a warning or report (although not necessarily to the
591
+individual- sometimes an administrative reporting is in order to have
592
+them resolve the issue) indicating a desire to have you cease the
593
+particular behaviour, but through continued transgressions, may actually
594
+elevate to forced removal from the class.
595
+
596
+The priority is to the well-being of the class community. I cannot have
597
+individuals derailing that for their own personal gain or purposes.
598
+
599
+## Collaboration
600
+
601
+Because this course is open resource (ie book, computer, note, etc.) I
602
+would like it generally to remain **closed person** and **closed
603
+intelligence** (the thinking done should be your own, not outsourcing it
604
+to some artificial entity). The reason for this is that the amount of
605
+resources available to you are vast, and the goal here is to discover and
606
+learn the material through individual initiative.
607
+
608
+It IS possible to help others without giving away answers.
609
+
610
+Respond to questions with a question, give pointers to where information
611
+might be located in legitimate sources, remind them of the usefulness of
612
+manuals, and the availability of search engines.
613
+
614
+Individuals are allowed and expected, to assist others through the class
615
+chat **WITHOUT GIVING EXPLICIT ANSWERS**, so long as it does not
616
+interfere with any other existing circumstance. If group work is required
617
+on anything, that attribute will be specifically stated.
618
+
619
+Explicit copying on or of any class work is forbidden. If any evidence or
620
+suggestion of non-authentic work is discovered (and I can tell you some
621
+stories) in your particular direction, you risk both my wrath as well as
622
+the possibility of disciplinary action by the school. Academic dishonesty
623
+and plagiarism may be prosecuted under the purview as laid out in the
624
+school's Academic Honesty Policy, as listed under the Code of Student
625
+Conduct: Academic Honesty section in the CCC Course Catalog.
626
+
627
+So just play it safe and make sure your work is your own, and borrowed
628
+information is appropriately cited or referenced.
629
+
630
+## Pet Peeves
631
+
632
+Everyone has their buttons that can be pushed the wrong way. Here are a
633
+few of mine, that I would prefer not encountering:
634
+
635
+The eager, often surface-only desire to destroy things (especially with
636
+no desire to understand the why behind it all).
637
+
638
+The notion that 'old', 'unpopular', 'uncomfortable', or 'different',
639
+especially in terms of technology or experiences, is somehow bad (there
640
+are plenty of useful things to learn, for the patterns will often
641
+remanifest in future technologies down the road)
642
+
643
+Apologizing: "sorry I had to ask a question", "sorry I misunderstood",
644
+"sorry I failed to do that action"; I WANT people to ask questions.
645
+Questions are based on not fully understanding something. And if your
646
+actions come up short, apologies only serve to highlight the deficiency.
647
+The best solution: to fix it and not keep repeating the same mistake.
648
+There may be things worthy of apologizing for. For most incidents of
649
+apology I encounter related to classes, such is irrelevant. If you feel
650
+you are in the wrong for asking a question, you're doing this whole
651
+learning thing wrong.
652
+
653
+Overhelping "the weakest link"; a somewhat modern trend, where I see
654
+woefully unprepared/unready individuals overly assisted through the
655
+course (where the intent is to save them from failing). This is but a
656
+short-term perspective, contributing to their long-term failure.
657
+
658
+Opting out of things that seem overwhelming, yet somehow expecting things
659
+will get better as time goes on.
660
+
661
+The desire to impress me-- impressing comes by being impressive, not
662
+selling an act to me (in short, don't try to impress me, just do your
663
+best work, and have me be impressed by how impressive it naturally is).
664
+
665
+Avoiding the developing/strengthening your own memory and recall, and
666
+relying on others (including the instructor) to be your memory.
667
+
668
+The obsession over and recitation of hardware specs-- this has nothing to
669
+do with computing, yet many mistakenly believe it to be such (a small
670
+aspect of IT and an occasionally fun hobby? sure.)
671
+
672
+The compensation for lack of knowledge by clinging tightly to (perceived)
673
+known knowledge-- I expect everyone not to know things; knowing we don't
674
+know enables us to learn.
675
+
676
+The avoiding of questions out of fear they may not be worthy of asking--
677
+how else can I know where you are if you don't ask?
678
+
679
+The asking for the answer as if it were a question, to avoid thinking or
680
+doing the work yourself. Questions are the a result of your thinking, not
681
+"I don't know, so tell me?", or the worst (literally): "What do I need to
682
+do in order to get an A/full credit?"
683
+
684
+The absolute belief that if I say something then it is the truth (same
685
+for the inverse, converse, contrapositive, etc.)-- being open-minded and
686
+questioning is one of the greatest abilities we can have. Society trains
687
+you to be compliant with external authority at the expense of your own;
688
+to be educated and intelligent, in part, means you have cultivated your
689
+own self-authority so you can make your own decisions.
690
+
691
+The impression that if something is said frequently or confidently
692
+enough, then it must be true, and that makes someone an "expert" who
693
+should be believed, followed, and unquestioned.
694
+
695
+The tendency to brute force through something instead of trying to think
696
+or learn new approaches-- memorizing and regurgitation will often not
697
+work out in your favour here (or greatly annoy me).
698
+
699
+Being tangibly obsessed with knowing your exact grade, while being
700
+uninformed about the process of calculating it yourself from available
701
+information.
702
+
703
+Complaining upstream about me/my class without actually bringing issues
704
+to me first to address.
705
+
706
+Destroying context in asynchronous communications (ie deleting Discord
707
+messages after making a post, asking a question, and getting some sort of
708
+resolution): this makes it entirely unhelpful for others to also benefit,
709
+and leaves gaping holes in the existing conversation. Please do not
710
+delete your Discord messages after getting a response.
711
+
712
+Using AI, and failing to distinguish between your own skills and
713
+knowledge, and what AI is able to produce, treating them as one and the
714
+same. As I've said elsewhere, at this level, you should be avoiding
715
+flagrant AI use, as it can become a fatal crutch, stagnating your
716
+abilities.
717
+
718
+## Rules for Success
719
+
720
+For maximum success in the class, please adhere to the following rules:
721
+
722
+ * start on activities early
723
+ * observe/study, read/intuit, and comprehend the subject matter
724
+ * play/tinker/experiment with the subject matter (external to projects)
725
+ * ask well-informed and copious questions
726
+
727
+Struggle and problems in the course almost immediately arise when one
728
+fails to follow one or more of these guidelines.
729
+
730
+## Documentation
731
+
732
+The following criteria should be kept in mind when contributing content
733
+to collaborative documentation, the course notes, and any pertinent
734
+class-related communications:
735
+
736
+ * Never use a form of a word in its own definition
737
+ * Use external hyperlinks only as citations
738
+ * Content first, then formatting
739
+ * There is only one empire- ours
740
+ * Contribute only original content
741
+ * Paraphrase and cite existing information
742
+ * Do NOT blatantly copy existing information
743
+ * A healthy resource is an active resource
744
+ * Do not focus on just your contributions
745
+ * Mistakes are opportunities for future contributions
746
+
747
+## Topics
748
+
749
+The following is a list of the major topics being covered in this course:
750
+
751
+ * Basic Logic
752
+ * Predicate Calculus
753
+ * Sets
754
+ * Set Operations
755
+ * Induction and Deduction
756
+ * Algorithmic Efficiency
757
+ * Matrix Operations
758
+ * Recursion
759
+ * Counting
760
+ * Combinatorics
761
+ * Relations
762
+ * Graphs
763
+ * Trees
764
+ * Boolean Algebra
765
+ * Theory of Computation
766
+
767
+## Student Understanding and Agreement of Syllabus Terms
768
+
769
+By reading through this document, participating in the class chat,
770
+utilizing class resources, and performing the various class activities
771
+and projects, you understand and consent:
772
+
773
+ * to the rules, policies governing your status as a student at SUNY CCC.
774
+ * to the structure, policies, and nature of the course as laid out here.
775
+ * to having an adequate understanding of course prerequisite knowledge.
776
+ * to maintain a respectful, inquisitive, well-behaved, and learning-oriented focus as you participate and go through the course.
777
+ * to practice (and further cultivate, as needed) the fundamental aspects of a student taking this course, which includes being able and willing:
778
+ * to read, comprehend and work with the material and information inherent to the course.
779
+ * to write and express your thoughts in coherent, descriptive sentences.
780
+ * willing to analyze, problem solve, debug, troubleshoot, ideate, creatively, and logically/rationally think.
781
+ * willing to compute and transact in number concepts (literal, symbolic or abstract) and any related units in their various processes.
782
+ * to, upon facing uncertainty, confusion, or lack of understanding, will ask copious, well-informed, and well-intending questions to clarify your state of understanding.
783
+ * if cause for issue rises, you will bring it to my attention so that it may be best addressed as locally and pertinently as possible to the course and its educational environment.
784
+ * participate in the course with a focus on curiosity, discovering, exploring, learning, and understanding.
785
+ * starting early on deliverables so that ample time is available for discovering, exploring, learning, and asking any questions as needed.
786
+ * that, as a student, a genuine learning experience necessarily involves some level of unfamiliarity, which may invoke discomfort.
787
+ * that your learning and the nature of the course is an inherently asynchronous thing. It is your responsibility to manage your time, so that you can have adequate time to ask questions and accomplish your own tasks.
haas/fall2026/unix.md
... ...
@@ -0,0 +1,883 @@
1
+# fall2026/unix
2
+
3
+# CSCS1730 UNIX/Linux Fundamentals
4
+
5
+## Syllabus / Course Homepage
6
+
7
+| Instructor: | Matthew Haas (haas@corning-cc.edu) |
8
+| Office: | `CHM123` |
9
+| Office Hours: | `T 10:30a-11:35a`, `W 02:00p-02:55p`, `R 10:30a-01:30p` |
10
+| Class Meeting: | CHM123 T 3:15p-5:05p |
11
+| Class DESIG: | `unix` |
12
+| Class Chat: | `#unix` on discord |
13
+| Public Directory: | `/var/public/fall2026/UNIX` |
14
+| CRN: | `14609` |
15
+| '`W`' Drop Date: | November 1, 2026 |
16
+| ----------------- | -------------------------------------------------------------- |
17
+| DISCORD invite: | [https://discord.gg/8eu3nKjUXX](https://discord.gg/8eu3nKjUXX) |
18
+| Projects page: | [https://lab46.g7n.org/haas/fall2026/unix/projects.md](https://lab46.g7n.org/haas/fall2026/unix/projects.md) |
19
+| CCC Syllabus Statements: | [https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/](https://docs.google.com/document/d/1wAr6S3_1K26iuoQhuIxD-SkpxC8XAPclkDLzBE6maCk/) |
20
+
21
+## Table of Contents
22
+
23
+ * [Course Description](#course-description)
24
+ * [Course Objectives](#course-objectives)
25
+ * [Assumptions](#assumptions)
26
+ * [Course Materials](#course-materials)
27
+ * [Technology Policy](#technology-policy)
28
+ * [AI use policy](#ai-use-policy)
29
+ * [Grading Policy](#grading-policy)
30
+ * [Letter Grades](#letter-grades)
31
+ * [Course Notes](#course-notes)
32
+ * [Projects](#projects)
33
+ * [Participation](#participation)
34
+ * [EoCE](#eoce)
35
+ * [Submission Guidelines](#submission-guidelines)
36
+ * [Digital is best](#digital-is-best)
37
+ * [Identification](#identification)
38
+ * [Paraphrasing](#paraphrasing)
39
+ * [Organization](#organization)
40
+ * [Timeliness](#timeliness)
41
+ * [Errors](#errors)
42
+ * [Backups](#backups)
43
+ * [Common Sense](#common-sense)
44
+ * [Late Policy](#late-policy)
45
+ * [Attendance](#attendance)
46
+ * [Behaviour](#behaviour)
47
+ * [Collaboration](#collaboration)
48
+ * [Pet Peeves](#pet-peeves)
49
+ * [Rules for Success](#rules-for-success)
50
+ * [Documentation](#documentation)
51
+ * [Topics](#topics)
52
+ * [Student Understanding and Agreement of Syllabus Terms](#student-understanding-and-agreement-of-syllabus-terms)
53
+
54
+## Course Description
55
+
56
+UNIX Operating System basics. The primary emphasis of this course will
57
+utilize the command-line environment where students will demonstrate
58
+knowledge in the usage of the UNIX shell by moded editing, shell
59
+scripting, regular expressions, file manipulation, package management,
60
+and related topics.
61
+
62
+Students will also become familiar with the X Window System and
63
+related components such as the X Server, Window Managers, and Desktop
64
+Environments.
65
+
66
+(4 cr. hrs.) (Fall, Spring). Prerequisite: CSCS1240 Structured Problem
67
+Solving (or be taking), or Instructor Consent.
68
+
69
+## Course Objectives
70
+Upon completion of this course, students will be able to:
71
+
72
+ * Analyze the system hierarchy and environment variables to effectively
73
+organize and manage digital resources.
74
+
75
+ * Evaluate system manual pages and technical documentation to
76
+independently resolve syntax challenges and discover advanced utility
77
+features.
78
+
79
+ * Construct functional shell scripts that utilize conditional logic,
80
+iterative loops, and variables to automate repetitive tasks.
81
+
82
+ * Synthesize the "UNIX Philosophy" by linking discrete, single-purpose
83
+utilities through input/output streams to solve complex problems.
84
+
85
+ * Implement sophisticated pattern-matching techniques to search, filter,
86
+and transform text-based information within the command-line interface.
87
+
88
+ * Deconstruct multifaceted technical requirements into a logical
89
+sequence of smaller, programmable steps.
90
+
91
+ * Design reliable automation that incorporates error checking and input
92
+validation to ensure consistent execution.
93
+
94
+ * Apply Open Source principles by producing well-documented and
95
+maintainable code that adheres to collaborative community standards.
96
+
97
+## Assumptions
98
+
99
+There are many great opportunities for realization and insight ahead, but
100
+there are also many obstacles standing in the way of you staying on a
101
+path of success. I find that uncommunicated assumptions can play a role
102
+in hampering progress, so please ensure you are suitably read up and
103
+aware of my assumptions coming into the course, along with my assumptions
104
+of your assumptions, playing the role of a studious student seeking
105
+enlightenment.
106
+
107
+Let's also make sure we are on the same playing field by establishing
108
+some definitions:
109
+
110
+**student**: A student is primarily a person enrolled in a school
111
+or other educational institution and who is under learning with
112
+goals of acquiring knowledge, developing professions and facilitating
113
+employment in a particular field. In the broader sense, **a student
114
+is anyone who applies themselves to the intensive intellectual
115
+engagement with some matter necessary to master it** as part of
116
+some practical affair in which such mastery is basic or decisive.
117
+(https://en.wikipedia.org/wiki/Student)
118
+
119
+While a decent definition, I would argue that it falls short by not also
120
+indicating certain things that should be stated, so herein are some
121
+further assumptions:
122
+
123
+A student, entering into the educational environment of a particular
124
+class or degree of study (especially at the undergraduate level where we
125
+reside), **DOES NOT** need to have any prior experience with the subject
126
+matter. That is: if you are taking a course on introductory programming
127
+in a certain language, the student is not expected to know how to program
128
+in that specific language (and depending on prerequisites to the course,
129
+may not even need to know anything about programming at the introductory
130
+level).
131
+
132
+To learn something means you don't know it. Not knowing something,
133
+there's a state of not understanding, and not being aware of what a
134
+particular thing or concept is. A student taking a class to learn
135
+something necessarily needs to be in active pursuit of gaining an
136
+understanding, but is not expecting to come in knowing anything. Learning
137
+is often a mistake-ridden process of bumping around in progressively less
138
+conceptually dark spaces as patterns are sussed out and intuitive
139
+connections are established. We learn best from our mistakes, so a
140
+student that does not make mistakes, or that avoids opportunities to make
141
+mistakes, isn't being a good student.
142
+
143
+Learning is build upon an ever-growing foundation (your life experience
144
+and knowledge, some derivation of society's and civilization's collective
145
+body of experience and knowledge), and to be eligible to take a college
146
+class, yes, SOME prerequisite knowledge is assumed, namely:
147
+
148
+ * you are functionally literate in English
149
+ * you know how to and can/will read (input/consume)
150
+ * you know how to and can/will write (output/create/produce)
151
+ * you know how to and can/will do math/computations
152
+ * you know how to and can/will think
153
+ * you know how to and can/will ask questions
154
+
155
+A student's (or learner's) absolute BEST tool is the question,
156
+specifically the regular asking of them. You **NEED** to be regularly
157
+engaging yourself and the class with questions, and responses to
158
+questions. No two people perceive something the same exact way.
159
+One explanation is not ideal for every individual. If an available
160
+explanation falls short with respect to being clarifying or promoting
161
+understanding, you should ask a question. If an available explanation is
162
+clarifying, but then upon further thought creates confusion or makes you
163
+wonder about other, potentially related things: YOU SHOULD ALSO ASK a
164
+question.
165
+
166
+The benefit of authentic education is that it transitions one from a
167
+state of predominantly not knowing what they don't know, to a state where
168
+while they may know that they know more than they did before, also then
169
+cultivates an important perception of then KNOWING that they don't know
170
+even more things.
171
+
172
+Education isn't about certainty or comfort in attaining a set of facts
173
+and calling it quits: It is about coming to terms with the endless
174
+uncertainty of possible things that can be pursued or known. We can never
175
+know everything, but we CAN know that we can never know everything. We
176
+instead strive for a functioning subset where we learn enough to give us
177
+a foundation in the present, and consistently keep learning (although
178
+hopefully less so exclusively in a classroom as time goes by, but
179
+instead by the individual having gained enough experience to become a
180
+self-learner) to keep up with the demands of tomorrow.
181
+
182
+So, as a student learner embarking upon and taking this class, know that
183
+I don't assume you know anything about the course you are taking, and
184
+that you will be reading and thinking and doing and computing and asking
185
+questions regularly so that by the conclusion of the course, you will
186
+have some greater idea of the nature of what was encountered in the
187
+class.
188
+
189
+If you don't want to ask questions, for whatever reason, nor want to
190
+bother with expanding your horizons, in learning new and different
191
+concepts and ways of doing things (ie you want to remain small and
192
+stagnant), then I would urge you to reconsider taking this course: it is
193
+NOT a daycare to keep your mind and hands pacified. It is an educational
194
+environment where you will be tasked to grow and improve.
195
+
196
+## Course Materials
197
+
198
+ * Raspberry Pi kit with accessories
199
+
200
+NOTE: while the Raspberry Pi is recommended, the core requirement is that
201
+you have a dedicated Linux box for performing your class work. This can
202
+be in the form of a spare machine or virtual machine. But as no prior
203
+experience is needed coming into the class, the Raspberry Kit has the
204
+blessing of course support.
205
+
206
+## Technology Policy
207
+
208
+The baseline qualifications for taking this course include you having a proficiency:
209
+
210
+ * to type on a full-size computer keyboard (104-key or equivalent)
211
+ * with basic computing concepts (files, storage, units of information)
212
+ * to read instructions and available technical data in relevant theatres and domains
213
+
214
+... and an ability:
215
+
216
+ * to readily ask questions
217
+ * to take notes and later retrieve useful information from them
218
+ * to recall important concepts and experiences
219
+ * to work on class-related content outside of class
220
+
221
+... and a willingness:
222
+
223
+ * to attempt solving new and unfamiliar problems
224
+ * to encounter new and unfamiliar concepts
225
+ * to indulge in new and unfamiliar activities
226
+ * to learn in new and unfamiliar ways
227
+ * to work on class-related content outside of class
228
+
229
+## AI use policy
230
+
231
+With the advent of commercially-viable and desktop-usable AI products
232
+(AI/AGI/chatGPT/LLMs/etc.), heretofore all regarded as "AI", questions of
233
+ethics and allowability of such tools in the learning process have become
234
+a rather hot topic. For the purposes of my classes:
235
+
236
+AI use is **not** recommended; you would be better off at this stage not
237
+even touching it.
238
+
239
+AI is a powerful tool for productivity, yet when used prior to
240
+solid understanding of the concepts and information being transacted,
241
+ultimately suffer and stagnate.
242
+
243
+You should aim to understand and know how to do things yourself, by
244
+hand/manually. This allows you to better vet AI output, not to mention
245
+better leverage various automation technologies.
246
+
247
+During this learning process, do as much of the task as you can by hand
248
+or mentally: this is how you gain understanding and comprehension. This
249
+allows you to better vet AI output.
250
+
251
+If you insist on using AI, you hereby acknowledge you assume
252
+responsibility for its inherent perils and hazards it can cause you and
253
+your progress/success in this class:
254
+
255
+ * accept that you are putting yourself at risk of deeply sabotaging your learning journey, subjecting yourself to stagnant thought and limited perspectives, as you insulate yourself from the rigors of doing the actual work
256
+
257
+ * accept that you will have to live with the awareness that the instructor and other suitably aware individuals in the course may lose some faith in your humanity
258
+
259
+ * accept that, if you pass off AI-generated work as your own, and your work is questioned, **if you are unable to competently demonstrate your understanding, you risk losing any and all credit for that deliverable**
260
+
261
+ * YOU are the student, YOU are the one here to do the work and learn.
262
+
263
+AI prose is increasingly sophisticated and convincing. Yet there is a
264
+difference between verbosity and competence. Learning to differentiate
265
+between them is a valuable life skill, and an important ability to have
266
+when dealing with AI output.
267
+
268
+## Grading Policy
269
+
270
+The grading policy is broken down into 4 areas, totalling 104 points
271
+(which will account for 100% of the grade):
272
+
273
+ * Notes/Journal/Writing (13pts)
274
+ * Projects (52pts)
275
+ * Participation (13pts)
276
+ * EoCE (26pts).
277
+
278
+Each area, as well as the overall grade, will be evaluated based on a sum
279
+of accumulated points on each projects out of a sum of total points on
280
+each project (as opposed to a sum of averages on each project). This
281
+totaling tends to favor those who consistently do work throughout the
282
+semester, and I want to reward that.
283
+
284
+In addition, for each third to quarter of the class (at instructor's
285
+discretion), there will be a possibility of a **knowledge assessment**,
286
+the results of which will serve as a credit multiplier to any points
287
+accrued (ranging from 0.00-1.00). That means: if you skip or bomb the
288
+knowledge assessment, all your accrued points for that segment of the
289
+course are multiplied by 0.00, and that is the resultant credit that is
290
+factored into your grade.
291
+
292
+While the term 'percent' may be used, it is more appropriate to consider
293
+it a 'percent-oh-four', as the word 'percent' refers to PER each CENT
294
+(100). We are dealing not with 100s, but 104s.
295
+
296
+Also: with the possible exception of the project component, any
297
+accumulated point excesses will be capped at the allocation per that
298
+grading unit.
299
+
300
+### Letter Grades
301
+
302
+Letter grades are pegged to the following numeric values:
303
+
304
+ * **A** (98.00+)
305
+ * **A-** (92.00-97.99)
306
+ * **B+** (86.00-91.99)
307
+ * **B** (80.00-85.99)
308
+ * **B-** (74.00-79.99)
309
+ * **C+** (68.00-73.99)
310
+ * **C** (62.00-67.99)
311
+ * **D** (56.00-61.99)
312
+ * **F** ( 0.00-55.99)
313
+
314
+Any calculated values in excess of two decimal places that may impact the
315
+result is at the sole evaluatory discretion of the instructor (for
316
+example, getting a 92.997; if you've been a pleasant, decent human being,
317
+I may do you a favor. Just sayin'). Application of any 'rounding' or
318
+other result processing is also at the sole discretion of the instructor.
319
+
320
+Bonus points, if given/available, are applied to a particular grade
321
+component (for example, a project bonus point will only pad the projects
322
+component of the grade), and then only up to a maximum of that grade
323
+component's total value (ie, one cannot use bonus points to exceed the 13
324
+possible overall points on the journal, or participation, for example).
325
+
326
+In addition, some further constraints pertaining to bonus point
327
+eligibility:
328
+
329
+Bonus projects that are due the same week as a for-credit project will
330
+only be considered if the for-credit project was actually turned in.
331
+
332
+Bonus projects that are due the same week as a for-credit project will
333
+only be considered if the for-credit project had a final evaluated result
334
+of greater than or equal to 52%.
335
+
336
+Bonus points from early submission of a for-credit project will only be
337
+applied if the for-credit project had a final evaluated result of greater
338
+than or equal to 52%.
339
+
340
+**NOTE**: bonus projects or other extra credit items are **not** eligible
341
+for early submission bonuses.
342
+
343
+### Course Notes
344
+
345
+Accomplishing the assigned tasks represents only part of the educational
346
+experience. A vital part of learning involve understanding and thinking.
347
+Writing is perhaps the best tool we have of capturing thought.
348
+
349
+In each course, as appropriate, there will be an on-going, weekly
350
+class-collaborative documentation, in the form of coursenotes or some
351
+related endeavour where the aim will be to assemble a coherent,
352
+informative document providing insight what went on in class / improved
353
+presentation of some class resource.
354
+
355
+While collaborative in nature, each individual will be evaluated based on
356
+number of commits and quantity of content contributed. While class or
357
+resource topics may vary from week to week, look to contribute at least
358
+256 words of informative, relevant content for consideration of full
359
+credit in this category.
360
+
361
+### Projects
362
+
363
+Projects constitute the portion of your grade involving activities you
364
+perform in the name of experiencing and demonstrating knowledge in this
365
+class- the means by which I will be assessing your understanding of the
366
+material through directed explorations of various topics. Such projects
367
+may be comprehensive to one another.
368
+
369
+In some cases, depending on the situations involved, a project may be
370
+conducive for group-based collaboration. This is not the default case,
371
+but is specified on a case-by-case basis. In such scenarios, all involved
372
+group members should be identified prior to starting on the project.
373
+Additionally, ALL group members in a collaborative situation must perform
374
+fairly equivalent work output into the completion of the project.
375
+Deficient members may experience reduced success.
376
+
377
+In accordance with the late policy, projects past their deadline will see
378
+a late penalty of 33% levied per day. This is to mitigate procrastination
379
+and encourage better time management, and also to ensure progress
380
+continues- once we hit the third day, a past due project is no longer
381
+worth any credit, so it behooves everyone to stay on top of assigned work
382
+and to complete it by its respective deadline. To clarify, if a project
383
+is due by the end of Wednesday, it would be 33% late Thursday (1 day
384
+late), 66% late Friday (2 days late), 100% late once it becomes Saturday
385
+(3+ days late).
386
+
387
+### Participation
388
+
389
+Maintaining an ever present effort in your journey with respect to being
390
+present for class gatherings and making such effort known is an important
391
+aspect to academic interactions.
392
+
393
+For class (no matter the setting), you are to show your effort through
394
+demonstrating regular interactive activity on lab46 and related class
395
+resources (discord, repository). Emphasis will be on communications
396
+taking place with the entire class (the class discord chat).
397
+
398
+Participating in class interactions is of significant importance.
399
+Participation is like the "I care" component of your grade. If you care
400
+enough to learn and help enhance the experience, you will have no trouble
401
+here. If you are disruptive or are not putting forth effort, however,
402
+then it will be duly reflected.
403
+
404
+Weekly participation may link directly to overall credit received on
405
+weekly projects! Do not be silent and in the shadows- ask questions and
406
+be interactive with the class!
407
+
408
+Each week, you have the ability to earn participation credit by
409
+performing various activities (for some amount of points per week, likely
410
+reflective of week and progression of semester). The particular **wcp#**
411
+projects will detail the specific attributes and points available (and
412
+needed) for a particular week.
413
+
414
+I would encourage you to vary your participation activities from week to
415
+week, especially as no one single activity will eventually be enough to
416
+cover the entirety of your weekly participation requirements.
417
+
418
+If you anticipate missing a class, please notify me in advance. While you
419
+may still lose applicable participation credit, the advance notice will
420
+be taken into positive consideration.
421
+
422
+### EoCE
423
+
424
+As the semester starts wrapping up, the End of Course Experience (EoCE)
425
+will be released.
426
+
427
+Intended as a sort of comprehensive project(s), its aim is to evaluate
428
+your knowledge gained from the class this semester. Unlike other classes
429
+which have a "Final Exam", the EoCE is meant to be an EXPERIENCE, and as
430
+such celebrated across the land. If you're new to my classes, you'll see
431
+those with prior experience jump for joy at the thought of an EoCE (the
432
+twitching / convulsing is merely ecstatic joy that is difficult for the
433
+corporeal body to manifest).
434
+
435
+## Submission Guidelines
436
+
437
+The following are some guidelines to keep in mind when preparing your
438
+work for submission. Not all may always be applicable, to each class, or
439
+even each submission.
440
+
441
+### Digital is best
442
+
443
+Technology is a wonderful thing. It facilitates many of the tasks we'd
444
+otherwise have to do manually by hand.
445
+
446
+The intent here is to make things easy on both you and me.
447
+
448
+So use the technology, and don't just it for the sake of using it-- use
449
+it to make the task at hand easier (ie use the technology available and
450
+sanctioned for the course).
451
+
452
+With that said, some additional aspects to keep in mind:
453
+
454
+ * e-mails were designed to be plain text; don't make them into web pages
455
+ * e-mails should always have an informative subject line
456
+ * if you've got non-text files to include in an e-mail, just attach them
457
+ * you've got many attachments? archive/compress them, attach the archive
458
+ * plain ASCII text (UTF-8) is preferable over any enriched text format
459
+
460
+If appropriate, I also will accept submissions via singing telegram,
461
+airplane banner, crop circles, creative dance, three part rock aria, etc.
462
+so long that I get to witness such creativity, and receive something
463
+which lets me look back on it later (photos, video, transcription on
464
+paper, etc.). Chances are such unique submissions will gain you favorable
465
+considerations.
466
+
467
+### Identification
468
+
469
+Where applicable, be sure to include the following information on any
470
+submission:
471
+
472
+ * Name,
473
+ * Course and Section,
474
+ * Due Date,
475
+ * Assignment # and description,
476
+ * Short abstract describing the purpose of your program / assignment.
477
+
478
+Presentation of this information in a clear and organized fashion will
479
+make your assignment all the easier to read. You may come up with your
480
+own format for the display of this information.
481
+
482
+Any e-mail submissions should have an appropriate subject line. Please
483
+use subjects on all e-mails. This is also very important.
484
+
485
+Leaving off the subject line is like sending a letter without putting a
486
+stamp on it-- it causes someone extra work. And that someone would be me.
487
+So don't do it. Please please please use informative subject lines!
488
+
489
+### Paraphrasing
490
+
491
+For any provided questions, keywords, etc.: identify each question or
492
+selection you are answering by listing or paraphrasing the original
493
+question.
494
+
495
+Do not just give me an answer.
496
+
497
+This is important. I mean it. You don't know how frustrating it is to get
498
+an assignment that just has the answers on it. It takes so much longer to
499
+evaluate.
500
+
501
+I reserve the right to deduct points if you don't do this.
502
+
503
+### Organization
504
+
505
+Keep your programs and assignments organized and easy to read.
506
+
507
+Use a uniform writing style. Messy or unorganized submissions will have
508
+points deducted. Think to yourself: does it look good? Would **you** want
509
+to read this? Take pride in your work.
510
+
511
+These assignments are not just for me to read and grade- you may wish to
512
+incorporate them into a portfolio for use in the future. Making an
513
+investment now could pay off later!
514
+
515
+### Timeliness
516
+
517
+Turn in submissions on time.
518
+
519
+Late submissions will be subject to an appropriate penalty. Circumstances
520
+vary, see the Late Policy for details.
521
+
522
+In many cases, where possible, I do accept resubmissions.
523
+
524
+### Errors
525
+
526
+If you encounter an error while performing some task (and the directions
527
+do not indicate you should be receiving an error), chances are you made a
528
+typo. Consult the class chat, ask someone, or contact me.
529
+
530
+**NOTE**: Submissions containing answers based on user error will be
531
+considered incorrect.
532
+
533
+### Backups
534
+
535
+Be sure to keep a backup copy of all assignments submitted in the event
536
+something is lost in transmission.
537
+
538
+**It is your responsibility to be able to send another copy of your
539
+submission should the original be lost.**
540
+
541
+### Common Sense
542
+
543
+Use your own judgment. The world today is increasingly filled with rules
544
+and policies dictating what you can and cannot do. I am not about to
545
+go and list all the specifics and restrictions regarding assignment
546
+submission.
547
+
548
+You are here to learn and to grow, and I want to allow you a certain
549
+amount of flexibility in that process. Spending all your time formatting
550
+an assignment to my specifications isn't my idea of learning. Incorporate
551
+these guidelines into your general style, if you miss the mark I'll let
552
+you know. But focus more on learning and understanding than worrying
553
+about dotting every 'i' or crossing every 't'. There's enough of that
554
+elsewhere in the world.
555
+
556
+## Late Policy
557
+
558
+Sometimes, even though we try our hardest to get everything in on time,
559
+the spurious Murphy's Law will make an appearance. Your dog ate your
560
+network cable, a burst of cosmic rays damaged your RAM precisely where
561
+your work was located... the list goes on.
562
+
563
+If something is not submitted by its respective due date (or, heaven
564
+forbid, the late window), and no advance attempt has been made to
565
+communicate with me, the assignment will be invalidated of any value.
566
+
567
+Bottom line.. if something is going to be late: let me know. It happens,
568
+just don't make a habit of it. Communication is key.
569
+
570
+Unless otherwise specified, past due assignments will lose 33% credit per
571
+day, rendering them worthless credit-wise after 3 days.
572
+
573
+Please do remember most projects are released **at least** one week in
574
+advance. If you wait until the finals days before the deadline, and
575
+struggle due to lack of time, that isn't grounds for reconsideration of
576
+any deadlines or late penalties. Take the whole time, work away slowly at
577
+it over time, and that will likely lead to far fewer deadline rushes.
578
+
579
+### Attendance
580
+
581
+Attendance plays an important part in one's educational journey each
582
+semester. Missing class deprives you of essential knowledge and hinders
583
+understanding towards your eventual mastering of a topic.
584
+
585
+Because we are all here to learn (and if learning isn't a priority, I
586
+highly suggest you think about making it such), and believe it or not-
587
+learning isn't just about one person, but the entire group. So it is
588
+important to be present in order to positively contribute to the learning
589
+experience.
590
+
591
+I also reserve the right to report absent, or highly tardy students in
592
+the course. In some cases, that could result in being dropped from the
593
+course. On the same token, I reserve the right NOT to report or do
594
+anything to such students. Sometimes failure can be the best teacher.
595
+
596
+### Behaviour
597
+
598
+Should your behaviour in the class be notably and consistently unruly,
599
+off-topic, or alarming, I have the ability to remove you from the class.
600
+
601
+I will likely issue a warning or report (although not necessarily to the
602
+individual- sometimes an administrative reporting is in order to have
603
+them resolve the issue) indicating a desire to have you cease the
604
+particular behaviour, but through continued transgressions, may actually
605
+elevate to forced removal from the class.
606
+
607
+The priority is to the well-being of the class community. I cannot have
608
+individuals derailing that for their own personal gain or purposes.
609
+
610
+## Collaboration
611
+
612
+Because this course is open resource (ie book, computer, note, etc.) I
613
+would like it generally to remain **closed person** and **closed
614
+intelligence** (the thinking done should be your own, not outsourcing it
615
+to some artificial entity). The reason for this is that the amount of
616
+resources available to you are vast, and the goal here is to discover and
617
+learn the material through individual initiative.
618
+
619
+It IS possible to help others without giving away answers.
620
+
621
+Respond to questions with a question, give pointers to where information
622
+might be located in legitimate sources, remind them of the usefulness of
623
+manuals, and the availability of search engines.
624
+
625
+Individuals are allowed and expected, to assist others through the class
626
+chat **WITHOUT GIVING EXPLICIT ANSWERS**, so long as it does not
627
+interfere with any other existing circumstance. If group work is required
628
+on anything, that attribute will be specifically stated.
629
+
630
+Explicit copying on or of any class work is forbidden. If any evidence or
631
+suggestion of non-authentic work is discovered (and I can tell you some
632
+stories) in your particular direction, you risk both my wrath as well as
633
+the possibility of disciplinary action by the school. Academic dishonesty
634
+and plagiarism may be prosecuted under the purview as laid out in the
635
+school's Academic Honesty Policy, as listed under the Code of Student
636
+Conduct: Academic Honesty section in the CCC Course Catalog.
637
+
638
+So just play it safe and make sure your work is your own, and borrowed
639
+information is appropriately cited or referenced.
640
+
641
+## Pet Peeves
642
+
643
+Everyone has their buttons that can be pushed the wrong way. Here are a
644
+few of mine, that I would prefer not encountering:
645
+
646
+The eager, often surface-only desire to destroy things (especially with
647
+no desire to understand the why behind it all).
648
+
649
+The notion that 'old', 'unpopular', 'uncomfortable', or 'different',
650
+especially in terms of technology or experiences, is somehow bad (there
651
+are plenty of useful things to learn, for the patterns will often
652
+remanifest in future technologies down the road)
653
+
654
+Apologizing: "sorry I had to ask a question", "sorry I misunderstood",
655
+"sorry I failed to do that action"; I WANT people to ask questions.
656
+Questions are based on not fully understanding something. And if your
657
+actions come up short, apologies only serve to highlight the deficiency.
658
+The best solution: to fix it and not keep repeating the same mistake.
659
+There may be things worthy of apologizing for. For most incidents of
660
+apology I encounter related to classes, such is irrelevant. If you feel
661
+you are in the wrong for asking a question, you're doing this whole
662
+learning thing wrong.
663
+
664
+Overhelping "the weakest link"; a somewhat modern trend, where I see
665
+woefully unprepared/unready individuals overly assisted through the
666
+course (where the intent is to save them from failing). This is but a
667
+short-term perspective, contributing to their long-term failure.
668
+
669
+Opting out of things that seem overwhelming, yet somehow expecting things
670
+will get better as time goes on.
671
+
672
+The desire to impress me-- impressing comes by being impressive, not
673
+selling an act to me (in short, don't try to impress me, just do your
674
+best work, and have me be impressed by how impressive it naturally is).
675
+
676
+Avoiding the developing/strengthening your own memory and recall, and
677
+relying on others (including the instructor) to be your memory.
678
+
679
+The obsession over and recitation of hardware specs-- this has nothing to
680
+do with computing, yet many mistakenly believe it to be such (a small
681
+aspect of IT and an occasionally fun hobby? sure.)
682
+
683
+The compensation for lack of knowledge by clinging tightly to (perceived)
684
+known knowledge-- I expect everyone not to know things; knowing we don't
685
+know enables us to learn.
686
+
687
+The avoiding of questions out of fear they may not be worthy of asking--
688
+how else can I know where you are if you don't ask?
689
+
690
+The asking for the answer as if it were a question, to avoid thinking or
691
+doing the work yourself. Questions are the a result of your thinking, not
692
+"I don't know, so tell me?", or the worst (literally): "What do I need to
693
+do in order to get an A/full credit?"
694
+
695
+The absolute belief that if I say something then it is the truth (same
696
+for the inverse, converse, contrapositive, etc.)-- being open-minded and
697
+questioning is one of the greatest abilities we can have. Society trains
698
+you to be compliant with external authority at the expense of your own;
699
+to be educated and intelligent, in part, means you have cultivated your
700
+own self-authority so you can make your own decisions.
701
+
702
+The impression that if something is said frequently or confidently
703
+enough, then it must be true, and that makes someone an "expert" who
704
+should be believed, followed, and unquestioned.
705
+
706
+The tendency to brute force through something instead of trying to think
707
+or learn new approaches-- memorizing and regurgitation will often not
708
+work out in your favour here (or greatly annoy me).
709
+
710
+Being tangibly obsessed with knowing your exact grade, while being
711
+uninformed about the process of calculating it yourself from available
712
+information.
713
+
714
+Complaining upstream about me/my class without actually bringing issues
715
+to me first to address.
716
+
717
+Destroying context in asynchronous communications (ie deleting Discord
718
+messages after making a post, asking a question, and getting some sort of
719
+resolution): this makes it entirely unhelpful for others to also benefit,
720
+and leaves gaping holes in the existing conversation. Please do not
721
+delete your Discord messages after getting a response.
722
+
723
+Using AI, and failing to distinguish between your own skills and
724
+knowledge, and what AI is able to produce, treating them as one and the
725
+same. As I've said elsewhere, at this level, you should be avoiding
726
+flagrant AI use, as it can become a fatal crutch, stagnating your
727
+abilities.
728
+
729
+## Rules for Success
730
+
731
+For maximum success in the class, please adhere to the following rules:
732
+
733
+ * start on activities early
734
+ * observe/study, read/intuit, and comprehend the subject matter
735
+ * play/tinker/experiment with the subject matter (external to projects)
736
+ * ask well-informed and copious questions
737
+
738
+Struggle and problems in the course almost immediately arise when one
739
+fails to follow one or more of these guidelines.
740
+
741
+## Documentation
742
+
743
+The following criteria should be kept in mind when contributing content
744
+to collaborative documentation, the course notes, and any pertinent
745
+class-related communications:
746
+
747
+ * Never use a form of a word in its own definition
748
+ * Use external hyperlinks only as citations
749
+ * Content first, then formatting
750
+ * There is only one empire- ours
751
+ * Contribute only original content
752
+ * Paraphrase and cite existing information
753
+ * Do NOT blatantly copy existing information
754
+ * A healthy resource is an active resource
755
+ * Do not focus on just your contributions
756
+ * Mistakes are opportunities for future contributions
757
+
758
+## Topics
759
+
760
+The following is a list of the major topics being covered in this course:
761
+
762
+ * Local vs. Remote resources
763
+ * Client, Host, Node, Peer, Server
764
+ * Types of files
765
+ * Regular
766
+ * Directory
767
+ * Current/Present Working Directory
768
+ * Home Directory
769
+ * Parent Directory
770
+ * Root Directory
771
+ * Traditional Directory Structure
772
+ * location of common utilities
773
+ * Links (Symbolic)
774
+ * Special
775
+ * Manual Pages
776
+ * Manual Sections
777
+ * apropos, man
778
+ * History
779
+ * origins
780
+ * strains of UNIX
781
+ * flavors of Linux
782
+ * lineage, influence
783
+ * File Manipulation
784
+ * Creating
785
+ * Duplication (Copying)
786
+ * Moving
787
+ * Deleting
788
+ * Archiving, Unarchiving
789
+ * Compressing, Uncompressing
790
+ * Encoding, Decoding
791
+ * Encrypting, Decrypting
792
+ * File Access
793
+ * Ownership
794
+ * User, Group, World
795
+ * Permissions
796
+ * Read, Write, Execute/Search
797
+ * UNIX Philosophy
798
+ * Everything is a File
799
+ * Do One Thing, and Do that One Thing Extremely Well
800
+ * Small is Beautiful
801
+ * Text Processing
802
+ * moded editing, vi/vim editor
803
+ * Filtering
804
+ * cat
805
+ * head, tail
806
+ * tr, cut, grep, sed, diff
807
+ * The UNIX Shell
808
+ * variables
809
+ * local, ENVIRONMENT
810
+ * declaring, initializing, accessing
811
+ * <nowiki>$PATH, $HOME, $USER</nowiki>
812
+ * performing arithmetic
813
+ * wildcards
814
+ * quotes
815
+ * expansion
816
+ * variable expansion
817
+ * command expansion
818
+ * tab completion
819
+ * I/O redirection
820
+ * STDIN, STDOUT, STDERR
821
+ * write/overwrite, append
822
+ * hidden/dotfiles
823
+ * Job Control
824
+ * foreground/background(ing) jobs
825
+ * process management
826
+ * viewing status of running processes (ps, top)
827
+ * altering priority of processes (nice)
828
+ * terminating processes (kill, pkill)
829
+ * job scheduling
830
+ * cron, at
831
+ * The UNIX Programming Environment
832
+ * Compiler (gcc), Assembler, Linker, Loader
833
+ * Source Code, Object Code, Binary Code, Library
834
+ * Relationship between UNIX and C
835
+ * Regular Expressions
836
+ * Pattern Matching
837
+ * Pattern Creation
838
+ * Extended Regular Expressions
839
+ * egrep
840
+ * Shell Scripting
841
+ * shabang
842
+ * bash syntax
843
+ * variables
844
+ * I/O
845
+ * selection statements
846
+ * if
847
+ * case
848
+ * loops
849
+ * numeric for loop
850
+ * list-based for loop
851
+ * while
852
+ * arrays
853
+ * functions
854
+ * Networking
855
+ * UNIX Networking Tools
856
+ * ping, ifconfig, traceroute, route, nslookup
857
+ * TCP/IP
858
+ * standards, protocols, RFCs
859
+ * Security
860
+ * groups
861
+ * application of permissions
862
+
863
+## Student Understanding and Agreement of Syllabus Terms
864
+
865
+By reading through this document, participating in the class chat,
866
+utilizing class resources, and performing the various class activities
867
+and projects, you understand and consent:
868
+
869
+ * to the rules, policies governing your status as a student at SUNY CCC.
870
+ * to the structure, policies, and nature of the course as laid out here.
871
+ * to having an adequate understanding of course prerequisite knowledge.
872
+ * to maintain a respectful, inquisitive, well-behaved, and learning-oriented focus as you participate and go through the course.
873
+ * to practice (and further cultivate, as needed) the fundamental aspects of a student taking this course, which includes being able and willing:
874
+ * to read, comprehend and work with the material and information inherent to the course.
875
+ * to write and express your thoughts in coherent, descriptive sentences.
876
+ * willing to analyze, problem solve, debug, troubleshoot, ideate, creatively, and logically/rationally think.
877
+ * willing to compute and transact in number concepts (literal, symbolic or abstract) and any related units in their various processes.
878
+ * to, upon facing uncertainty, confusion, or lack of understanding, will ask copious, well-informed, and well-intending questions to clarify your state of understanding.
879
+ * if cause for issue rises, you will bring it to my attention so that it may be best addressed as locally and pertinently as possible to the course and its educational environment.
880
+ * participate in the course with a focus on curiosity, discovering, exploring, learning, and understanding.
881
+ * starting early on deliverables so that ample time is available for discovering, exploring, learning, and asking any questions as needed.
882
+ * that, as a student, a genuine learning experience necessarily involves some level of unfamiliarity, which may invoke discomfort.
883
+ * that your learning and the nature of the course is an inherently asynchronous thing. It is your responsibility to manage your time, so that you can have adequate time to ask questions and accomplish your own tasks.