The Zen of Graduate-level Programming
  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. 
Zubair Nabi
cs.CY