CSC 322: Programing 3: Advanced Data Structures: 3 hours
Description
A continuation of Programming 2. Students will learn to design and use data structures including stacks, different types of queues, different types of trees, graphs, and other advanced data structures. Complex sorting routines and algorithm analysis will be covered. Pre-requisite: CSC 221.
Goals for CSC 322 are:
- Further develop programming skills
- Learn and use different data structures
- Enhance team development skills
Course outcomes for CSC 322 are:
Upon complete of CSC 322, students will:
- be able to appropriately use data structures found in a language\x92s API
- be able implement different data structures on their own
- be able to use complex and efficient sorting algorithms
- be able to do algorithm analysis
Program outcomes for CSC 322 are:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (Computing student learning outcome 1)
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program\x92s discipline. (Computing student learning outcome 2)
- Communicate effectively in a variety of professional contexts. (Computing student learning outcome 3)
- Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles. (Computing student learning outcome 4)
- Learn new areas of technology. (Computing student learning outcome 6)
- Apply computer science theory and software development fundamentals to produce computing-based solutions. (Computer Science student learning outcome 1)
- Support the delivery, use, and management of information systems within an information systems environment. (Computing and Information Systems student learning outcome 1)
- Apply security principles and practices to maintain operations in the presence of risks and threats. (Cyber Security student learning outcome 1)
Integration
- Self learning by learning on additional data structure and developing a program using it.
- Technical writing by submitting high caliber software development reports
- Team skills by working on teams with at least two programs
- Professional by doing assigned learning tasks in a timely manner
- By implementing secure programming in each program and reporting on it and also existing security weaknesses.
- Ethics by writing a report about the ethical components of associated with two programs developed
Additional course goals
- Learn C/C++
- Develop Linux skills
Details
- Professor: Dr. Cathy Bareiss
- Office SB 31
- Class Time: 12:30-1:50 TR
- Class Location: S 025
- Textbook: Student membership in ACM. Resources from ACM Learning Center that will be used include:
- FDSC: Fundamentals of Data Structures in C, Second Edition, ISBN 9780-929306-40-7, Ellis Horowitz
- DSPDC Data Structures and Program Design Using CA Self-Teaching Introduction, 978-1-68392-207-0, Dheeraj Malhotra
- CP: C ProgrammingA Self-Teaching Introduction, ISBN: 9781683920908, RAJIV CHOPRA, PhD
- ATC: Advanced Topics in CCore Concepts in Data Structures, 978-1-4302-6400-2, Noel Kalicharan
- CPDS: C Programming and Data Structures, 9789383828289, By K. Venkateshwara Rao
- DSCCP: Data Structures Through C++, 4th Edition, 978-9-35551-188-1, Yashavant Kanetkar
- SEC1: https://sansorg.egnyte.com/dl/rWlpJToweX : A white paper on secure C programming
- SEC2: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1579.pdf : A complex/complete set of rules for secure C programming
- Suggested linux labs (from ACM learning center). Many other resources do exist
- Getting Started with Linux Command Line Fundamentals [Getting Started]
- Vim Fundamentals in Linux [Guided]
- Use Linux Tools and Commands [Guided]
Course Content
Policies
Assignments
For each lab, include the following
- In lessons learned:
- Something about Linux you learned while doing that lab
- Something about C that you learned that was not expected. Something that would be expected might be the syntax of the for statement since that is the same as in Java
- In the security section
- One aspect of secure programming that your program addresses and how
- One aspect of secure programming that your program does not address and why. The reason could be complex or as simple as there was not enough time to address it.
Other
There are two additional assignments involving reactions to current events. Announcements will
not be made in class. You are responsible to track these yourself. Standard late policy will apply to these assignments.
You are to react to current events/publications. A reaction to an article includes enough to convince me that you have read the entire article and not just the headline or first paragraph. It should include a summary of what was said and your reaction. Be sure to give a complete reference to the item. These should be turned in as a hard copy in class within one week of the item being published. You may pick when. Each one does have a deadline. The ones you pick must be unique to this course
- Write a reaction to one article in the ACM TechNews. It must be programming related. This needs to be completed by midterm.
- Write a reaction to one article in XRDS. It must be programming related. This needs to be completed before the final.
Other assignments/quizzes may be made throughout the semester
Labs
- Extra credit will only be made available based on the entire class needs. Such as an exam that most people did poorly on despite a good effort. Also each lab may have the opportunity to earn some extra credit. That should only be attempted if the regular lab is completed and done well.
Grades
Your grades are made up of: programs (45%), exams (50%), and homework. etc. (5%)
- Grade scale
- 93% <= average <= 100% → A
- 90% <= average < 93% → A-
- 87% <= average < 90% → B+
- 83% <= average < 87% → B
- 80% <= average < 83% → B-
- 77% <= average < 80% → C+
- 73% <= average < 77% → C
- 70% <= average < 73% → C-
- 67% <= average < 70% → D+
- 63% <= average < 67% → D
- 60% <= average < 63% → D-
- 0% <= average < 60% → F
Tentative Schedule
Tuesday |
Thursday |
1/7: |
1/9: Introduction to C, stacks |
1/14: more C, stacks, queues |
1/16: queues |
1/21: Trees Program 1 due |
1/23: Binary trees |
1/28: Binary Trees |
1/30: Binary search trees |
2/4: Binary search trees Program 2 due |
2/6: Exam 1 |
2/11: Advanced trees |
2/13: Advanced trees |
2/18: Advanced sorting |
2/20: Advanced sorting |
2/25: Advanced sorting Program 3 due |
2/27: SIGCSE Exam 2 |
3/4: Spring Break |
3/6: Spring Break |
3/11: Advanced programming |
3/13: Hashing |
3/18: Hashing Redo of external sorts due |
3/20: Graphs |
3/25: Graphs |
3/27: Exam 3 |
4/1: Graphs hashing due |
4/3: Graphing |
4/8: Missional AI Summit Secure programming |
4/10: Missional AI Summit Homework due |
4/15: Secure programming |
4/17: Easter Break |
4/22: Exam 4 |
4/24: Reports on advanced data structures Graphing program due |
4/29: Finals Week Final exam: 10:30-12:30 |
5/1: Finals week |
Campus Integrity Policy
The student handbook (p. 156) states: Any act of deceit, falsehood or stealing by unethically copying or using someone elses work in an academic situation is strictly prohibited.
- A student found guilty of plagiarism or cheating will receive an F(zero) for that particular paper, assignment or exam. Should this occur, the professor will have an interview with the student and will submit a written report of the incident to the academic dean.
- If a second offense should occur, the student will be asked to appear before the professor, the academic dean and the vice president for student development.
The student should realize that at this point continuation in a course and even his/her academic career may be in jeopardy. In the event of a recommendation for dismissal, the matter shall be referred to the Student Development Committee.
AI Use Policy
It is expected that any coursework (including, but not limited to, essays, papers, exams, projects, and lab reports) submitted by a student will be a product of their own creation, demonstrating their achievement of the learning outcomes related to the assigned task. With this in mind, note that submitting work that includes unauthorized or undocumented use of Artificial Intelligence (AI) may be considered as cheating or plagiarism. If you are unsure about appropriate use of AI on a given assignment, talk with your professor.
Services
The Americans with Disabilities Act (ADA) is a law which provides civil rights protection for people with disabilities. Bethel University, in compliance with equal access laws, requests that students with disabilities seeking to acquire accommodations make an appointment with the Center for Academic SuccessDisability Services. It is located in the Miller-Moore Academic Center, 033. You may also phone 574-807-7460 or email
rachel.kennedy@betheluniversity.com.edu for an appointment.
Education Majors:
Please use the link below to review all appropriate standards.
Standards