CS100J, Spring 2001 Tues 1/23 Lecture 1 ------------------------------------------------------------------------------- Announcements: + get handout (overview) + follow instructions on overview ASAP + Project 1 (P1) due Tues 1/30 + Staff page on website being updated + no CS100J sections this week + reading: Savitch Chaps 1-2 this week (see Syllabus for details) + software demos -- securing Thurs/Fri times (TBA) ------------------------------------------------------------------------------- Topics: + CS100 philosophy + J vs M + AEW + course mechanics + fundamental programming concepts - definition of programming - how programming works - problem solving - algorithms ------------------------------------------------------------------------------- CS100: J & M + both introduction to programming + assume NO experience - be repsectful of others if you have experience! - inexperience != bad grade + different flavors - M: more mathematical, scientific computation, more MATLAB - J: less math, more Java - 5 years from now, choice won't matter much, so don't worry! ------------------------------------------------------------------------------- Course Procedures: + attend a lecture once Tues, once Thurs + attend a section once (shop around) + 6 projects - longer assignments - start early! - practice for programming on your own + many exercises - short, fewer points, mandatory + 3 prelims and final + software: - Java: CodeWarrior, JDK - MATLAB - info on versions and requirements + books: - Savitch required - all others optional + website - see overview - your main source of everything! - see, you found this file! Ain't this great? ------------------------------------------------------------------------------- Programming + automating problem solving + problems are physical and abstract + build models which are physical and abstract + models will solve the problem where we cannot/will not + use a computer! need to write software... ------------------------------------------------------------------------------- Computer Rudiments: + hardware: physical components of a computer + software: "the intelligence" that runs the hardware - create with programming (coming up!) + information: bits and bytes -- sequences of 1s and 0s (digits) that represent non-digital information + memory: "space" inside a computer to store information - software can "borrow" a portion to use - programming involves using memory + file: collection of information with a name + directory: collection of files + folder: same as directory + path: location of file or directory starting from the "uppermost" directory + ASCII/text: characters found on the keyboard - uses 8 bits to represent a character which is a byte - ASCII (or text) format is universal - can load into almost editor and wordprocessor - can edit files with programs called text editors + Program: file composed of instructions using a computer language - usually text because we need to type those instructions! - the process of telling the computer to activate commands in a program is called running or executing - information is passed from your text to the computer - computer activates each instruction in sequence + Interpreting: computer reads each line of code and acts up it before acting upon the next line + Compiling: process of converting code into an unreadable format - more bits and bytes, but condensed - can create "runnable" (executable) files that quickly run your programs + Input: - any information you supply to a program + Output: - any information reported by a program ------------------------------------------------------------------------------- Process of Programming + start with problem + look for solution + in-between step is called algorithm design - break solution down into sequence of steps - each step is an instruction - the model (or, performer of instructions) must be able to follow the instruction - may have to keep breaking down steps - final algorithm is a program in "words" + definition (from above): "Programming is automating problem solving" + example: think recipe - someone else wrote a sequence of instructions - used terms that are accepted and have known values/meanings - you, the human, act on the instructions - something is created and hopefully tastes good ------------------------------------------------------------------------------- Computer Language + need to translate English language algorithm into a computer language + many options: MATLAB, Maple, Java, C, C++, etc + Choose MATLAB and Java for CS100 ------------------------------------------------------------------------------- Language Elements + computer language usually written (in the future, spoken) + has syntax (grammar) and semantics (meaning) + use keyboard characters (text) to form "words" and other symbols + "words" and other symbols are called tokens + tokens include: numbers, operators, variables, keywords, punctuation, token separators, strings, comments (described in more detail soon) ------------------------------------------------------------------------------- Statements + combine tokens to create "sentences" + each "sentence" forms an instruction/command + "sentences" are called statements -------------------------------------------------------------------------------