2 Professor: Vladimir Misic Office : 70-3535 Phone: 475-7923 Office Hours : Mon, Tue; 2:00pm – 4:00pm Website : www.cs.rit.edu/~vmwww.cs.rit.edu/~vm E-mail : firstname.lastname@example.org@cs.rit.edu (please put “CS1” in the subject line) Computer Science I
3 Syllabus Available off of the course web page http://www.cs.rit.edu/~cs1 http://www.cs.rit.edu/~cs1 All students in the course, must also be in a lab section All students are expected to attend both the lab and the lecture sections
4 Course Goals Learn how to program Learn Java Understand Object Oriented Programming (OOP) Understand problem decomposition, design and implementation of solutions
5 Lecture Notes http://www.cs.rit.edu/~jaa/Cs1-Fall00/home.html*http://www.cs.rit.edu/~jaa/Cs1-Fall00/home.html http://www.cs.rit.edu/~ptt/courses/231/ http://www.cs.rit.edu/~hpb/Lectures/99_CS1_Java/*http://www.cs.rit.edu/~hpb/Lectures/99_CS1_Java/ http://www.cs.rit.edu/~afb/20012/cs1/slides/*http://www.cs.rit.edu/~afb/20012/cs1/slides/ *(Note: weeks 3 & 5 of these notes have been switched for jaa and hpb) Course Resources
7 Textbooks An Introduction to Object Oriented Programming with Java, 2 nd (3 rd ) ed., by Thomas Wu Harley Hahn’s Student Guide to Unix, 2 nd ed., by Harley Hahn
8 Weekly reading assignments that correspond to lecture and lab assignments Weekly lab assignments Readings to be completed Bi-weekly quizzes Final Exam Course assignments
9 Grade determination Quizzes 35% (3 out of 4) Labs 30% (9 out of 10) Final Exam30% Instructor’s discretion 5% BUT, an F (<60%) in any component means an F in the course!!! Grading issues must be brought to my attention within 1 week of my handing back materials in class.
10 Quizzes There are four quizzes during the quarter (see schedule). Each will take about 30 minutes of lecture time. If you miss a quiz, you will receive a zero for it. The quiz grade is computed by averaging the percentage scores on your best three quizzes; the lowest quiz score is dropped. For example, if your quiz scores were 75%, 92%, 64% and 70%, your quiz grade would be 79%. There are no makeups on quizzes, nor are quizzes ever given early.
11 Lab Assignments There are 10 scheduled laboratory sessions, one per week. It is vital that you read each lab writeup (on the web) before coming to lab, and do all of the indicated pre-lab activities, so you will be ready to go when lab begins. You will have nearly a week to complete each lab. Labs are due at the end of the day two days prior to your next scheduled lab session. You will receive your grade via electronic mail. Each laboratory assignment will include a postlab. The postlab is part of the laboratory assignment and is due when the corresponding lab is due.
12 Lab Assignments Labs are worth 30 points each: in-lab activities count for 20 points postlab activities count for the other 10 points Your lab grade for the course will be computed as an average of the highest 9 lab grades (the lowest one will be dropped). A zero given for cheating will NOT be dropped. There are no makeups on labs or parts of labs which you miss, nor are late submissions accepted.
13 Final Exam Date will be announced A common exam will be given to all sections at the same time No make-ups nor early examination – unless conflicts Week 6 notification of conflict Comprehensive Coverage: All reading material, all lecture material, and all lab material
14 Policy on W and I grades W:RIT policy allows you to withdraw from a course with a grade of W on or before the Friday of the sixth week in the quarter. After this date, your instructor cannotgive you a W, but must assign you a grade based on your work. I: Incomplete grades will be given only in the most exceptional circumstances,and then only by prior arrangement with your lecture instructor. Your lecture instructor has the final say in this matter.
15 Academic Dishonesty First incident: you will receive an F on the assignment Second incident: you will receive an F for the course Repeated offenses may result in expulsion or suspension from RIT More details: Department Policy RIT Academic Dishonesty Policy RIT Code of Conduct for Computer Use
17 Programming For the next ten weeks you will learn basic programming principles –There is much more to programming than knowing a programming language When programming you need to use a tool, in this case the tool will be a language –In this course you will use Java to explore programming –You will use other languages to program
18 Syntax and Semantics When using a programming language you must understand both the syntax and the semantics of the language. –Syntax refers to the rules you must follow to form valid statements in the language. The syntax of a language is like English grammar. –Semantics describe the meaning of a statement in a language.
19 A programming example A B Syntax and Semantics: 1.Start. 2.Step Ahead 3.Turn Right 4.Turn Right 5.Turn Left 6.Turn Left 7.Stop.
20 Language Translation The only language that a computer understands is machine language ( …110010111… ) A program, written in a programming language other than machine language, must be translated into machine language in order for it to run on a computer Programs are typically either compiled or interpreted
21 Compiling When a program is compiled it is converted directly into machine language –Sort of like having a book translated from English to German The program that does the translation is called a compiler Source CodeObject CodeExecutable Code compilelink
22 Interpreted Languages Another approach is to convert the program to machine language while it is running An interpreter translates and immediately executes a program –Someone, who understands German, reads the book in German and translates while reading to English Source CodeExecute interpret
23 What Is Java? Java started as a programming language for embedded systems (toasters, microwave ovens, washers, etc.). –needed to be portable. –had to be reliable. The original language was called oak (rumor has it that Gosling has a large oak tree outside the window of his office). Marketing decided Java was a better name.
24 Sun’s Slant According to Sun: –Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language Java is a lot like C/C++ but there are a number of important differences.