**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

- To develop an understanding of the concepts in data structures
- To understand major algorithm design methdologies
- 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:

- Homework assignments (40%)
- In-class midterm exams (2) (20 %)
- Final exam (35%)
- 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.)

- Introduction
- Fundamentals of the Analysis of Algorithm Efficiency
- Brute Force
- Divide-and-Conquer, Decrease and Conquer, Transform and Conquer
- Space and Time Tradeoffs
- Dynamic Programming
- Greedy Technique
- 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.