Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC207 Fall 2016.

Similar presentations


Presentation on theme: "CSC207 Fall 2016."— Presentation transcript:

1 CSC207 Fall 2016

2 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

3 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.

4 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).

5 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.

6 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

7 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 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.

8 Marking scheme

9 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!

10 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…

11 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.

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

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

14 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

15 We start at the root directory

16 We now have access to two files…

17 and the ability to open two directories:

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

19 This directory…

20 Which lets us open this directory…

21 Which then lets us open the file we want

22 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.

23 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.

24 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: control Learning the command line: US/Red_Hat_Enterprise_Linux/4/html/Step_by_Step_Gui de/s1-managing-directories.html Java from a Python perspective: rt.html 8-10 hours including lectures and lab! So start a study group and do these together!


Download ppt "CSC207 Fall 2016."

Similar presentations


Ads by Google