80 likes | 95 Views
Learn advanced programming practices and methodologies to improve coding efficiency, quality, and teamwork. Includes Java project and evaluations.
E N D
Advanced Programing practices Introduction to the course Joey Paquet, 2006-2014
Introduction to the Course Joey Paquet, 2006-2014
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 Joey Paquet, 2006-2014
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-2014
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-2014
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 Deliveriesare intermediate operational builds of the software, effectively demonstrating the full implementation of some important software features; • (2) the Final Project Deliveryis 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. Joey Paquet, 2006-2014
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% Joey Paquet, 2006-2014
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 Joey Paquet, 2006-2014