CSCI 0200 finds its place as a new introductory course requirement
This semester, CSCI 0200: “Program Design with Data Structures and Algorithms” was introduced as a new final course in the Department of Computer Science’s undergraduate introductory sequence.
In previous years, students could choose between two alternative courses – CSCI 0160: “Introduction to Algorithms and Data Structures” and CSCI 0180: “Computer Science: An Integrated Introduction” – to complete the second half of the sequence of introduction of concentration. CSCI 0200, taught by computer science research professor Kathi Fisler and computer science lecturer Milda Zizyte, effectively merged these two options.
Creation of the CSCI 0200: The initial inspiration
According to Fisler, the rationale for implementing CSCI 0200 was twofold.
About three years ago, the IT department “noticed the similarities (between CSCI 0160 and CSCI 0180) and started… working on the changes together,” Fisler said.
In recent years, the content between the introductory courses was increasingly similar, and both classes required “similar modernization” to ensure that all students had knowledge of data structures, socially-oriented computing. responsible and software development practices, Fisler said.
“There were certain things that all students had to see,” she added, “but none of the courses really did (that) justice.”
Computer science professor Andy van Dam added that another problem with the department’s original introductory sequence was that CSCI 0160 and CSCI 0180 were only offered once a year, “traditionally … (during of the) second semester”.
Fisler said this structure creates a “bottleneck effect” in which students could be left behind if they cannot take CSCI 0160 and CSCI 0180 classes in the spring.
Van Dam noted that the department did not have enough faculty to teach CSCI 0160 and CSCI 0180 both semesters. By consolidating the courses into one, van Dam said CSCI 0200 could be offered every semester.
Course content and structure
According to Fisler, CSCI 0200 uses both Java and Python, teaching object-oriented and functional programming skills.
We “began the course by pointing out that there are… two streams of thought that emerged in the 1960s,” Fisler said. One used computers to mimic the decision-making that led to the rise of functional programming, and the other simulated real physical systems that led to the rise of object-oriented programming, a- she added.
“Real systems need both,” Fisler said. “You both have to model knowledge and…simulate practices and calculations. »
The hope is that students leaving CSCI 0200 will be “multicultural, multilingual, multidisciplinary…and comfortable with the right tool for the right job,” van Dam said.
Students enter CSCI 0200 from a range of introductory class backgrounds. Some have taken CSCI 0150: “Introduction to Object-Oriented Programming and Computer Science,” which is grounded in object-oriented programming, while others have taken CSCI 0111: “Computing Foundations: Data,” CSCI 0112: “ Computing Foundations: Program Organisation” or CSCI 0170: “Computer Science: An Integrated Introduction”, which include more functional programming.
Get The Herald delivered to your inbox daily.
To account for these differences in experience, the first two weeks of the class are split into two parallel tracks, according to Zizyte.
“I think it was beneficial to do (both tracks) just because the students come from such different backgrounds (and) there were different things we wanted to catch up with them on,” Zizyte said.
Some CSCI 0200 students said the first two weeks were overwhelming, but noted that the staff were incredibly supportive and flexible.
“I definitely learned a lot, but it was in a rush because they had to try to fit a bunch of material from the opposite intro track into just…a few lectures,” Karma Selsey ’24 said.
“Switching from one programming language to another… so early in the semester is definitely a bit confusing and (can sometimes) get in the way of really learning programming concepts because we spend so much time trying to familiarize ourselves with the syntax,” said Nadya Tan ‘24.5.
Still, Tan said faculty have been “accommodating” with unforeseen challenges that arise due to the difficulty of assignments and course logistics. “The teachers (are) really trying their best…and adjusting to the fact that it’s a new course and there are a lot of bumps in the road,” Tan said.
In addition to teacher supervision, the class was assisted by “a huge army of technical assistants,” Isha Ponugoti ’24 said. CSCI 0200 currently has 468 students enrolled, according to [email protected] There are 63 TA personnel, according to Annie Cimack ’23, TA manager for CSCI 0200.
“Because the CS department maintains (an) eight-to-one TA to student ratio, … you also have a huge TA population,” Zizyte said. “And our technical assistants are phenomenal.”
In order to adapt to different backgrounds, TAs learn the contents of the two parallel tracks for each side during the winter vacation. “We would like the teaching assistants to be able to answer questions from any incoming student…and be as accommodating as possible,” Cimack said.
“Overall, we’re happy with how it’s going,” Fisler said. We’re definitely learning things… We’ve been adjusting as we go, what you do on a new course: stay flexible.