csc116: introduction to computer programming › courses › csc116-common › csc... · message...

50
CSC116: Introduction to Computing - Java

Upload: others

Post on 30-May-2020

40 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

CSC116: Introduction to Computing - Java

Page 2: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Intro to CSC116Course Information

• Introductions

• Website

• Syllabus

• Schedule

Computing Environment• AFS (Andrew File System)

• Linux/Unix Commands

• Helpful Tricks

Computers

First Java Program• Text Editor

• Remote Access

• Java Download

Page 3: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Instructors• Course Instructor:

– Mrs. Michelle Glatz, [email protected]

• Office Hours: Tues/Thurs 5:00 – 6:00 in DAN 200 and by appointment

• Email used to set up appointments

• Support email: [email protected]

• TAs:– Varsha Gopal, [email protected]

• Office Hour: Fridays 11am–12pm in Daniels 200

– Brenden Lech, [email protected]

• Office Hour: Wednesdays 5 – 6 pm in Daniels 200

Page 4: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Office Hours

• CSC116 Office Hours:– http://go.ncsu.edu/csc116teachingstaffofficehours

• We will use My Digital Hand during office hours to manage questions:

– http://mydigitalhand.org

– You should have received an email invite

– Please register now

Page 5: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Textbook• Building Java Programs

A Back to Basics Approach4th EditionReges and Stepp

• NCSU CSC Department, Style Guidelines

Page 6: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Course Website

Moodle login page:

http://wolfware.ncsu.edu

Moodle Course Page (direct link)

– course materials

– submit coursework

– feedback returned

– grade book

Page 7: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Moodle • Syllabus Link

– Syllabus

• Schedule Link

– Schedule

– In class exercise due before end of class

– Other lab exercises due on Sunday night

•Assignments due at 11:45 pm

Page 8: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Course Structure

• The course structure is a mixture of lecturing and practicing as we go through material.

• The idea is to reinforce the learning of new material with hands on experience using it right away.

Page 9: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Exercises• In-class: Group assignments completed in-class.

Similar to examples

• Lab: Apply new concepts. Due Weekly.

• Practice-It! Exercises: Every 2 chapters turn in list of problems solved as Homework (screenshot pdf: cntrl-P, capture your userid)– https://practiceit.cs.washington.edu/

– create an account

– choose a problem from list

– Type a solution and submit it.

– The system will test it and tell you whether your solution is correct.

Page 10: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Programming Assignments

• There will be 6 programming projects in addition to the Lecture Exercises.

• MUST BE DONE INDIVIDUALLY!!

Page 11: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Academic Integrity

• Do your own work (projects)

– Don’t copy from outside resources (don’t google it!)

– Don’t look at other student’s code

– Don’t show your code to another student

• See syllabus for violation penalties

Page 12: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Exams

• Two midterm exams

• One final exam

• Check the course schedule on our website for dates.

• Paper exams, closed book, closed notes, closed computer.

Page 13: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Message Board• The course message board (Piazza) is a

great place to ask questions and discuss topics with the Instructor, TAs, and all the other students in class– piazza link

• The only rule is that you may not publicly post any code that directly comes from an assignment, but example code is permitted

• Make the question private if need to post your code.

• Post to Group 007 if specific to our section

Page 14: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Grading• Minimum Grade Requirement

➢ Need a 73 to advance to CSC216➢To earn a C- or higher you must:

•have an exam average of at least 60AND

•have a project average of at least 60Activity Weight

Exercises:(.2 * In-class avg + .6 * Weekly Exercise avg + .2 * Practice-it! avg)

14

Projects 30

Comprehensive Exercise 2

Exam 1 17

Exam 2 17

Final Exam 20

Page 15: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Regrade Requests

• The TA’s will send out an email to inform you when they have completed grading of each assignment.

• To request a regrade (within one week):➢ Send an email to the Teaching Staff support email

with Regrade Request as the subject line.

[email protected]

➢ Include the name of the assignment and why you think it should be regraded.

Page 16: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Computing Environment

• Review of E115 topics that will be important for the course.

• The materials come from the E115 Textbook

