1 | --- |
2 | type: article |
3 | identifier: uiuc-cs-education |
4 | title: Introductory computer science education at UIUC |
5 | description: A list of grievances regarding the CS program, primarily the introductory course, CS 124, at University of Illinois Urbana-Champaign. |
6 | datestring: 2023-03-15 |
7 | banner_image: /static/images/uiuc_bardeen_quad.jpg |
8 | links: |
9 | Email chain, reverse chronology, including letter to HLC: /static/documents/uiuc-cs-complaints.pdf |
10 | CS 124 syllabus: https://web.archive.org/web/20230221111124/https://www.cs124.org/syllabus/Spring2023 |
11 | ECE 120, a better CS course than "Intro to CS I": https://ece.illinois.edu/academics/courses/ece120 |
12 | --- |
13 |
|
14 | This is a list of grievances regarding the CS program, in particular CS 124, |
15 | "Intro to Computer Science I", the required introductory CS course, at |
16 | University of Illinois Urbana-Champaign. Under advisement of several software |
17 | engineering professionals, I wrote a letter concerning these grievances, sent |
18 | to: |
19 |
|
20 | - **Jonathan Makela** (Associate Dean for Undergraduate Programs, *The Grainger College of Engineering*) |
21 | - **Nancy Amato** (Department Head, *Department of Computer Science*) |
22 | - **Margaret Fleck** (Director of Undergraduate Programs, *Department of Computer Science*) |
23 | - **Eric Shaffer** (Associate Director of Undergraduate Programs, *Department of Computer Science*) |
24 | - **Geoffrey Challen** (Professor, *CS 124*) |
25 |
|
26 | I'm publishing this following decided inaction from the CS department and |
27 | Grainger College of Engineering regarding these valid grievances. As a student |
28 | paying exorbitant amounts of money for a high-quality education, it's my |
29 | responsibility to hold the university accountable for unfairness and |
30 | low-quality instruction out of line with their purported ideals. |
31 |
|
32 | <figcaption>Unfortunately, universities can often get away with shoddy quality |
33 | like this because students don't know what they don't know. How can someone |
34 | authoritatively make judgements on course and content quality without extensive |
35 | prior knowledge and experience with the subject? CS 124 has been like this for |
36 | several years now, and I'm sure if I weren't forced into CS 124 it probably |
37 | would've been several more years before anyone made a serious formal |
38 | complaint.</figcaption> |
39 |
|
40 | ## Grievances |
41 |
|
42 | The following is a summary of the grievances outlined in the original letter. |
43 |
|
44 | ### Grievance 1: Method of delivery, value of the course |
45 |
|
46 | CS 124, considered "traditional delivery", is entirely online and has no |
47 | lectures, discussions, or labs, and quizzes are proctored remotely over Zoom. |
48 | Stripping away in-person interaction between students deprives them of |
49 | development of real world communication and team building skills. Additionally, |
50 | the professor exposes the same course materials on the Internet for free. The |
51 | course is required of CS majors, and there is no deduction in tuition in |
52 | accordance with the low-quality online-only format. |
53 |
|
54 | ### Grievance 2: Name-content disparity, validity as a CS course, and status as a program requirement |
55 |
|
56 | CS 124, "Intro to Computer Science I", is dishonestly named and advertised as a |
57 | computer science course when it is, in fact, not. It would be more aptly named |
58 | "Intro to Java Programming" (there is a difference between computer science and |
59 | computer programming). The course inadequately covers the theory, math, and |
60 | architecture of computers and computer programs, i.e. real computer science. |
61 | Students will not fully understand the ramifications of the code they write. |
62 | There is little justification for explicitly declaring it a computer science |
63 | course or requiring it of incoming CS majors. |
64 |
|
65 | <figcaption>Ironically, |
66 | <a href="https://courses.illinois.edu/schedule/2023/fall/ECE/120">ECE 120</a> and |
67 | <a href="https://courses.illinois.edu/schedule/2023/fall/ECE/220">220</a> are better CS |
68 | courses than "Intro to Computer Science I".</figcaption> |
69 |
|
70 | ### Grievance 3: Choice of programming language |
71 |
|
72 | CS 124 is taught and tested in Java, a computer programming language |
73 | unconducive to learning computer science, and is the only course in the UIUC CS |
74 | sequence that uses Java. A student may have extensive prior programming |
75 | experience (the case for many CS majors) but may be forced to take the course |
76 | if they don't know Java—the programming language tested on the proficiency |
77 | exam—making the course little more than a hindrance to higher education. |
78 |
|
79 | --- |
80 |
|
81 | **In essence, beginning the Computer Science main sequence with this course as |
82 | it is now is nothing but a disservice to students paying tens of thousands for |
83 | a high-quality education. CS 124 needs to transition to in-person delivery and |
84 | needs to be turned into an actual CS course that uses C or C++, akin to |
85 | [128](https://courses.illinois.edu/schedule/2023/fall/CS/128). Otherwise, the |
86 | course should be redesignated as an explicit intro programming course (e.g. |
87 | "Java Programming") and made "optional but recommended" of main sequence CS |
88 | students.** |
89 |
|
90 | ## Official Response |
91 |
|
92 | The very long-winded nonresponse I received from Associate Dean Makela and |
93 | Professor Challen are to the following effect for each grievance: |
94 |
|
95 | 1. The switch to the all-online delivery method was made during the COVID |
96 | pandemic and it was kept afterwards for CS 124 because the course |
97 | coordinators were comfortable with it, and student performance improved by |
98 | most metrics. There are a variety of course delivery methods utilized within |
99 | the university and more than enough resources are provided for CS 124. |
100 | 2. Teaching real computer science in CS 124 would make the course far too |
101 | difficult for students, and real computer science is outside the scope of an |
102 | introductory course. |
103 | 3. C/C++ are too hard for CS students to learn, and Java and Kotlin are |
104 | provided to students to offer exposure to more programming languages. If a |
105 | student doesn't want to take the course, they should just learn Java to test |
106 | out of the course. Also, the course instructor really likes Kotlin. |
107 |
|
108 | The only real action taken was the opening of booked locations on campus during |
109 | quiz times, even though the quiz is still proctored over Zoom. Several |
110 | concerns raised in the first email remain unaddressed. The official response |
111 | (or lack of response) to these matters is highly unsatisfactory and leads me to |
112 | question the competency and integrity of the institution. |
113 |
|
114 | To the official responses, I offer the following rebuttals: |
115 |
|
116 | 1. Most other courses have returned to in-person delivery without a hitch and |
117 | there is no reason why the CS department can't do the same. Improvement in |
118 | student performance is easily attributable to plagiarism, or the lack of |
119 | academic/institutional integrity. The response does not address the concern |
120 | regarding professional development, or quality expectations given course |
121 | pricing. |
122 | 2. Many students entering the CS program already have a good idea of how |
123 | computers and computer programs work, or have written code prior. Holding |
124 | back on exposing students to foundational computer systems knowledge hurts |
125 | them in the long run as it forces them to internalize facts and methods of |
126 | computer programming without underlying explanation—akin to having students |
127 | try to learn calculus without prior knowledge of algebra—and forces them to |
128 | later readjust their understandings of the subject when they are exposed to |
129 | those fundamentals. The rationale for teaching "introductory computer |
130 | science" in this highly abstracted manner is the result of the pervasion of |
131 | the myth than anyone can or should learn to write code, even though software |
132 | engineering and computer science are—and should be—highly specialized |
133 | fields. The justification for teaching the course in the manner of a |
134 | computer programing course is weak, and the dishonesty of calling it a |
135 | computer science course remains unaddressed. Even as a computer programming |
136 | course, the course is pitiful and clearly not worth what is paid in tuition. |
137 | 3. A lot goes into learning a computer programming language, even if you have |
138 | already written code and understand computer science concepts. If the course |
139 | isn't explicitly a programming course, the expectation that a student should |
140 | learn an entire programming language to take a proficiency exam is |
141 | completely absurd, especially when no other course in the program requires |
142 | it. Regardless, Java/Kotlin aren't great choices for teaching computer |
143 | science because they are not analogs to machine code like C/C++ are; a lot |
144 | of what the programmer writes is highly abstracted and handled behind the |
145 | scenes, especially in the case of Kotlin. |
146 |
|
147 | ## Closing |
148 |
|
149 | In an attempt to encourage action, these concerns have been forwarded to the |
150 | Higher Learning Commission, the organization that grants accreditation status |
151 | to UIUC. You can find a PDF with the email chain (which much of this article is |
152 | adapted from), in reverse chronological order, including the complaint sent to |
153 | the HLC, [here](/static/documents/uiuc-cs-complaints.pdf). It contains most of |
154 | what's detailed here, along with some extra documentation. |
155 |
|
156 |
|
157 |
|