Computer Science and Engineering CSE 1384 Intermediate Computer Programming

advertisement
Computer Science and Engineering CSE 1384
Intermediate Computer Programming
CREDITS/CONTACT HOURS: Credit Hours: 4, Contact Hours: 90
COORDINATOR:
Dr. T.J. Jankun-Kelly
TEXTBOOKS: Reed & Zelle. Data Structures and Algorithms Using Python and C++.
Franklin, Beedle & Associates, 2009.
a. Supplemental Material: Online course material available from
http://courses.webct.msstate.edu/
SPECIFIC COURSE INFORMATION:
a. Catalog Description: Three hours lecture, Three hour laboratory. Object-oriented
problem solving, design, and programming. Introduction to data structures, algorithm
design and complexity. Second course in sequence designed for CSE, CPE and SE
majors.
b. Prerequisites: CSE 1284 with grade of C or better
c. Required/Elective:
Computer Science – Required
Software Engineering – Required
Computer Engineering – Required
SPECIFIC GOALS OF THE COURSE:
a. Specific Outcomes of Instruction:
1. To advance understanding of the basic principles of computer programming using
the Python and C++ programming languages.
2. To continue to introduce principles and practice of software development using
the object-oriented paradigm.
3. To advance understanding of common linear data structures and their complexity
4. To reinforce good software development practice with attention to software
quality and with particular emphasis on reusability.
b. Criterion 3 Outcomes:
Note: Parenthesized list indicates the ABET EAC and CAC outcomes addressed by
each performance criteria.
1. Demonstrate the ability to develop an object-oriented solution to a variety
of problems using object-oriented principles of encapsulation, modularity,
hierarchy and abstraction (EAC: k; CAC: i)
2. Demonstrate an understanding of algorithm complexity analysis (EAC: a;
CAC: a)
3. Demonstrate the ability to develop and carry out a basic test plan for a
software product (EAC: b, c, k; CAC: c,i)
4. Demonstrate the ability to use object-oriented programming techniques
including inheritance, overloading, and polymorphism and generic
programming (EAC: c,e,k; CAC: b,c,i )
5. Demonstrate the ability to implement and use common linear data
structures (EAC: k; CAC: i,j)
6. Demonstrate the ability to analyze and apply common searching and
sorting algorithms (EAC: a, b; CAC: a,j,k)
TOPICS COVERED:
Lecture
(Number of class hrs)
1. Introduction to the course
1
2. Algorithm complexity. Run-time analysis using Big-Oh
notation
5
3. Classes, inheritance, operator overloading, polymorphism
7
4. Static vs. dynamic memory management. References,
pointers and dynamic arrays
3
5. Introduction to linked lists
7
a. Insertion
b. Deletion
c. Traversal, iterators
d. Implementations
e. Complexity analysis
6. Stacks and Queues
4
a. Static vs. dynamic implementation
b. Implementations
c. Complexity analysis
7. Recursion
5
8. Advanced searching and sorting
3
9. Exceptions
2
10. Interpreted vs. compiled languages
5
11. Exams
3
Laboratory
(Number of lab weeks)
1. Lab orientation; familiarization with use of editors,
interpreter, and debuggers; submission process and grading.
1
2. Writing functions.
1
3. Finishing a basic class
1
4. Linked lists
2
5. Stacks
1
6. Queues
1
7. Recursion
1
8. Searching and sorting; complexity analysis
1
9. Introduction to compilers; basic compiled programs
1
10. Organizing information and action using classes
3
11. Using pointers and dynamic memory.
2
Download