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.