CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani [email protected].

11
CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani [email protected]

Transcript of CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani [email protected].

Page 1: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

CSC207Software Design

Summer 2011

Lecturer: Hesam C. [email protected]

Page 2: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Course goals

• We’ll practice good design methods in the context of a new language.

• The first three weeks and the last two weeks will focus on Java. The middle of the term focuses on design.

1. Developing good large-scaledevelopment practices

2. Learning a more structured (than Python) language: Java

Page 3: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Course goals

1. Developing good large-scaledevelopment practices

Agile development methods• Scrum• Code Reviews• Structured mark-up (XML)• Software development tools• Netbeans IDE• Version control: SVN• Effective communication

andteamwork

2. Learning a more structured (than Python) language: Java

Java’s version of OO

• Interfaces, polymorphism,modularity and info hiding

• Useful libraries: Java Collections, Swing

Page 4: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Course Overview

Assignments: done individually (including A3); Project: teams of 4

Project marks are individual: Regular, active contribution to the

Be prepared to present and explain your work and your teammates’ work: eachproject submission will include a meeting with your TA.

Page 5: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

First tutorialI usually call the tutorials “labs”. There is a lab this week!

Labs are from 8~9 pm.

We don’t use the regular tutorial rooms. Instead, they will be in the CDF labs.

The goals of the lab will be to learn about SVN and basic UNIX commands– lab assignments:

Page 6: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Announcements

• Discussion Board– Check it Regularly

https://csc.cdf.toronto.edu/bb/YaBB.pl?board=CSC207H1Y

– RSS Feed:https://csc.cdf.toronto.edu/bb/YaBB.pl?action=rss;feedboard=CSC207H1Y

Page 7: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Prerequisites• CSC 148H/150H (including transfer credit)

– Don’t have this? The undergrad office may remove you from the course!

– To avoid this fate, please contact me to explain how you have equivalent background.

• Not in a CS program? Minimum CGPA of 1.50.– Lacking this requirement will probably result in removal, but I

can't save you.– Please see the Undergraduate Office instead.

• My prereqs:– Confidence in your programming ability in at least one language

(probably Python)– Willingness to engage with your peers to complete a team

project.

Page 8: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Prerequisite knowledge

• Language structures:– Variables, control structures (if, while and for)– strings, lists, dictionaries, linked lists, trees– functions, classes

• Concepts:– recursion, searching, sorting

• Skills:– good style, code reading and debugging– top-down design, OO decomposition– asking (and answering) questions

• (knowing what you don’t know and knowing how to find out!)

Page 9: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Workload: fun facts

A 40- to 50-hour work week implies 8 to 10 hours per course.

Each week: 2 lectures, 1 lab, 5–7 hours of effective studying/working

One twelfth of the course is over at the end of this week!

Page 10: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Academic offenses• It is an academic offence to claim someone else's work as

your own.

• It is an academic offence to give someone your work.

• When this happens in the workforce, people are fired.

• The project: teams of four. All other work: team of one.

• You must not share work outside your team or seek out inappropriate aid.– What’s inappropriate? Ask me when in doubt!– Always-valid sources: me, the TAs, the text, the Help Centre, anything linked from the course website.

• Make sure to cite any outside resources (like the web or a textbook).– I will not charge you with an offence if you have cited properly, although you may not receive a good mark.

Page 11: CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani hesam@cs.toronto.edu.

Know it all?• If you have experience with a

professional IDE, Java, version control, and regular expressions, the department might let you skip this course.

• If you think you're eligible, please come see me.

• I also don't want to endanger you.– I promise not to push you to omit 207 if you don't feel ready.– Please do this before the last add date (preferably sooner)