(http://ncsu.orgsync.com/org/e115/)

Page 17: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

AFS

• AFS: Andrew File System

• Distributed file system used to organize files, which is used at NC State

• Personal home directory –/afs/unity.ncsu.edu/users/y/yourhome /afs/unity.ncsu.edu/users/m/mlglatz

Page 18: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Handy UNIX Commands• cd

• pwd

• ls

• mkdir

• cp

• mv

• rm

• rmdir

Page 19: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Traverse Directory Tree & Find Current Location

• cd: change directory

• pwd: print working directory

• Log on, open a terminal window, and try entering these command at the prompt: – cd ..

– pwd

– pwd

– cd username

– pwd

– cd ../../..

– pwd

– cd ( or cd ~ )

– pwd

Page 20: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

What’s in a directory?

• ls: list contents of directory

• Try it:

– cd /afs/eos.ncsu.edu/courses/csc/

– ls

– ls -l

– cd

– ls -a

– ls –al

Page 21: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Organize your CSC116 Files

• mkdir – make directory

• Try it: – cd

– mkdir csc116

– cd csc116

– mkdir exercises

– mkdir projects

– cd exercises

– mkdir Lab1

– cd Lab1

Page 22: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Helpful Tricks/Shortcuts

• Up/Down arrows – Recall previous commands

• Tab completion – Completes commands/file names

• Ctrl + C – to regain command prompt if system is “hung up”

Page 23: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

What you will learn in CSC116…

• Problem solving – the purpose of writing a program is to solve a problem

• Java programming language

• Concepts of Object-Oriented Programming (OOP) – encapsulated collection of data variables and methods

• Documentation techniques

• Testing methods

Page 24: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Computers

• Hardware

• Software

• Number Systems– Base 10 (decimal)

– Base 2 (binary)

• Bits and Bytes

• Programming

Page 25: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Hardware

• The physical components that make up a computer:

– CPU (Central Processing Unit)

•Executes program instructions (brains)

– Memory (RAM)

•Used to store current program and data

– Hard Disk

• Permanent data storage

Page 26: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Software

• Computer programs

• Operating System

• Bridge between hardware, programs, user

• Allocates memory and send instructions to CPU

• Applications

• Programs run within the operating system

Page 27: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Binary and Decimal

• Typically, we (humans) use the base-10 (decimal) notation.

– Uses the digits 0 through 9

• All information is stored on a computer as binary numbers– 1’s and 0’s (base 2)

– 10 (1 * 21 + 0 * 20) = 2 base-10

– 11 (1 * 21 + 1 * 20) = 3 base-10

– 100 (1 * 22 + 0 * 21 + 0 * 20) = 4 base-10

Page 28: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Binary and Decimal

• Binary (Base-2)

• Decimal (Base-10)

24 23 22 21 20

16 8 4 2 1

104 103 102 101 100

10,000 1,000 100 10 1

Page 29: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Convert between Decimal and Binary

• 20 Decimal to Binary (20 – 16 = 4, 4 – 4 = 0)

• 1 1 1 0 0 Binary to Decimal

16 + 8 + 4 + 0 + 0 = 28

24 23 22 21 20

1 1 1 0 0

16 8 4 0 0

Page 30: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Bits and Bytes

• Bit – Binary Digit

• Byte – 8 Bits

• Kilobyte (KB) 210 – 1024 bytes

• Megabyte (MB) 220 – 1,048,576 bytes

• Gigabyte (GB) 230 – 1,073,741,824 bytes

Page 31: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Programming Languages• We can write a program using only 0s and 1s, but that

has many disadvantages

– Hard to look at and understand

– Very tedious!

• We use a programming language instead - we write code in English instead of 0s and 1s, which is much easier to read and understand

• The code we write is interpreted by a program called a compiler, which translates our English into 0s and 1s for the processor to understand

• Java is the programming language we will use in this course

Page 32: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Computer Programming

• Algorithm - A step‐by-step description of how to accomplish a task.

• Program – A list of instructions to be carried out by a computer.

• Computer Programming – the art of designing and writing a group of instructions that the computer’s processor executes.

Page 33: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Computing Environments

• Use Classroom/campus linux desktop computers– During class, used for lecture demos

– Ensures that programs work on linux

• Connect Remotely to campus linux computers– Work from home

– Need wifi connection

– Ensures that programs work on linux

• Work natively on your laptop– Efficiently work at home

– No need for wifi

– Must transfer final files to afs and run using one of the other

methods to ensure programs work on linux.

Page 34: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Remote Access Windows: • https://www.itecs.ncsu.edu/software/catalog/

• Run X-Win32 and then run PuTTY.

• X-Win32 is a X11 Windows System that enables you to display a Unix or Linux application with a graphical user interface (GUI) on your Windows computer.

• PuTTY is a SSH client that gives you terminal access to run commands and command-line applications (make sure to enable X11 forwarding).

• Click on application to download

• Brings you to software download page

• There is a documentation/installation link for each application.

Macintosh:• Download and Install XQuartz: https://www.xquartz.org/

• Run XQuartz then open terminal window

• Application → Utilities → Terminal

• ssh -X -Y [email protected]

Page 35: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

File TransferTransfer Files between Your Laptop and AFS

• https://www.itecs.ncsu.edu/software/catalog/• For the desired application:

– Click on supplication name

• Brings you to software download page

• Click on desired download

Windows:

• Use FileZilla and/or WinSCP.

Macintosh:

• Use FileZilla

Page 36: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Software• You may download the Java 2 Standard Edition (J2SE)

Software Development Kit (JDK) from http://www.oracle.com/technetwork/java/javase/downloads/index.html

– Download JDK version 8u191, DO NOT download version 11.

• Text Editor• Campus Linux Computers

• gedit (gedit filename & - opens in new window)

• Mac• TextWrangler, Aquamacs

• Windows• Notepad++

Page 37: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Configure Editor• Configure to convert tabs to 4 spaces• https://pages.github.ncsu.edu/engr-csc116-staff/CSC116-

Materials/course-resources/style-guidelines-resources/text-editor-spaces.html

– TextWrangler : Preferences->Editor Defaults->Auto-expand tabsSet tabs to 4 spacesrestart TextWrangler for changes to take place

– Notepad++ : Settings->Preference->LanguageSet Tab size to 4Check Replace by space box

– Gedit: gedit icon in the application bar (top of screen)Go to Preferences. Insert spaces instead of tabs

Page 38: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Java Download for Laptop

• The next set of slides show the java download and set up process.

• The current version on the download site is Version 11.– We will be using version 8

• The java version used for demonstration is version 8 update 152 (current version is 191)

• http://www.oracle.com/technetwork/java/javase/downloads/index.html

Page 39: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Download JavaCurrent Download is Version 11, don’t download this one.

Page 40: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Download JavaPage down to the following Version 8 downloads. Click

on the JDK download

Page 41: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Accept Agreement

Page 42: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Installation• Save the file to the desktop and run it• Install to default location

The installation screen should read (don't change it):

Install to:C:\Program Files\Java\jdk1.8.0_152\

Page 43: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Installation

Page 44: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Install Directory

Page 45: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Setting the Path – Windows• Once the installer is finished, you must set your computer's path

before Java will work correctly – FOR WINDOWS ONLY

➢Go to the Control Panel and double-click System

➢ Select the Advanced tab

➢Click on the Environment Variables button

➢ Look under System Variables for "Path"Click on "Path" and then click edit

➢Add the following to the end of the Path:

;C:\Program Files\Java\jdk1.8.0_152\bin

• Click OK.

Page 46: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Setting CLASSPATH - Windows

• Look to see if there is a variable named CLASSPATH

• If there is not, then Click the "New" button.

➢ For the variable name, type:

CLASSPATH

➢ For the value, type: .; (that period semicolon)

➢Click OK. Exit out of all the open windows

Page 47: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Installed Correctly?• Open up a command prompt.

– On Windows:

➢ Open Command Prompt

- On MAC OSX:

➢ Open the Applications folder,

open the Utilities folder, then open the Terminal application.

• Type java and hit enter

➢ "command not found“ means java is not installed correctly

➢ list of options for running java means installed ok

• Type java -version and hit enter

➢ It should list version you installed (e.g. 1.8.0_152)

Page 48: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Write Compile Execute • A human writes Java code, known as source code (.java file)

– gedit HelloWorld.java &

• The Java compiler converts the source code into machine code or byte code (.class file)

– javac HelloWorld.java

• The computer has a Java Virtual Machine (JVM), which translates the byte code into instructions that the specific computer’s processor can understand.

– java HelloWorld

• A .class file can be used on any computer that has a Virtual Machine, no matter what platform the class file was created on (platform independence)

• Output – messages printed to the screen

Page 49: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

Classic First Program• Write a program that prints the text “Hello, World!” to the

screen

public class HelloWorld {

public static void main(String[ ] args) {

System.out.println(“Hello, World!”);

}

}

RULE:

The name you give your class MUST be the same name you give your file. Thus, the above program must be saved in a file called HelloWorld.java

Page 50: CSC116: Introduction to Computer Programming › courses › csc116-common › CSC... · Message Board •The course message board (Piazza) is a great place to ask questions and discuss

In-Class Assignment• Go to our Moodle page and work on the

HelloWorld.java assignment:/**

* This is an example class that illustrates printing a message to the screen

*

* @author YOUR NAME

*/

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World! My name is [put your name here].");System.out.println("I [am new to programming, have done some Java/C/etc. programming].");

System.out.println("I am a [freshman, sophomore, junior, senior] in the [department name] department.");

System.out.println("At home, I use a [pc, mac, etc] with the [Windows 7/8/10, OSX, Linux, etc] operating system.");

}

}