CSCI 132: Basic Data Structures & Algorithms
About the Course
Course Description
CSCI 132. Basic Data Structures and Algorithms. 4 Credits. (3 Lec, 1 Lab) F,S
PREREQUISITE: CSCI 111 or CSCI 127 and M 151Q. An examination of advanced Java and basic data structures and their application in problem solving. Data structures include stacks, queues and lists. An introduction to algorithms employing the data structures to solve various problems including searching and sorting, and recursion. Understanding and using Java class libraries. The laboratory uses Java. Introduces Big-O Notation.
Class Resources
- SYLLABUS: Spring 2020
- Brightspace (D2L Learning Environment):Spring 2020.
- Textbook: Data Structures and Algorithms in Java;6th edition, Goodrich, Tamassia, Goldwasser
Available at the MSU Bookstore - zyBook (FREE!) to be used in class. Directions:
- Sign in or create an account at learn.zybooks.com
- Enter zyBook code: MONTANACSCI132DeFranceSpring2020
- Subscribe
- Lecture Videos: Links to the lecture recordings done in class will be under the Date heading on the syllabus.
- Class Notes: Subjects discussed in the lectures
- Java JDK
- http://www.oracle.com/technetwork/java/javase/downloads/index.html
- https://aws.amazon.com/corretto/ *Recommended (free and open software)
- IDE -- Please use one of the following IDEs for your labs and projects:
- Eclipse: (used in class)https://www.eclipse.org/downloads/
- Netbeans: http://netbeans.apache.org/
- IntelliJ: https://www.jetbrains.com/student/
- Java API
https://docs.oracle.com/javase/9/docs/api/index.html?overview-summary.html
Course Outcomes
By the end of this course, students should be be able to:
- Design and implement a class in Java
- Explain the concept of an ADT
- Implement linked lists, stacks, queues, and deques
- Apply consistent documentation and program style standards in Java
-
Be able to determine the time complexity of simple algorithms
Instructor
Meetings
- Monday, Wednesday, Friday from 3:10 - 4:00
- Norm Asbjornson Hall, Room 65.
Course Assistants
- Alexis Tingey (Section 002 Tuesday 8:00 - 9:50)
- Office: Barnard Hall 259: Day time - time, and by appointment.
- Email: Name Name <alexis_tingey@yahoo.com>
- Prashanta Saha (Section 003 Tuesday 10:00 - 11:50, see below for contact info)
- Office: Barnard Hall 259:Tuesday, Thursday 9 - 10, and by appointment.
- Email: Name Name <prashantasaha@montana.edu>
- Maria Gallivan (Section 004 Tuesday 12:00 - 2:00)
- Office: Barnard Hall 259: Tuesday 10 - 11, and by appointment.
- Email: Name Name <maria.gallivan@gmail.com>
- Ethan Fison (Section 005 Tuesday 2:10 - 4:00)
- Office: Barnard Hall 259: Day time - time, and by appointment.
- Email: Name Name <ethanfison@gmail.com>
- Prashanta Saha (Section 006 Tuesday 4:10 - 6:00)
- Office: Barnard Hall 259:Tuesday, Thursday 9 - 10, and by appointment.
- Email: Name Name <prashantasaha@montana.edu>
Other Help
Class Policies
No cheating - The work you submit to be graded must be your own. Unless it is expressly stated otherwise, out of class assignments (labs, projects, homework) should be done individually. Assignments can be discussed with other students, TAs, or instructors at a high level (verbally, whiteboard or paper, examples), but sharing and reusing written code or finished answers is prohibited. Exams and quizzes must be done individually with no sharing or discussion of solutions.
No late assignments - Assignments submitted after the due date will not receive credit. Please plan accordingly.
No rescheduling exams - Please check the syllabus early, and make certain that you will be able to be there at the required time and place. As a professional student, the only conflict with a priority matching a scheduled exam is another scheduled exam in another class.
Medical and other emergencies - If there is a medical emergency, tragedy or sudden hardship, you will need to provide written confirmation in order to have consideration for an exception to any grading schedules.
Collaboration Policy
All students should read the MSU Student Conduct Code.
When it comes to coding assignments, you may
- Work with the other people if teams are allowed. If teams are allowed, it will be explicitly stated for an assignment.
- Share ideas with others.
- Help others troubleshoot problems.
You may NOT
- Share code you write with others.
- Submit code that you (or someone on your team) did not write.
- Modify another's solution and claim it as your own.
Failure to abide by these rules will result in an "F" for the course and being reported to the Dean of Students.
Grading
Note: Exams must be taken at the regularly scheduled time and will not be given early.
- 5% zyBook Activities
- 15% Exam 1
- 15% Exam 2
- 15% Final Exam
- 20% Labs (the "in-lab" assignments are generally one or two hour programming exercises. They take place during time assigned by section, and proctored by TAs)
- 30% Projects (out-of-lab programming assignments that take longer than inlabs)
To pass the course, you must average at least 50% on the practicums. Assuming that this is the case, grades will be determined (after any curving takes place) based on your class average as follows:
- 93+: A
- 90+: A-
- 87+: B+
- 83+: B
- 80+: B-
- 77+: C+
- 73+: C
- 70+: C-
- 67+: D+
- 63: D
- 60: D-