CSC116: Introduction to Computing - Java
Course Information Introductions Website Syllabus Computers First Java Program Text Editor Helpful Commands Java Download Intro to CSC116
Instructors Course Instructor: Mrs. Michelle Glatz, mlglatz@ncsu.edu Office: Daniels 223 Office Hours: OnLine: Sundays 9-10pm On-Campus: Tuesdays 5-6 pm in Daniels 200 By appointment set up via email Support email: group-csc116-glatz+601@ncsu.edu TA: Rui Shu, rshu@ncsu.edu Online Office Hours: Fridays 7-9 pm
Office Hours On-Line Office Hours: Dedicated time to answering questions via Piazza, email, or Google Hangout CSC116 On-campus Office Hours: http://go.ncsu.edu/csc116teachingstaffofficeh ours We use My Digital Hand during on-campus office hours to manage questions: http://mydigitalhand.org
Textbook Building Java Programs A Back to Basics Approach 4th Edition Reges and Stepp NCSU CSC Department, Style Guidelines
Course Website Engineering Online course homepage: Links to: Syllabus Video Lectures Moodle page Moodle login page: http://wolfware.ncsu.edu Moodle Course Page (direct link) course materials submit coursework feedback returned grade book
Moodle Syllabus Link Syllabus Schedule Link Schedule All Lab-Exercises are due on Sunday night Including those designated as in-class exercises. Assignments due at 11:45 pm
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.
Exercises In-class: Meant to be completed while watching the lecture. Due Weekly. 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.
Programming Assignments There will be 6 programming projects in addition to the Lecture Exercises. MUST BE DONE INDIVIDUALLY!!
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
Exams Two midterm exams One final exam Check the course schedule on our website for dates. You will have a 2-day exam window. Schedule a time with your proctor at any time during this window. Paper exams, closed book, closed notes, closed computer.
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 601 if specific to our section
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 60 AND have a project average of at least 60 Activity Weight Exercises: (.2 * In-class avg +.6 * Weekly Exercise avg +.2 * Practice-it! avg) Projects 30 Comprehensive Exercise 2 Exam 1 17 Exam 2 17 Final Exam 20 14
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. group-csc116-glatz+601@ncsu.edu Include the name of the assignment and why you think it should be regraded.
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
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
Computer programs Operating System Software Bridge between hardware, programs, user Allocates memory and send instructions to CPU Applications Programs run within the operating system
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 * 2 1 + 0 * 2 0 ) = 2 base-10 11 (1 * 2 1 + 1 * 2 0 ) = 3 base-10 100 (1 * 2 2 + 0 * 2 1 + 0 * 2 0 ) = 4 base-10
Binary (Base-2) Binary and Decimal 2 4 2 3 2 2 2 1 2 0 16 8 4 2 1 Decimal (Base-10) 10 4 10 3 10 2 10 1 10 0 10,000 1,000 100 10 1
Convert between Decimal and Binary 20 Decimal to Binary (20 16 = 4, 4 4 = 0) 1 1 1 0 0 Binary to Decimal 2 4 2 3 2 2 2 1 2 0 1 1 1 0 0 16 8 4 0 0 16 + 8 + 4 + 0 + 0 = 28
Bits and Bytes Bit Binary Digit Byte 8 Bits Kilobyte (KB) 2 10 1024 bytes Megabyte (MB) 2 20 1,048,576 bytes Gigabyte (GB) 2 30 1,073,741,824 bytes
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
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.
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 Mac TextWrangler, Aquamacs Windows Notepad++ Configure to convert tabs to 4 spaces : Notepad++ : Settings->Preference->Language Set Tab size to 4 Check Replace by space box - TextWrangler : Preferences->Editor Defaults->Auto-expand tabs Set tabs to 4 spaces restart TextWrangler for changes to take place
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/downl oads/index.html
Download Java Current Download is Version 11, don t download this one.
Download Java Page down to the following Version 8 downloads. Click on the JDK download
Accept Agreement
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\
Installation
Install Directory
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.
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
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)
Write Compile Execute A human writes Java code, known as source code (.java file) Type a HelloWorld program in your editor and save as 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
Handy Commands used on the command line Function Unix MS-DOS Change directory cd cd Directory list ls dir Copy files cp copy Move files mv move Delete files rm del Make directory mkdir mkdir Delete directory rmdir rmdir
UNIX Command Help See the E115 Textbook (http://ncsu.orgsync.com/org/e115/)
Traverse Directory Tree cd (change directory) cd.. (move up to next higher directory) cd../../.. (move up multiple directories) cd ~ cd / (move to home dir, unix only) (move to root directory)
What s in a directory? ls list contents of directory (unix) ls -l list the contents in long format (all information, size, date, owner, etc.) (unix) dir list contents of directory (ms-dos) ls -a list ALL files, even "." (dot) files and hidden files (unix) ls -la lists ALL files in long format (unix) dir /a lists ALL files in long format (ms-dos)
Organize your CSC116 Files mkdir make directory Try it (start in home directory): mkdir csc116 cd csc116 mkdir exercises mkdir projects cd exercises mkdir Lab1 cd Lab1
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
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
During Lecture 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 live in [city, state (country if not usa)]."); System.out.println("I [work as a Y at company X, am a full-time student, etc.]"); System.out.println("I use a [pc, mac, etc] with the [Windows 7/8/10, OSX, Linux, etc] operating system."); } }