0% found this document useful (0 votes)
60 views

Introduction To Software Development

This document provides an overview of the CSC 413 - Software Development course. It discusses programming in large vs small, working with existing codebases, tools like NetBeans IDE and GitHub, and how the course prepares students for industry jobs. Students will get hands-on experience with debugging, modifying an existing compiler codebase, and building two large team projects. Teamwork is required.

Uploaded by

eveswan2008
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views

Introduction To Software Development

This document provides an overview of the CSC 413 - Software Development course. It discusses programming in large vs small, working with existing codebases, tools like NetBeans IDE and GitHub, and how the course prepares students for industry jobs. Students will get hands-on experience with debugging, modifying an existing compiler codebase, and building two large team projects. Teamwork is required.

Uploaded by

eveswan2008
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

1

CSC 413 - Software Development


1. Introduction to Software Development

1/27/2018

John Roberts

2
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

3 Survey/interactive

Programming in the Large * How many have worked on an industry team/production project?

• Large programs/systems are hard to understand and very * How large (LOC, user base, team size, different metrics)

complex
*
• How do we organize our thoughts to understand and modify
these systems?

• How do we organize programming teams to develop


systems?

• What are the principles used to organize and manage large


systems?

• How do we analyze and design these systems? (OOA, OOD)


3
4
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

5
Working with Existing Code

• You will most likely study code that has been developed
by someone else so you can modify it - this may be
overwhelming

• Be patient

• Be confident that you can do it

• Know when and how to ask questions!

6
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

6
7 You will get experience with each of these tools, time permitting (including
Tools writing your own manuals/documentation for projects you submit)
• What tools do we use to study the code?

• Debuggers and documentation

• Communication with co-workers

• Text from school (data structures, network programming, operations


systems, etc.)

• The Web (google is your friend)

• Manuals

• Understand coding conventions and principles

• Code profilers to study the efficiency of the components


7

8 Link goes to: https://netbeans.org/


IDE

• Netbeans is a popular Java IDE - make sure you have the


latest Java SDK

• I downloaded the “All” version, but you should be fine with


“Java SE” version (and can always add packs as needed)

9
Netbeans

• Homework (ungraded but important): Ensure you have


downloaded the Netbeans IDE (or another Java IDE you
are comfortable with), and explored some of its features -
familiarize yourself with your toolset!! Customize your
toolset!!

9
10
Netbeans - Try a Sample Project - Anagram

10

11
Netbeans - Try a Sample Project - Anagram

• Explore file structure - think about why files are arranged


the way they are

• Build and run the project

• Play with the code - make some changes (it’s OK to


break things to learn about them!)

11

12
Netbeans - Try a Sample Project - Anagram

• Use the debugger

• Set some breakpoints

12
13 Stop, Pause, Continue, Step Over, Step Over Expression, Step Into, Step Out,
Netbeans - Try a Sample Project - Anagram Run to Cursor
• Use the debugger

• Step through the code

13

14 Added idx here, value updates as we step through the code


Netbeans - Try a Sample Project - Anagram

• Use the debugger

• Set some watches

14

15 Demo git init, git commit, git branch, git checkout for now
Github
• Distributed version control

• Keeps a history of your code changes - commits

• Can revert to a previous version (commit)

• Can create a workspace that allows you to experiment without affecting


working code

• Create a free account! (Students can get some free private repositories as
well)

• Please note that public repositories for assignments will be considered


code sharing (i.e. cheating) - private repositories will be created for your
assignments, and these must be used (assuming github gives them to me)!

15
16
Overview
• Programming in the Large vs.
Programming in the Small

• Working with Existing


Codebases

• Tools

• CSC 413 Prepares your for a


Job

16

17
How will CSC 413 help prepare for your job?

• You will study the foundation principles of OOP that are


used to produce flexible, robust, re-usable, modifiable,
quality software

• You will study Java - a powerful language and


environment that provides the mechanism for delivering
state of the art applications in a distributed,
heterogeneous (web-based) environment

17

18
How will CSC 413 help prepare for your job?

• You will study a compiler for a block structured language


written in Java

• It’s a large program with code that illustrates the use of


the important OOP principles covered in the course

• It’s a large program so you will be confronted with the


task of understanding the system

18
19
How will CSC 413 help prepare for your job?

• You will modify components of the compiler

• Fix bugs

• Extend the system

19

20
How will CSC 413 help prepare for your job?

• You will build two large systems (games) in a team, and


present to the class

• Please note that teamwork is not optional - if you


would like to avoid working in a team, this is not the
course for you!

20

You might also like