  The ubiquity of technology in our daily lives and the economic stability of
the technology sector in recent years, especially in areas with a computer
science footing, has led to an increase in computer science enrollment in many
parts of the world. To keep up with this trend, the undergraduate computer
science curriculum has undergone many revisions, analysis, and discussion.
Unfortunately, the graduate level curriculum is lagging far behind in computer
science education literature and research. To remedy this, we present the
blueprint and execution of a graduate level course in programming, designed
specifically to cater to the needs of graduate students with a diverse
background both in CS and other fields. To this end, the course is divided into
two halves. In the first half, students are introduced to different programming
concepts, such as multi-paradigm programming, data structures, concurrency, and
security to bring them up to speed and provide a level playing field. In the
second half, all of these concepts are employed as building blocks to solve
real-world problems from data mining, natural language processing, computer
vision, and other fields. In addition, the paper also discusses in detail the
evaluation instruments employed for the course. Moreover, we also share
anecdotal information around student feedback, course design, and grading that
may be useful for others who wish to replicate our curriculum or sketch a
similar course.
