Syllabus for CPSC 211, Sections 502,  503
Fall 2008


Instructor: Dr. Teresa Leyk

Office: 901E Richardson Bldg.

phone: 845-4456

e-mail: teresa@cs.tamu.edu

Course web page: (all information about the course will be there):

http://courses.cs.tamu.edu/teresa/cpsc211/cpsc211-index.html

Class Time: MWF 3:00 pm – 3:50 pm, ZACH 105 B

Lab Time:

SectionTimeLabTAPT
502MW 12:40-1:30 PMHRBB 232Thomas GeorgeBrad Twitty
   tgeorge@cs.tamu.edubradtwitty@gmail.com
   MTWR 11:30-12:30 pmMW - 4:00- 5:00pm
   HRBB 309AF - 11:20am-12:20pm
    HRBB 219
503TR 12:45-1:35  PMHRBB 232Thomas GeorgeBrad Twitty
   tgeorge@cs.tamu.edubradtwitty@gmail.com
   MTWR 11:30-12:30 pmMW - 4:00- 5:00pm
   HRBB 309AF - 11:20am-12:20pm
    HRBB 219


Office Hours: MWF 10:15 am – 11:15 am, other times by appointment, 901E Richardson



Course Description: Credit 4. Specification and implementation of basic data structures and abstract data types: linked lists, stacks, queues, trees, hash tables, graphs; performance trade-offs of different implementations; asymptotic analysis of running time and memory usage; comparison and contrasting object oriented languages (typically Java) and non-object-oriented languages (typically C); emphasis on adherence to good software engineering principles.


Prerequisite: CPSC 111 “Introduction to Computer Science Concepts and Programming”, knowledge of C and Java programming languages.


Required Textbook: "Data Structures and Abstractions with Java" by Frank M. Carrano and Walter Savitch, 2003, Prentice Hall, (ISBN 0-13-017489-0). Also, you may need a C reference book: "A first book of ANSI C " by Gary J. Bronson, 3rd ed., Brooks/Cole or “C by Dissection” by Al Kelley and Ira Pohl.


Learning Objectives: At the end of this course students should be able to:

  1. Apply the concept of abstract data types (ADTs) for basic data structures.
  2. Implement each data structure using object-oriented and non-object oriented programming languages.
  3. Understand the relations between data structures and algorithms.
  4. Demonstrate familiarity with standard operations on data structures and their best, worst and average case analysis.
  5. Understand and be able to apply the principles of abstraction, encapsulation and information hiding to design software using C and Java programming languages.


Course Content (the topics and related chapters according to the textbook):


Grading: Your final grade will be determined based on programming homework assignments, quizzes, mid-term exams and the final exam.

Grading Scale: Grades will be assigned according to the following scheme:
90% –100% –> A, 80% – 89% –> B, 70% – 79% –> C, 60% – 69% –> D, 0% – 59% –> F
You can also get 2 points to your final score if you have perfect lab attendance, or 1 point if you have only one absence.


Learning process: From the syllabus you may have noticed that this course focuses on obtaining a computer science background and developing programming skills. Programming is not something what you can learn overnight by reading a textbook or lecture notes, it requires a lot of practice. The class TA, PTs and I are willing to help you to learn and understand the course material and master your programming skills so please see us during our office hours.

A few hints that will help you to succeed in this course:

In general, Computer Science is not an easy subject but it will payoff after graduation. CNNMoney posted on Feb. 8, 2007 the results of the survey called "The most lucrative college degrees". The value of degree was measured by the average starting salaries for the class 2007. The top salary offers are:

Chemical Eng. – 60,054

Electrical Eng. – 54,599

Mechanical Eng. – 54,587

Computer Science – 51,070

. . .

Liberal Arts Majors – 30,502.

I think that you are aware that the four years you spend in college set the stage for your life. You must learn how to balance school and fun.

Also, CNN Money produced a top fifty list of the Best Jobs in America:

  1. Software Engineer
  2. College professor
  3. Financial adviser
  4. Human Resources Manager
  5. Physician assistant
  6. Market research analyst
  7. Computer IT analyst
  8. Real Estate Appraiser
  9. Pharmacist
  10. Psychologist


Notes

Schedule for CPSC 211, Sections 502–503, Fall 2008 (tentative)
All changes in the schedule will be announced in the class
No.datedayTopicChap.homeworkquizwk
1Aug. 25MonIntroduction   1
2Aug. 27WedIntroduction to Data Structures   1
3Aug. 29FriObject Oriented Programming (OOP) in Java1, 2, 3PA 1quiz 11
4Sep. 01MonObject Oriented Programming (OOP) in Java1, 2, 3  2
5Sep. 03WedObject Oriented Programming (OOP) in Java1, 2, 3  2
6Sep. 05FriJava and C1, 2, 3 quiz 22
7Sep. 08MonJava and C   3
8Sep. 10WedArrays and Pointers in C   3
9Sep. 12FriPointers and Function Calls in C PA 2quiz 33
10Sep. 15MonPointers and Function Calls in C   4
11Sep. 17WedIntroduction to Analysis of Algorithms HW 1 4
12Sep. 19FriIntroduction to Analysis of Algorithms9 quiz 44
13Sep. 22MonIntroduction to Analysis of Algorithms9  5
14Sep. 24WedExam 1   5
15Sep. 26FriLists and Linked Lists4, 5, 6, 7PA 3 5
16Sep. 29MonLinked Lists. Doubly and Circular Linked Lists4, 5, 6, 7  6
17Oct. 01WedLinked Lists. Implementations in C and Java4, 5, 6, 7  6
18Oct. 03FriLinked Lists. Implementations in C and Java4, 5, 6, 7 quiz 56
19Oct. 06MonLinked Lists. Applications4, 5, 6, 7  7
20Oct. 08WedLinked Lists. Applications4, 5, 6, 7  7
21Oct. 10FriQueue and Stack4, 5, 6, 7 quiz 67
22Oct. 13MonQueue and Stack. Implementations20, 21, 22, 23PA 4 8
 Midterm      
23Oct. 15WedParsing and Evaluating Algebraic Expressions21, 23HW 2 8
24Oct. 17FriParsing and Evaluating Algebraic Expressions20 quiz 78
25Oct. 20MonRecursion and Stack20  9
26Oct. 22WedExam 2   9
27Oct. 24FriSorting Based on Recursion24  9
28Oct. 27MonSorting Based on Recursion12, 20 quiz 810
29Oct. 29WedGeneral Trees and Recursion24PA 5 10
30Oct. 31FriBinary Search Trees. Implementations25  10
 Q-drop Binary Tree Algorithms26, 28   
31Nov. 03MonBinary Tree Algorithms26, 28 quiz 911
32Nov. 05WedHeap Data Structure. Priority Queue27  11
33Nov. 07FriHeap Data Structure. Sorting Using Heap27  11
34Nov. 10MonHeap Data Structure. Sorting Using Heap27 quiz 1012
35Nov. 12WedGraph Data Structure29, 30HW 3 12
36Nov. 14FriGraph Data Structure. Implementation29, 30PA 6 12
37Nov. 17MonGraph Algorithms29, 30 quiz 1113
38Nov. 19WedHash Tables29, 30  13
39Nov. 21FriHash Tables19   
40Nov. 24MonExam 3   14
41Nov. 26WedHash Tables19  14
 Nov. 28FriNo classes   14
42Dec. 01MonReview (Friday schedule)   15
43Dec. 09TueFinal Exam for CPSC 211 (502,  503) 10:30am-12:30pm   16