CMPS 012a: Introduction to Programming - Spring 1999


[Homepage] | [Contact Information] | [FAQ's] | [Class Code] [Lab Sections] | [General Lab Info] | [Homework Assignments] | [Excellent Programs] | [Quizzes and Exams]

Spring 1999 Records and Grades


Lecture: MWF 11:00 - 12:10.  Classroom Unit 1    Lab sections are posted here .


Contact Information:

Instructor: Patrick Tantalo
Office: Applied Sciences  153A
Phone: 459-4913
Hours: TBA
E-mail: ptantalo@cse.ucsc.edu
TA: Allison Coates
Office: Applied Sciences  215
Hours: by Appointment
E-mail: greifer@cats.ucsc.edu

Lab sections are posted here . Attendance at lab is not required; it is highly suggested. TAs and tutors will be staffing labs; take this time to ask them questions about your work.

FAQ's (Frequently Asked Questions): See if your question is here!

Audience:

This course is for CS, CE and ISM majors and prospective majors. These are disciplines which emphasize mathematics and problem solving. There are other computer literacy and computer programming courses that are offered for the non-major. If you are shaky in your preparation you should consider waiting until after you take calculus or take CMPS001.

Required Text:

Problem Solving and Program Design in C: 3rd edition. Hanly and Koffman. Addison-Wesley, 1998.
We will cover chapters 1-9, 11, 12 of the text, with perhaps a few optional sections omitted. By all means, read this book.
The textbook for this class will be available from both the Baytree Bookstore and Slug Books Co-op.

Syllabus:

A copy of the syllabus is available here.
Homework: Weekly programming assignments, submitted electronically, will count for 30% of your grade. In addition, I will assign problems from the book which will not be graded.
Quizzes: Bi-weekly quizzes (every other Friday) on recently covered material, will count for 35% of your grade.
Final Exam: The final exam, to be held Friday, June 11 from 12:00 to 3:00 pm, will count for 35%. Please make arrangements now to be available at the appropriate time.
Grading: The grading distribution will be no more stringent than the following:
   A:     90% - 100%
   B:     80% - 89%
   C:     70% - 79%
   D:     60% - 69%
   F:     0% - 59%

The letter grade boundaries may be lowered slightly at my discretion to eliminate borderline cases.
Academic Honesty: The graded programming assignments are to be done individually, not in groups. You should treat them as take home exams. You may freely give and receive help with the computer facilities, editors, UNIX, debugging techniques, the meaning and proper use of C constructs, syntax, etc.. It is also perfectly permissible to discuss general approaches and algorithms with you classmates. However, copying any part of another person's program, or allowing your program to be copied is not permitted. An automatic program will be used to detect copying. Any confirmed academic dishonesty including, but not limited to, copying programs or cheating on exams, will constitute a failure on that assignment, and will result in a no-pass or failing grade.

General Lab Information:

This section contains general information about things you will need to know how to do in order to do well in this class (and future classes as well). It includes information on using Unix, creating a program, and submitting homework assignments. You will use gcc for C programming, and submit to turn in your homework. You will need to be familiar with some text editor.
How to submit homework electronically:

It is a requirement of this course that all your programming assignments compile (with gcc), and run correctly on the CATS-Athena machines. If you do not already have a CATS account, register for one as soon as possible. This can be done from any computer lab on campus. Simply log on as register, when prompted for a password respond athena, then follow the instructions presented. Use the submit command to electronically submit a homework file from your CATS account. You must give submit the following information (order is relevant):
1. Which class are you submitting to (always cmps012a).
2. Which assignment you're submitting for (hw1, hw2, hw3, etc.).
3. Names of the files you're submitting.
For example, if for homework 5 you submit a program called program.c and a data file called file.dat, you should type at the Unix prompt:
submit         cmps012a    hw5     program.c     file.dat
If you submit multiple copies of a file (with the same file name), only the most recent version remains. I recommend that each time you submit homework, you verify that it was properly accepted by using the peek command. At the Unix prompt type:
peek cmps012a hw5
Using CATS/Athena: If you are unfamiliar with Athena, CATS support center has many resources. In addition to web pages, they offer courses (UNIX survival skills, Intro to AFS), have many handouts, and a phone line (459-HELP). Some other places to look for help are:
How-tos:
Athena Intro to computers at UCSC
List of Athena Intros
MIT guides to the Athena
Tutorials for beginners in UNIX
Help with text editors:
Some nice text editors are emacs (/bin/emacs), xemacs (/usr/athena/bin/xemacs), and pico (/bin/pico). Some people like vi (/bin/vi). there is a man page for each. Emacs and Xemacs have help files inside the program (type "ctrl-h"). Some other references are:
Emacs home page
Emacs manual page
Xemacs FAQ
Pico Tutorial
Help with gcc:
To compile your program, type:
        gcc -Wall -ansi -D__USE_FIXED_PROTOTYPES__ -o prog_name source_code.c -lm
            where prog_name is the name of the program (the executable),and source_code.c is the name of the source code you are compiling. The phrase __USE_FIXED_PROTOTYPES__ begins and ends with two underscores.
-Wall means "show all warnings"; -ansi will be discussed later. For linking with the math library, use -lm . This must come at the end. For more information on gcc, look at the man page (type "man gcc").

For info on gcc and other gnu software, look at:
GCC home page, or GNU home page.

Other Information

Two Computer Science Related Activities:
UCSC chapter of the ACM (Association for Computing Machinery)
UCSC chapter of the IEEE

 

 

Projected Reading Schedule

Date Topic Reading 
Developing Software Sections 1.3-1.6
Overview of C Chapter 2
Top-down Design with Functions Chapter 3
Selection Structures Chapter 4
Repetition and Loop Statements Chapter 5
Modular Programming Chapter 6
Simple Data Types Chapter 7
Arrays Chapter 8
Strings Chapter 9
Structures Chapter 11
Text and Binary File Processing Chapter 12
Review

 

Homework Assignments:

Homework assignments can be found here. Solutions to previous quizzes can be found here.


[Homepage] | [Contact Information] | [FAQ's] [Class Code] | [Lab Sections] | [General Lab Info] | [Homework Assignments] | [Excellent Programs] | [Quizzes Exams]

If you find any errors, please report them, including the page title and as accurate of a description as possible, to:
allison@cse.ucsc.edu

 
 
 
 
 

Last modified: Wed Mar 17 14:20:24 PST 1999