Syllabus
CMPS 260: Introduction to Computer Science, Data Structures & Software Design
Spring 2008 - University of Louisiana at Lafayette - Frank Ducrest, instructor
C++ and program design | Class Notes | Syllabus | Textbook | Web site | Category
Syllabus for CMPS 260 Spring 2008
Introduction to Computer Science, Data Structures & Software Design
| Lecture: | 12:00 to 12:50 PM, HLG 215 |
| Labs: | ACTR 106 |
| Section 1, Monday, 2:30 PM to 3:45 PM | |
| Section 2, Tuesday, 12:30 PM to 1:45 PM | |
| Section 3, Tuesday, 2:00 PM to 3:15 PM |
| Instructor: | Frank Ducrest | |
| Office: | ACTR 215 | |
| Email: | fdd@louisiana.edu | |
| Web Pages: | Assignments, Projects, etc. - CMPS 260, Spring 2008 on Moodle | |
| Resource Pages - http://fidelio.cacs.louisiana.edu/260/ | ||
| Phone: | 337-482-5001 |
TA office hours: http://fidelio.cacs.louisiana.edu/260/classinfo/officehours.pdf
Course Description: Integrated software engineering principles, fundamental data structures and algorithm design and development. Focus on requirements, specifications, design and testing. Fundamental data structures will include arrays, linked lists, stacks and queues. Prerequisites: CMPS 150 and MATH 110 with a grade of C or better. Co-requisite for students planning to take CMPS 261: MATH 270.
Course Goals:
- To gain experience programming in C++.
- To gain experience in using Linux and Unix operating systems.
- To gain experience with object oriented development and related design issues.
- To develop a working knowledge of multidimension arrays, abstract data types, lists, stacks, and queues, searching, C++ templates, pointers and dynamic structures.
Textbook: C++ Programming: Program Design Including Data Structures, 3nd Edition; by D. S. Malik, Publisher – Thomsom Course Technology; ISBN13: 9781418836405, ISBN10: 1418836400
| Grading Scale: | Point Breakdown: | ||
| at least 90% or above | A | Labs, assignments, projects* | 20% |
| at least 80% but below 90% | B | Exam #1 | 20% |
| at least 70% but below 80% | C | Exam #2 | 20% |
| at least 60% but below 70% | D | Exam #3 | (final comprehensive) |
| 40%-below 60% | F |
- Labs and assignments will have the value of 50 points. Projects (i.e. programming assignments) will have the value of 100 or 200 points. Point grades for labs, assignments and project points will be summed, then averaged on the total possible points in order to calculate the overall labs, assignments, projects grade.
Your overall average must be 70% or above and you must have at least a 65% exam average and a 65% average on other assignments (labs, assignments, projects) to qualify to pass this class with a C or greater.
Attendance:
- A signin sheet will be used to take roll at each class meeting. It is the student's responsibility to sign the sheet.
- You are responsible for all missed work, regardless for the reason for an absence. You are responsible for getting any notes or material you may have missed.
- Absences for University sponsored events will be treated like any other absence.
- Students missing an excessive number of classes may be dropped from the class role.
Collaboration: Certain types of assistance are inappropriate for assignments and projects in this class. Read the collaboration policy given to you at the beginning of the semester.
Assignments, Projects and Exams:
- Your projects must compile with the Sun C++ compiler ("CC") as provided through the UCS Solaris hosts on the UCS network. Your projects will be compiled with the “CC” compiler before being graded. I. e., do not rely on the Gnu g++ compiler or MS Visual, etc. when developing your code. The CC compiler on the Linux systems in ACTR 106 and on the Ubuntu Linux virtual machine may be considered equivilent for development, but it is your responsibility to move code developed in Linux to your UCS class account and to insure that is compiles correctly there on the CC compiler. (To acquire a copy of the Ubuntu Linux virtual machine, write your CLID on a DVD+/R disk and give it to your instructor. Note: DVD+/RW are not be acceptable.)
- Assignments and programming projects will not be accepted late.
- To submit your projects, the code must be in the class directory. If you have an emergency and cannot finish a project on time, contact the instructor prior to the deadline, not after. You may submit a project as many times as you like before the deadline. Note that each submission overwrites previous submission, so be sure and submit ALL files each time.
- You have one week in which to question your grade on an assignment, project or exam starting from the date it is returned. After that time there will be no further discussion or review of the grade.
- Once you submit a project, do not modify files or change the time stamp of the files until you have resolved any questions about the grade you earned for the project.
- Hard copies of projects must be submitted in a manila folder. Do not staple or clip the sheets together. This folder is due in class or lab the first class day after the due date.
- In addition to the standard documentation each source file for projects must include the following certification of authenticity comment at the very beginning of the file.
Certification of Authenticity: {Pick one of the following:}
I certify that this assignment is entirely my own work.
{or}
I certify that this solution to the assignment is entirely my own work,
but I received some assistance from {name}. Description of the type of
assistance. (For example, if you consulted a book, and your solution
incorporates ideas found in the book, give appropriate credit; that is,
include a bibliographical reference.)
Etceteras:
- Incomplete Grades are given in this course only under unusual / special circumstances.
- You must have a pictured ID with you in order to take your exams and collect printouts in the main lab in the Conference Center.
- The UL at Lafayette Computer Science Department Policies regarding attendance, collaboration and auditing classes are in effect.
- Students are required to read the Academic Honesty section in the UL at Lafayette Undergraduate Bulletin or the UL at Lafayette Graduate Bulletin.
- Exams at locations other than the lecture room: Students with special needs should report to Services for Students with Disabilities. If you take your exams through that office, your appointments must be made for the same time and day as the class takes their exams.
Tentative Course Outline and Reading Assignments Reading Key:
**** | “thorough understanding required” | Your complete understanding of the material is essential for your success in the course. This material will be the basis of future material. Expect to use everything in this section in lab, projects, and exams. |
*** | “understanding required” | This is an example of the type of code that you will be expected to understand and create or will be broad concepts that you will be expected to apply. If you cannot follow this type of code or do not understand the concepts, the test questions and assigned projects will not be comprehensible. |
** | “basic understanding required” | You will write or use code in lab based on these concepts, then write or use code in your projects based on these concepts. |
* | “for expanded knowledge” | Material designed to give an expanded view of a subject and provide insight and support to your understanding of C++ programming or object orientation. More than background material, but not a central component of the class. Will affect code that you will use, but will not be central to the code you will write. |
- Introduction and Review
- syllabus, course coverage, grading policies
- assignment #1 – Unix review
- review of Chapters 9 and 10
- project #1
- Classes, Object Oriented Programming and Data Abstraction
- Reading: Chapter 11
- review programming example Candy Machine
***
- review programming example Candy Machine
- project #2
- Reading: Chapter 12
- read about inheritance, pages 668 – 693
**** - read about composition and other object oriented issues pages 693 – 701
**
- read about inheritance, pages 668 – 693
- Reading: Chapter 11
*** Exam # 1 ***
- Pointers, Classes, Virtual Functions, Abstract Classes and Lists
- Reading: Chapter 13
- pages 734 – 757
** - pages 758 – 786
** - pages 786 (dynamic Array-Based Lists) – 804
**** - Project #3
- pages 734 – 757
- Reading: Chapter 13
- Overloading and Templates
- Overloading
- Reading: Chapter 14, pages 818 – 880
**
- Reading: Chapter 14, pages 818 – 880
- Templates
- Reading: Chapter 14, pages 881 – 892
**
- Reading: Chapter 14, pages 881 – 892
- project #4
- Overloading
- Exceptions
- Reading: Chapter 15
- pages 908 – 939
*
- pages 908 – 939
- Reading: Chapter 15
- Recursion
- Reading: Chapter 16
- pages 946 – 971
*
- pages 946 – 971
- Reading: Chapter 16
*** Exam # 2 ***
- Linked Lists, Stacks and Queues
- Linked Lists
- Reading: Chapter 17
- pages 982 – 1018
**** - programming example Video Store
***
- pages 982 – 1018
- Reading: Chapter 17
- project #5
- Stacks
- Reading: Chapter 18
- pages 1076 – 1112, /*
- Reading: Chapter 18
- Queues
- Reading: Chapter 18
- pages 1131 – 1149, /*
- Reading: Chapter 18
- Ordered Lists, Doubly Linked Lists
- Reading: Chapter 17
- pages 1018 – 1045
**
- pages 1018 – 1045
- Reading: Chapter 17
- project #6
- Linked Lists
- Design
- Reading: Programming Documentation Standard, parts I, II, II.1, II.2, II.3
** - design project
- Reading: Programming Documentation Standard, parts I, II, II.1, II.2, II.3
- Sequential and Binary Search, Asymptotic Notation (Big 0 Notation)
- Reading: Chapter 19
- pages 1184 1204
**
- pages 1184 1204
- Reading: Chapter 19
*** Exam #3 (final – comprehensive) ***
Additional topic: Makefiles and the make utility will be covered only in lab.