Lecture 1: administrative and course goals hours, locations, contact, help (mailing list) - MWF 1-1:50 - M 5, F 12, TAs - Attend one or the other or both, but at least one per week manditory - email, office, office hours, available by appointment ** - mailing list - TAs and Me will be always monitoring, everyone on the list see all list mail - please sign up for and use the list! invaluable!! - put email on sheet for signup (hand around sheet) - background form to get feel for what they know - web page, what is on it - assignments, grading statistics, test dates, sample solutions, notifications/announcements course description ------------------ - programming course, lots of programming - covering programming in C and C++ (C first) - HUGE percentage of programs are written in C and C++ (ALL games, OSs, major systems) - although general, we will be using the UNIX devel environment course goals ------------ - MOST upper division classes use C or C++, possibly java - ALL use the UNIX environment - goal of this course is to not only learn C/C++ syntax, but to reinforce what you know of translating real problems into programs - important point, C programmers understand much of how programs in general work - if you know C, other languages can be learned in very short period of time - everyone will know C and C++ by the end of the quarter course flow ----------- - we will be reaching the course goals by doing a lot of programming - some programming will be difficult, some will be merely exercises in understanding syntax - begin by covering basic UNIX usage - first 2/3 of quarter will be learning the C programming language - C concepts extend trivally to C++ - last 1/3 will be C++ - small programming assignment given at the end of many lectures, due next lecture, submit by handin system - will excercise the material learned in that lecture - will be available at the beginning of each week - NOT an excuse to skip lectures as there will be many examples in class! - larger (1-2 weeks) programming projects will be given pretty much weekly - assignments will outline a problem or a system - task will be to create, from scratch, a program that solves the problem of impliments the system - should be fun :) - there will be a mid-term and a final exam of the following form - one essay question - one programming question (write or interpret a program) - multiple choice questions grading ------- - each small programming assignment (progies) will be worth 5 points - each project will be worth 100 points - midterm and final will be worth 100 points each - structured to allow maximum point availability, projects are most important! - programming assignments all together can make up for bad project - midterm and final each can take case of one programming assignment each - extra credit opportunities throughout the quarter - late policy: - progies submitted by 1pm on day they're due, no late accepts - projects due friday at midnight, 24 hours late for 1/2 credit academic honest --------------- - NO CHEATING, CHEATING results in an immediate Fail - AMPLE opportunity to get points, in many different ways, no reason to cheat - having problems, i will spend ridiculous amount of time helping overcome the problem - not doing so well on projects? do well on the tests and progies - cheating is defined as the following: - handing in someone elses program with you name on it - copying someone elses code into your text editor and putting your name on it - grabbing code of the net and putting your name on it - grabbing code and changing variable/function names - moving chunks of code around is like moving food around on your plate to diguise the fact that you havn't eated all your brussel sprouts - I will detect cheating! Code is like painting, nobody paints a picture of the same thing the same way books, what to do next ---------------------- - show the books, talk about each - MUST GET CSIL ACCOUNT (how to do this) - start reading/trying out UNIX stuff (check website for a UNIX tutorial link)