CSC207 Fall 2016.

Slides:



Advertisements
Similar presentations
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Advertisements

June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
General information CSE 230 : Introduction to Software Engineering
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 1 1.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
CSC207 Software Design Summer 2011 Lecturer: Hesam C. Esfahani
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CSCA48 Course Summary.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
CSCE 312 Computer Organization Course Administration Dr. Rabi N Mahapatra Department of Computer Science & Engineering, 520B HR Bright,
King Saud UniversityCSC112 - First Semester CSC 112 Java Programming I Introduction.
King Saud University1 CSC 112 Java Programming I Introduction.
Data Structures and Algorithms in Java AlaaEddin 2012.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Course Code : 15ECSC204 Object Oriented Progamming.
MS. NANCY HARRIS LECTURER, DEPARTMENT OF COMPUTER SCIENCE CS 149 – Programming Fundamentals (Accelerated)
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Introduction to CSCI 1311 Dr. Mark C. Lewis
CS16: Introduction to Algorithms and Data Structures
Advanced Programing practices
Programming Languages Dan Grossman 2013
CSC 427: Data Structures and Algorithm Analysis
Subject : Computer Science
Welcome to ….. File Organization.
CSc 1302 Principles of Computer Science II
CSC 321: Data Structures Fall 2016
CSc 020: Programming Concepts and Methodology II
CSC 321: Data Structures Fall 2017
CSC 221: Computer Programming I Spring 2010
It’s called “wifi”! Source: Somewhere on the Internet!
CSC 221: Computer Programming I Fall 2005
CSC 321: Data Structures Fall 2015
Computer Skills Lecturer Muhammed YASIN
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
Artificial Intelligence (CS 461D)
Introduction to Programming 2
CS 1302 Programming Principles II
EECE 310 Software Engineering
Geo 318 – Introduction to GIS Programming
CS3901 Intermediate Programming & Data Structures Introduction
Introduction to CS II Data Structures
Week # 1: Overview & Review
CS 1111 Introduction to Programming Fall 2018
Tasks & Grades for MET2.
Tasks & Grades for MET3.
Tasks & Grades for MET5.
CMSC201 Computer Science I for Majors Final Exam Information
Advanced Programing practices
ICS201 Introduction To Computing II
CSC 321: Data Structures Fall 2018
CS Problem Solving and Object Oriented Programming Spring 2019
CSCE156: Introduction to Computer Science II
Computer Engineering Department Islamic University of Gaza
CSC 241: Introduction to Computer Science I
Welcome to the First-Year Experience!
Presentation transcript:

CSC207 Fall 2016

Software Design “An introduction to software design and development concepts, methods, and tools using a statically-typed object-oriented programming language such as Java. Topics from: version control, unit testing, refactoring, object-oriented design and development, design patterns, advanced IDE usage, regular expressions, and reflection.  Representation of floating-point numbers and introduction to numerical computation.” — The Arts and Science Calendar

The Main Project You will incorporate the contents from lectures and labs into your assignments. The main project for this course is: develop a program that allows for finding, tagging, and renaming of image files to include the tags in the file names.

What we assume you already know CSC108, CSC148, and CSC165 material: lists, dictionaries, functions, classes, stacks, queues, trees, recursion, unit testing, logical notation and reasoning, the basics of computational complexity (big-Oh), and an approach to developing functions (the function design recipe).

What we want you to learn Fundamental code development techniques used professionally Object-oriented programming (using Java) version control (using git) strong typing aspects of team dynamics lots of inheritance design patterns more unit testing tools for designing and analyzing programs a memory model for Java exception handling a large Integrated Development Environment (Eclipse) floating-point issues the Linux command line This isn’t “the Java course”. The programming language features we teach appear in many other programming languages, we just happen to teach them using Java.

How we’re going to teach 2 lecture hours / week 7 1-hour labs 2 45-minute midterms (in lecture room, but at lab time, bring your TCard!) 2 individual assignments 2 pair assignments (no teams of 4, unlike in previous offerings) 1 final exam

One way to help your learn: Recognized Study Groups By joining or coordinating a study group, you will: Guarantee regular study time Gain motivation and understanding Meet your peers Get quick access resources and supports Receive Co-Curricular credit for participating and leading Visit http://studygroups.artsci.utoronto.ca Do the People Search here! Things to say: What’s the most common thing that companies complain about when they hire our students? Let them guess. The answer is “communication skills”. Tell them after a few guesses. “Here’s a chance for you to practice this, as well as to get to know other people in the course.” Hand out the People Search. Let them go for 10 minutes. Collect them and ask them how many people had at least 8 answers.

Marking scheme

Resources Course website (readings, links) Discussion board Office hours (see syllabus; you are encouraged to attend the office hours of all instructors, not just mine) Lectures and labs! Anonymous feedback: please give us constructive suggestions!

First topics of the course: the file system and version control Two related issues: How to organize files (using your file system) In a multi-user environment, how to track and share changes (using a version control system) You need to thoroughly understand your file system to understand version control. When you are working on your paired assignments…

Managing files Your OS provides a view of your file system. The Linux command line provides another equivalent view. Some of this will seem really basic to many of you, but we want to make sure everyone understands the terminology we are going to use.

Tree Structure for File System Files and folders/directories on any server are arranged in a tree structure: People use “folder” and “directory” interchangeably

Directories can contain some combination of: 0 or more files 0 or more directories

Moving Within the File System To access a particular file, you have to first navigate to the directory that directly contains that file (not contains a directory that contains a directory that contains the file) We do this by changing the current working directory to the next closest folder on the tree

We start at the root directory

We now have access to two files…

and the ability to open two directories:

To access this file, we need to first open… New topic

This directory…

Which lets us open this directory…

Which then lets us open the file we want

A GUI vs. the command line You are used to using a GUI such as the OS X Finder or Windows Explorer to navigate your file system. There’s another way: using the Unix/Linux command line. We’ll expect you to become familiar with the command line. You’ll need it for Git, and CSC209H expects you to know how to use it.

Command line tutorial Red Hat is a company that manages a Linux distribution. They have a tutorial that introduces the command line. We suggest you start here. “Nautilus” is their graphical user interface; ignore it. Follow along through section 4.9. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Step_by_Step_Guide/s1-managing-directories.html

Time spent on task Version control and Git: Assuming that being a full-time student is a full-time job, that means 8–10 hours/week on each of your courses. This includes week 1. Version control and Git: https://www.atlassian.com/git/tutorials/what-is-version- control Learning the command line: https://access.redhat.com/documentation/en- US/Red_Hat_Enterprise_Linux/4/html/Step_by_Step_Gui de/s1-managing-directories.html Java from a Python perspective: http://fpl.cs.depaul.edu/jriely/java4python/java4python.sta rt.html 8-10 hours including lectures and lab! So start a study group and do these together!