ECS 30: Introduction to Programming and Problem Solving

Syllabus



1. Course objectives

2. Course Outline
3. Prerequisites

Math 16A or 21A (may be taken concurrently); prior experience with basic programming concepts recommended.

4. Homeworks
5. Where to Work

At home via ssh (see the UC Davis at home handout), or in the CSIF labs. The Computer Science Instructional Facility, CSIF, is located in the West wing of Kemper Hall in the basement. The exact rooms are room 67, 71, and 75, with the CSIF Support being in room 47. The OS on the CSIF machines is Linux (a UNIX version). Note that regardles of where your work you must ensure your programs compile and execute on CSIF machines. If they don't, even if they work correctly on your machine, you will recieve no credit.

6. Exams and Schedule All exams are cumulative and closed-book. Notes may be allowed.
NO EARLY OR LATE OR MAKEUP MIDTERMS or FINALS.

7. Grading

Grading Breakdown:

WARNING: Midterms and finals are heavily based on homeworks. If you don't work on homeworks yourself, you'll probably fail the midterms and finals.

Regrading is only considered within one week (7 days) from the date return.  The request must be submitted in writing to TA who graded it (email is OK). 

8. Communication Policy (Web, Email & Forum): 9. Advice

This is a programming intensive course so be prepared to work hard. Starting work early is critical to your success. You should use all resources available to you including lectures, discussion sections, office hours and smartsite. To do well in this course you must work on all homeworks on your own (discussing ideas are fine, sharing implementations is not). If you need help let us know as soon as possible, so you don't fall behind. Good luck.

10. Tentative Lecture Schedule

Week

Reading (JK and handouts)

Lecture Topics

1

Ch 1, Ch 2, Ch 3; App E, Unix Handout

Course introduction, Prereq Test, Algorithms, Basic C (if, while), C files, Data types, Basic UNIX commands, Compilers, gcc, make, emacs

2

Ch 3, 4; Unix Handout

Assignment, C operators (relational, logical), for statement, ++ /–, Bitwise operators, break, continue,  switch,

3

Ch 4, 5 Unix Handout

Conditional expressions, Functions and arguments, Parameters and scope

4

Ch 4, 5

Midterm 1
Pre-processor, Recursion, Arrays

5

Ch 6

Character Arrays, Multidimensional Arrays, Pointers

6

Ch 7

Pointers, Pointers and Arrays, Pointers and Functions, malloc

7

Ch 9, 10; gdb handout

Midterm 2

Formatted and Unformatted I/O, debugging

8

Ch 10

Structures and typedef, unions, enumerated types, Pointers to structures, self reference

9

Ch 8, 11.5, 11.6 Storage Classes and Type Qualifyers, Assertions and Exceptions

10

Miscellanous Topics and class review