I. Preliminaries for the first meeting A. staff introductions ------------------------------------------ WELCOME TO COP 3223H HONORS INTRODUCTION TO PROGRAMMING WITH C Professor Gary T. Leavens 437D Harris Center Phone: (407)823-4758 Email: Leavens@ucf.edu Office Hours: URL: http://www.cs.ucf.edu/~leavens/COP3223H/ Pick up handouts: ( of them) ------------------------------------------ II. Welcome to Computing! ------------------------------------------ WELCOME TO COMPUTING! Computer Science (CS) and Information Technology (IT) are great fields with: - intellectual interest - practical interest - great job prospects We hope you stay (or consider joining) and are successful! ------------------------------------------ A. What is Computer Science? ------------------------------------------ WHAT IS COMPUTER SCIENCE? Computer Scientists study computation: - software (algorithms, data structures), - hardware (design of computers), and - applications of computation, including: - computer vision - image and video processing - virtual reality - systems - mobile computing - security and privacy - bioinformatics and systems biology Fundamental areas of Computer Science include: - algorithms, - machine learning (including "big data") - artificial intelligence, - human-computer interaction, - graphics, - software engineering, - parallel computation, - networking - computer architecture Research in CS emphasizes new and innovative uses of computation. ------------------------------------------ Is a smartphone mainly designed by Computer Scientists? B. What is Information Technology ------------------------------------------ WHAT IS INFORMATION TECHNOLOGY? Information Technologists study computer technology to: - provide better service and value - drive efficiency and productivity - improve business procedures - discover innovative ways to use information resources (data) Research in IT emphasizes: - human-computer interaction - economics - productivity - information access and use ------------------------------------------ What do Computer Science and IT have to do with infotech and biotech? C. Intellectual Interest in Computing ------------------------------------------ MOTIVATIONS FOR COMPUTING Calculation is tedious, error-prone - scribes and accountants (~2400 BCE) added numbers using an abacus - US Census Bureau uses UNIVAC I (1951) - Check clearing (1960s) Describe calculational procedures for math - Euclid's algorithm for GCD (~300 BCE) - Muhammad ibn Musa al-Khwarizmi (~820 CE) systematic solutions of linear and quadratic equations - Boole, Frege, Peano (~1850) arithmetic as symbol manipulation Adding flexibility and smarts to devices - Apollo spacecraft (1960s) (precise navagation, reduce weight) - Digital Calculators (1970s) (some programmable) - Digital wristwatches (1980s) (including translation of words!) - Fly-by-wire digital aircraft (1980s) - personal digital assistants (1990s) - smartphones (2000s) ------------------------------------------ How would you summarize the motivations for computing? What are some areas of computing that you have heard about? ------------------------------------------ AREAS OF STUDY IN COMPUTING ------------------------------------------ D. summary ------------------------------------------ SUMMARY Computing offers: - great intellectual interest - great practical interest - excellent job prospects ------------------------------------------ III. Course Policies and Plan A. What the course is about ------------------------------------------ ESSENTIAL GOALS FOR THE COURSE Programming: Given a problem specification, write a correct program to sovle it Semantics: Understand the meaning of programs in Python and C ------------------------------------------ ------------------------------------------ ENRICHMENT GOALS Design: Specify a problem and then correctly solve it Formal: Formally specify a problem in math, then prove that the program is correct. ------------------------------------------ B. plan for the course ------------------------------------------ PLAN FOR THE COURSE Broad outline: - programming in Python (mentioning C) - programming in C Every Friday we will focus on problem solving ------------------------------------------ 1. grading ------------------------------------------ GRADING + No curve grading + Your grade is 65% based on tests 35% on homework ------------------------------------------ 2. cooperation and cheating ------------------------------------------ COOPERATION Can talk with others about homework - but must cite them Can cooperatively do homework - but this isn't recommended - see grading policy for details CHEATING Exchange of finished answers - without cooperation in solving them - without certification Using ideas of others - without citation Copying answers from the web - without citation ------------------------------------------ 3. advice ------------------------------------------ ADVICE ON HOW TO LEARN PROGRAMMING Discipline: - the key point is to learn programming yourself, not to get points or a grade - don't fall into the temptation of Googling for the answer (cheating) or asking others for the answer (also cheating) (you need to learn HOW to solve it) Persistence: - we didn't evolve to do programming (so it's not genetic) - programming can be learned but needs practice, perhaps more than we will give you (so practice on your own!) - don't be too persistent; let your mind solve the problem while you do other things... (don't forget to eat, etc.) - if you are having trouble, ask for help! (the instructor is happy to help you) ------------------------------------------ 4. ask for questions/concerns