Advanced Programing practices SOEN 6441 - Advanced Programming Practices Advanced Programing practices Introduction to the course Joey Paquet, 2006-2017
Introduction to the Course SOEN 6441 - Advanced Programming Practices Introduction to the Course Joey Paquet, 2006-2017
Introduction to the course: Instructor SOEN 6441 - Advanced Programming Practices Introduction to the course: Instructor Name: Joey Paquet Position: Associate Professor, Department of Computer Science and Software Engineering Teaching topics: Programming languages, Compiler design, Software engineering and programming methodology Research topics: Design and implementation of programming languages, Parallel and/or distributed computing, Demand-driven computation, Context-driven computation Contact information: Web: www.cse.concordia.ca/~paquet E-mail: paquet@cse.concordia.ca Office: EV 3-221 Joey Paquet, 2006-2017
Introduction to the course: Calendar description SOEN 6441 - Advanced Programming Practices Introduction to the course: Calendar description Problems of writing and managing code. Managing code complexity and quality through a programming process. Coding conventions. Inline software documentation. Software configuration management. Tools and techniques for testing software. Multithreading concurrency. Code reuse in software development. Quality in coding, fault tolerance. A project. Laboratory: two hours per week. Joey Paquet, 2006-2017
Introduction to the course: Rationale SOEN 6441 - Advanced Programming Practices Introduction to the course: Rationale This course is not a regular “introduction to programming” course. Regular programming courses teach how to use a particular programming language to implement programs. This course assumes that the students already know how to program. Industrial programming makes use of many more tools than the actual programming language. This course aims at improving the effectiveness of the act of programming. It is meant to teach various concepts/tools/techniques used in the process of programming. It aims at enabling students to: Be more efficient in their programming tasks Be more effective team workers in software development Be more aware of quality in software development This course aims at an audience well-trained in computer programming and putting the newly acquired knowledge into practice through a challenging project. Joey Paquet, 2006-2017
Introduction to the course: Project SOEN 6441 - Advanced Programming Practices Introduction to the course: Project The project is to be undertaken in small teams (5 members) and consists of the building of a challengingly large and complex Java application. The completion of the project is divided into two separate components: (1) the First and Second Intermediate Project Deliveries are intermediate operational builds of the software, effectively demonstrating the full implementation of some important software features; (2) the Final Project Delivery is the demonstration of the finalized version of your software. During the project deliveries, you also have to demonstrate that your code includes many of the Java features presented in the lectures. Joey Paquet, 2006-2017
Introduction to the course: Evaluation SOEN 6441 - Advanced Programming Practices Introduction to the course: Evaluation Individual evaluation components: Written examinations (midterm, final): 20% + 30% 50% Team work evaluation components: Intermediate project delivery 1: 15% Intermediate project delivery 2: 15% Final project delivery: 20% In order to pass the course, you must satisfy the following constraints: Total numeric mark >= 50% Numeric mark for the sum of examination marks >= 50% Joey Paquet, 2006-2017
Introduction to the course: References SOEN 6441 - Advanced Programming Practices Introduction to the course: References Walter Savitch. Absolute Java. Sixth Edition, Addison-Wesley, 2015. ISBN-13: 978-1292109220 Walter Savitch. Java: An Introduction to Problem Solving and Programming. 7th Edition, Addison-Wesley, 2014. ISBN-13: 978-0133766264 Joey Paquet, 2006-2017