COP 2930: Introduction to Programming Archive


C has been the learning language at UCF for 20 years (2000-2020). Relatively few universities in the United States use C as the first langauge they teach students who have never programmed before. It's been my opinion since about 2010 that C was a poor choice for our learning language. Minor issues such as amersands and semicolons unnecessarily deter beginning students. Though all languages have their syntactic idiosyncracies, my impression was that most agreed that C's nuances were more challenging for beginners than those of many other languages. I had pushed for us to change our learning language to Python as early as 2011, after I discovered the langauge at a conference I attended. (Yes, I know that's sad...) Unfortunately, I didn't have the support in our department at that time and the best I could do is teach 5 weeks of Python in COP 3223 (Intro to C Programming).

This was the status quo until a couple years ago when multiple consultants recommended a change for us (specifically one that separates students who have experience from those who don't). More importantly, support from professors in more important positions than me, as well as our department's success in obtaining a grant to redesign our curriculum in the hopes of broadening the diversity of our students, has led to a transition where Python will become the learning language for new UCF Computer Science students.

Specifically, the transition included me offering a new special topics course, COP 2930, an Introduction to Programming, where I used Python as the learning language. In recruiting students for the course, we emphasized that we wanted true beginners who had no programming experience from high school. The goal of the class was to test run what our new introductory programming course would look like. I taught this course in both the Spring and Fall of 2020.

In Fall 2021, a newly hired instructor will teach this course for beginners under the already existing course number COP 2500. While I will likely consult with this new hire, the ultimate course design will be up to that person. So, it's possible that this archive is just a very brief portion of the history of CS at UCF, but I figured I'd still post it. The arrangement for Fall 2021 and the future is as follows: anyone who wants to take COP 2500 can. Anyone who has programming experience can take a placement test to place out of the course. Our hope is that this design will separate out the beginners from the experienced students, providing a positive learning environment for the beginners in COP 2500. Ultimately, COP 3223 will teach C assuming students have other programming background (but not in C), and delve deeper into pointers and dynamic memory management. COP 3330 will be a pre-requisite for COP 3502, which will then change to be taught using Java. In this arrangement, students will use Python in COP 2500 and CIS 3360, C in COP 3223, CDA 3103 and COP 3402, and Java in COP 3330, COP 3502 and COP 3503. Subsequent to taking COP 2500, students can then take COP 3330 and COP 3223.

Since I only taught the course for 2 semesters, I'll just directly link to the course web pages for both semesters below.