My goal is to make software more reliable and easier to develop through creating automated decision support for software development and maintenance. Some of the keywords summarizing my research are: software product lines, code recommender systems, API usage patterns, mining software repositories, reverse engineering, build systems, software maintenance, software evolution, and security. You can find more details at htttp://www.sarahnadi.org
I'm always looking for motivated MSc and PhD students. To get more details on my research interests, check out my website to see my papers and the projects I work(ed) on and send me an email if you are interested to work with me.
Introduction to the principles, methods, tools, and practices of the professional programmer. The lectures focus on the fundamental principles of software engineering based on abstract data types and their implementations. The laboratories offer an intensive apprenticeship to the aspiring software developer. Students use C and C++ and software development tools of the Unix environment. Prerequisite: CMPUT 175.Credit cannot be obtained for CMPUT 201 if credit has been obtained for CMPUT 275, except with permission of the DepartmentWinter Term 2021
Software quality issues are covered. Various types of software testing, ranging from unit testing to integration testing are discussed. Processes to ensure quality, such as reviews and continuous integration, are introduced. State-of-the-art software quality tools that analyze different artifacts within the software lifecycle are described. Prerequisite: CMPUT 301.Winter Term 2021