|COMPSCI 342 -Data Structures
Tue. Thu. 2:40pm - 4:30pm
COMPSCI 342 DATA STRUCTURES AND ALGORITHMS
Basic data structures (continued from COMPSCI 225), introduction to
and analysis of algorithms, fundamental algorithms for sequences, sets,
graphs and combinatorial problems, introduction to complexity of
problems. Examples are drawn from
areas of computer science. PREREQ: COMPSCI 225 and MATH 187 and MATH
170 or PERM/INST.
- Computation of summations and probability
- Sorting algorithms.
- Some basic data structures (stacks, queues,
- Familiarity with Java.
By the end of this course:
- Each student will be able to choose the
most efficient algorithms to solve well-known problems. The students
will be able to do running time analysis to choose the most efficient
- Each student will be able to choose appropriate
data structures to implement algorithms.
- Each student will be able to design recursive
solutions to solve problems by the divide-and-conquer technique, and
will be able to evaluate the solution's running time through recurrence
- Each student will be able to design
solutions to solve optimization problems
using dynamic programming or greedy approach.
- Each student will have gained experience working in a team environment.
- Each student will have gained further experience
with an Integrated Development Environment, continuing from COMPSCI
225. This includes debugging techniques as well as testing techniques.
List of Topics
- Chapter 1. Sections 1.1, 1.2.
- Chapter 2. Sections 2.1, 2.2, 2.3.
- Chapter 3. Sections 3.1, 3.2.
- Chapter 4. Sections 4.1, 4.2, 4.3.
- Chapter 8. Sections 8.2,
- Chapter 6. Section 6.1, 6.2, 6.3,
- Chapter 7. Review.
- Chapter 9. Sections 9.1, 9.2
- Chapter 8.
- Chapter 10. Sections 10.3,
- Chapter 11. Sections 11.1, 11.2,
and 11.4 (except the analysis on pages 241-244).
- Chapter 12. Review Sections
- Chapter 13.
Sections 13.1, 13.2, 13.3 and 13.4.
- Chapter 18. Section 18.1,
- Chapter 21. Section 21.1,
Programming and Greedy Algorithms
- Chapter 22.
Section 22.1, 22.2, 22.3, 22.4.
- Chapter 23.
Section 23.1, 23.2.
- Chapter 24.
Section 24.1, 24.2, 24.3.
- Chapter 15. Knapsack problem (from
notes), Section 15.2, 15.3, 15.4.
16. Section 16.1, 16.2, 16.3.
- Chapter 17.
- Chapter 32.
Section 32.1, 32.2, 32.3.
- Chapter 34. One lecture on
- Homework and Programming Assignments: 500
- First Examination (18th March) : 150
- Second Examination:
- Final Examination (11th May, 3:30pm-5:30pm): 200 points
Class Mailing List
You can join the class mailing list by sending email
the following line in the message:
To send email to mailing list, send email to
or simply to cs342 on onyx
If you ever want to remove yourself from this
list, you can send mail to firstname.lastname@example.org with the following
command in the body of your email message:
or from another account, besides the machine from which
unsubscribe cs342 <complete email address from where you joined>
If you ever need to get in contact with the owner of
list, (if you have trouble unsubscribing, or have questions about the
itself) send email to email@example.com
All homeworks are due in class.
Solutions (requires a
All programming assignments are available in
All assignments are due by 11pm on the due date. You may submit
assignments up to 48 hours late for a 10% penalty without asking for
setting up your directories, submitting your programs etc.
Relevant Web Links
Last update: Fri Apr 17 11:12:44 MDT 2009
Send comments to firstname.lastname@example.org