PIC 10a Lecture 2: Introduction to Programming
Winter 2009
Administrivia
| Venue | HAINES A2 |
| Time | 11-11:50am |
| Lectures | MWF (Mondays, Wednesdays and Fridays) |
| Discussions | TR (Tuesdays and Thursdays) |
| Instructor | Teaching Assistant 2a | Teaching Assistant 2b | Teaching Assistant 2c | Teaching Assistant 2d | |
| Name | Iftikhar Burhanuddin | Jukka Virtanen | Frances Hammock | Rachel Danson | Russell Howes |
| Lecture/Discussion | MWF 11-11:50am | TR 11-11:50am | TR 11-11:50am | TR 12-12:50am | TR 12-12:50am |
| Venue | HAINES A2 | MS 5148 | MS 5118 | MS 5148 | MS 5118 |
| Office | MS 5338 | MS 6617F | MS 6139 | MS 3965 | MS 3919 |
| Office Hours | MWF 12:30-1:30 or by appt. | R 2-4 | R 9-11 | TR 1-2 | WR 2-3 |
| burhanud at math.ucla.edu | virtanen | hammockf | dansonr | rhowes |
Course description
PIC 60 is a 5 unit course, with 3 hours of lecture and 2 hours of discussion.
This class will serve as a gentle introduction to the wonderful world of programming. Students will be exposed to basic principles of programming using C++, algorithmic and procedural problem solving, program design and development, basic data types, control structures, functions, arrays, pointers, and introduction to classes for programmer-defined data types. While the lectures will focus on the theory, the assignments will have a programming bent. The intention is to guide students to see how ideas on paper are turned into programs which solve problems in practice. No prior programming experience is assumed. This class is intended for those of you who need to know how to write your own computer programs. This class will teach you how to design and develop computer programs using sound programming techniques. This class does not assume prior programming knowledge, but if you don't have at least some familiarity with computers, consider taking PIC 1 first.
Textbook
Big C++, 2005
Cay S. Horstmann and Timothy A. Budd
PIC Lab
| Venue | BOELTER 2817 |
| Time | Monday-Thursday 9:00-6:00, Friday 9:00-5:00, Sunday 1:00-5:00 |
| Website | http://www.pic.ucla.edu/piclab |
The PIC Lab is staffed during its open hours by undergraduate lab assistants. They are there to help with computer issues, not to debug your programs. If you need help with your assignment, you should ask the TA's or the professor. The computers in the lab are set up with the necessary software for completing and submitting your homework. You can work at your home computer, but you are responsible for using the same C++ compiler (Microsoft Visual Studio 2005) and correctly submitting your homework via Moodle.
Syllabus
The syllabus, which is subject to change, will touch on some of the following topics.
- Chapter 1 Introduction to programming
- Chapter 2 Number types, Input/Output; Assignment, constants, arithmetic; Strings. Sections: 2.1-2.2; 2.3-2.5; 2.6
- Chapter 3 Objects; Graphics. Sections: 3.1-3.3; 3.4-3.8
- Chapter 4 The if statement; While loops. Sections: 4.1-4.4; 4.5-4.7
- Chapter 5 Writing functions; More about functions; Pseudocode, assert. Sections: 5.1-5.5; 5.6-5.9; 5.10-5.13
- Chapter 6 Classes; Member Functions; More about classes. Sections: 6.1-6.3; 6.4-6.6; 6.7-6.9
- Chapter 7 Nested branches; For and while loops. Sections: 7.1-7.4; 7.5-7.9
- Chapter 8 Testing and debugging. Sections: 8.1-8.5
- Chapter 9 Vectors; Arrays; Character Arrays. Sections: 9.1-9.3; 9.4-9.5.2; 9.5.3
- Chapter 10 Pointers; Pointers and arrays. Sections: 10.1-10.3; 10.5
- Chapter 12 File I/O. Sections: 12.1
Assignments, Exams
There will be about 9 homework assignments, which will be assigned one at a time each week of the quarter. Each homework will be due Friday 5:00pm. The homework will be submitted electronically using your PIC account. The homeworks are automatically collected at 5:00pm on the due date. No late homework will be accepted. You must follow the directions and use the file names specified in the assignment, or else your submission will not be graded. You are encouraged to use the resources in the PIC Lab to do your homework, as well as seek the help of the the TA's and the instructor. You may discuss the homework assignment with your classmates in general terms, but do not show your code to another student. There will be an additional assignment to maintain a personal topical blog on Moodle and the content of the blog will be graded at the end of the quarter. At the end of the quarter, the assignment with the lowest score will be dropped and the remaining assignments will count toward the grade.
There will be two in-class midterm exams, which will be held on Monday, February 2 and Wednesday, February 25. If you are unable to take the exam at the scheduled time, you must contact the instructor before the exam time. No make-up exams will be given, instead your other exams will be weighted more, provided the absence is due to a legitimate reason, which will require appropriate documentation.
The final exam will be held on Sunday, March 15 from 3-6pm at WGYOUNG CS50 and the syllabus for the exam will be the entire content of the course. Failure to take the final will result in a failing grade.
The course letter grades will be determined based on the class distribution of the total points. The grade breakdown is as follows:
| Assignments | 40% |
| Midterms | 15% each |
| Final | 30% |
Scores on the assignments, midterms and final will be posted on my.ucla.
Moodle
Course news, audio, slides, handouts, assignments, details on submission, etc. will be posted on the course Moodle. Students are encouraged to use the discussion forums on Moodle to ask questions about the course, etc.
Academic Honesty
Students are encouraged to collaborate with fellow students on general strategies for homework, but solutions should be written up and programming assignments should be worked on alone. Seeking help from outside the class room (such as friends, discussion forums on the Web) is not appropriate. The homework should list the fellow students with whom the solutions were discussed. Cheating and plagarism on the assignments and exams will result in disciplinary action. Please consult the documents related to Academic Integrity, Student Conduct for details.
Special Needs
OSD students contact the instructor as soon as possible to discuss any special arrangements.