Syllabus of CSCE350 Data Structure and algorithms

Course Summary

Programming is basically about data representation in computers and the operations applied to data. This course will introduce the basic data structures and commonly used algorithms for solving problems. This course will lay the foundation for a professional programmer.

Course Objective At the end of the class, students are expected to be able to

  1. To develop an understanding of the concepts in data structures
  2. To understand major algorithm design methdologies
  3. To implement the designed algorithms using high-level languages

Prerequisite You are expected to have some basic programming skills using C, or C++ or java.

Textbooks

Anany Levitin. Introduction to the Design and Analysis of Algorithms. Addison-Wesley, 2nd edition. (required)

(you can find cheap books at http://www.addall.com)

Meeting Time(s): Meeting Time: TTH 2:00PM-3:15PM
Classroom: 2A21 Swearinger Engineering Center
Instructor: Dr. Jianjun Hu
Email: jianjunh AT cse.sc.edu
Office: 3A66 Swearinger Engineering Center
Office Hours: TTH 3:30PM-5:00PM or by Appointment.

Lecture Notes/Assignments/Readings

Lecture notes, homework assignments will be available at the class website. You will be responsible for downloading them to prepare for class and homework.

Supplementary Readings Extensive reading materials will be provided each week to develop a broad understanding of algorithms

Grading

Your course grade will be based on homework assignments, 2 mid-term exam, 1 final exam, random quizzes, and attendance. The weights given to these components is:

  1. Homework assignments (40%)
  2. In-class midterm exams (2) (20 %)
  3. Final exam (35%)
  4. Attendance and participation(5%)

Grade: A (90-100%), B+ (85-90%), B (80-85%), C+ (75-80%), C (70-75%), D+ (65-70%), D (60-65%), and F (0-60%)

Covered Topics: (These are tentative topics. Changes may be made based on the available time.)

  1. Introduction
  2. Fundamentals of the Analysis of Algorithm Efficiency
  3. Brute Force
  4. Divide-and-Conquer, Decrease and Conquer, Transform and Conquer
  5. Space and Time Tradeoffs
  6. Dynamic Programming
  7. Greedy Technique
  8. Limitation of Algorithm Power and Coping with the Limitations of Algorithm Power

A due time will accompany each homework assignment. Late homework is not accepted without prior approval from the instructor. Homework may have different weight when it is counted into your final grade. The due time of the homework will be at the beginning of the class. Some homework questions need programming. You need to turn in your code to the departmental electronic dropbox. Code should be written in C or C++ and should be tested in the departmental Linux computers. Class attendance is required as claimed in University policy and a student is responsible for all the material covered in the class. Not knowing changes to class policy/homework/etc. is NOT an acceptable reason for non-compliance. Both midterm and final exams are closed to books and notes, except for a single-side letter-size cheat sheet for each midterm and a double-side one for the final exam. Grades of homework and exams will be uploaded into Blackboard when they are available.

Academic Integrity: Homework and examinations are expected to be the sole effort of the student submitting the work. Students are expected to follow the Code of Student Academic Responsibility. Every instance of a suspected violation will be reported. Students found guilty of violations of the Code will receive the grade of F for the course in addition to whatever disciplinary sanctions are applied.