SOEN 6441 - Advanced Programming Practices 1 ADVANCED PROGRAMING PRACTICES Introduction to the course Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 2 INTRODUCTION TO THE COURSE Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 3 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 • Office hours: Fridays 10am-12pm Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 4 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. Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 5 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. Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 6 Introduction to the course: Project • The project is to be undertaken small teams (typically 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. • The individual assignments will also be related to the project. Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 7 Introduction to the course: Evaluation • Individual evaluation components: • Written examinations (midterm, final): 20% + 30% 50% • Team work evaluation components: • Intermediate project delivery 1: • Intermediate project delivery 2: • Final project delivery: Concordia University Department of Computer Science and Software Engineering 15% 15% 20% Joey Paquet, 2006-2014 SOEN 6441 - Advanced Programming Practices 8 Introduction to the course: References • Walter Savitch. Absolute Java. Fifth Edition, Addison-Wesley, 2012. ISBN-13: 978- 0-13-283071-3 • Walter Savitch. Java: An Introduction to Problem Solving and Programming. 7th Edition, Addison-Wesley, 2014. ISBN-13: 978-0133766264 Concordia University Department of Computer Science and Software Engineering Joey Paquet, 2006-2014