Course Development for CS 24000 - Programming in C

Along with my UTA position for CS 240, I participated in a course development position.

My responsibilities were to write documents that tested a concept in C, including assignment background, sample test cases, and method definition.

From a software engineering perspective, I performed the role of a client, outlining I/O specifications for each method, leaving the implementation details up to the student.

Coming up with different ideas for each lab was difficult. It allowed me to explore my creativity. How are stacks used in the real world? How can pointers be used in the real world? Answering these questions led me to establish important background for my assignment. What would follow would be method declarations.

For instance, one lab topic involved double pointers and linked list. The assignment that I wrote involved building a social media website. It involved a user object that would have a list of friends, a newsfeed, and other identifying information. Students would have to implement methods to add posts to their wall, which would have to propagate to the user’s friends’ newsfeeds. Both the friends list and news feed would be implemented using double pointers.

Other lab ideas included implementing a hash table, building a morse code binary tree, invoking an external API in C to get a job listing based on input, implementing a stack, a music playlist, and a basic chess board.

My ultimate goal through my work was to give students a fun but challenging way to learn the concepts. Though these ideas were to be used next semester, some did get used in the Spring 2020 semester, telling me that my assignment ideas were up to the expected standard.

Thankfully, COVID-19 didn’t cause any major impediments for this job.