| Week | Lecture Topics (approx) |
|---|---|
| Week 1 | Overview, Introduction to Java, Java data, Java Program Structure |
| Week 2 | Introduction to objects, conditional statements, methods, and naming |
| Week 3 | Recursion and Iteration, Intro: Arrays |
| Week 4 | Arrays, Intro: Searching and Sorting |
| Week 5 | Arrays, Sorting, Complexity |
| Week 6 | Inheritance, Intro: Linked Lists |
| Week 7 | Lists, Generics, Headed Lists |
| Week 8 | SPRING BREAK |
| Week 9 | Linked Lists Part 2, Interfaces |
| Week 10 | Linked List Recap, Stacks, Exceptions |
| Week 11 | More Stacks and Queues, Exceptions, Priority Queues |
| Week 12 | Discrete Event Simulation |
| Week 13 | Intro to Binary Trees |
| Week 14 | Binary Search Trees |
| Week 15 | Hash Tables, Binary Trees in Arrays, Binary Search, Merge Sort |
CSCI 1933 Spring 2026 Syllabus
Changes
This syllabus is subject to change. If the syllabus needs to be changed after the 1st day of the semester those changes will be reflected here.
Course Information
Lecture
- MWF 09:05 AM - 09:55 AM Mayo Bldg & Additions C231
Computer Labs
- Laboratory (021) M 12:20 PM - 02:15 PM Walter Library 106
- Laboratory (022) M 02:30 PM - 04:25 PM Walter Library 106
- Laboratory (023) M 04:40 PM - 06:35 PM Walter Library 106
- Laboratory (024) M 06:50 PM - 08:45 PM Walter Library 106
Course staff
Instructor
- Adriana Picoral (PhD, she/her)
- apicoral@umn.edu
- Office: 300A Lind Hall
- office hours (drop in):
- Monday 12pm to 2pm
- Tuesday 1pm to 3pm
- office hours (drop in):
Course Coordinator
- Nat Rose
- rosex557@umn.edu
- Office: Lind 300D
- office hours (TBA)
Course Goals and Outcomes
Upon completing this course you should be able to:
- Solve, using object-oriented techniques, moderately complex real-world problems using the Java language
- Select and implement the most appropriate data structures and algorithms for a given application using complexity analysis
- Verify the performance and correctness of your solutions and effectively debug the software you have written as evidenced by the correct operation of your code
- Apply professional skills for our field, including time management, meeting deadlines, and working collaboratively when appropriate.
CSci 1933 or equivalent is a required course for computer science majors and a prerequisite for most of the higher-level computer science courses. CSci 1133 (Python) is a prerequisite for CSci 1933. Students with a background in CSci 1113 (C++) or 1103 (Java) rather than 1133 should take CSci 1913 instead of this course.
Getting Help
It is very important to keep on top of this course. If you fall behind, it is difficult to catch up. We have an extensive course staff available to help you. Please bring your questions to us in a timely fashion, so that we can do our part to help you stay on schedule.
To make things efficient, we have established the following points of contact (please adhere to them):
- Administrative Issues/Special Circumstances: Nat Rose (the course coordinator for CSci 1933)
- Project or Lab Grading Questions: any TA, or if unresolved, Nat Rose
- Lab Assignment or Project Help: any TA
- Lecture or Reading Questions: Adriana Picoral
Accommodations
I am committed to ensuring that all students feel safe and supported in this learning environment. I recognize that there is a lot happening in the Twin Cities right now, and some students may not feel comfortable traveling to campus during this time. Your safety and well-being are my priority, and I want to ensure you can continue your education without compromising your sense of security. If you have concerns about commuting to class or being on campus, please feel free to join our lecture on zoom.
For lecture attendance, I will make a zoom link available for you to attend lecture synchronously. I will have my TAs monitor the chat for questions, so please use the zoom chat if you have any questions during the lecture. You don’t need to create a zoom account to connect to my lecture zoom link, but you can do so through https://umn.zoom.us/
Join Zoom Meeting https://umn.zoom.us/j/98470842437?pwd=FPGWmjwL0MFdt6AyWERAJmNboRUs4B.1
Meeting ID: 984 7084 2437 Passcode: 1933-sp26
I recommend you read the instructions for assignments and labs and attend the online office hours for any questions you might have for completing the your submissions.
If you have any other concerns or require specific accommodations to feel secure and able to fully participate in this course, please reach out to me directly. All requests will be handled with discretion and respect, and I will work with you to identify reasonable accommodations that address your needs while maintaining the educational objectives of the course.
Course Schedule
The tentative Schedule of the class material can be found in this google doc (You must be logged into a University of Minnesta account to view then document). This is a tentative schedule and likely to change.
Topics per week
Quizzes
| Quizzes | Date |
|---|---|
| Quiz 1 | Fri, Feb 13, 2026 |
| Quiz 2 | Fri, Mar 6, 2026 |
| Quiz 3 | Fri, Apr 3, 2026 |
| Quiz 4 | Fri, Apr 17, 2026 |
| Quiz 5 | Mon, May 4, 2026 |
Textbook
The textbook for the course is Introduction to Algorithms and Data Structures, 6th Edition, on zyBooks. It is online and inclusive access for all those enrolled in the course has been enabled.
Instructions on how to sign up for the course textbook are provided in the Week 0 Reading assignment.
Assignments
The Modules page provides a week-by-week list of all assignments (including links to the details) and other course content, and you should check it regularly.
Labs
The labs are a vital component of this course, and attendance is required to get full credit for the lab. The lab material will be tightly coupled to the lectures each week and generally provide an opportunity for practical experience with topics covered in the immediately preceding lecture(s). In a few situations, new topics that are better understood directly through hands-on applications (file input/output, development environments, and unit testing) will be introduced in the lab only. To be prepared for the labs, it is important to stay current with all components of the course. Keep in mind that the labs are practical applications of the lecture concepts rather than recitations of lecture information. Be prepared to be challenged in the lab, but also be encouraged that this is where most of the practical learning will occur.
There will be a lab assignment given each week for completion during your scheduled lab time. Each lab consists of individual milestones which are checked and graded by a TA as you complete them. Labs should be completed with one other lab partner. (At the first lab meeting, we will help you find a lab partner.) Milestones may be redone and re-checked if needed. TAs may ask you questions to verify your understanding of your work. Depending on your understanding, the TAs may ask you to revisit your work before checking off a milestone. Most or all of the lab milestones should be completed during the lab period, but you will have up to the end of office hours on Friday of the current lab week to have any remaining milestones checked off in person by a TA during office hours. Milestone 0 credit for each lab is earned by attendance at the lab meeting. When Milestone 1 is completed during lab, Milestone 0 credit will also be awarded. Lab milestone checkoff is only done by the TAs (not the instructor), but any TA from any section of 1933 can check off your milestones. Please make every attempt to have your lab partner with you when you have milestones checked during office hours. Parts of labs may be used in project assignments. Completing the labs will not only help you learn and apply the material but could also make the projects easier.
Always create your tests to verify your code’s correctness. In addition, course staff may create unit tests that are used to verify your code’s correctness when grading.
The 3 lowest lab grades (including missed labs) will be dropped when the final grades are computed.
| Labs | Date |
|---|---|
| Lab 01 Due | Mon, Feb 2, 2026 |
| Lab 02 Due | Mon, Feb 9, 2026 |
| Lab 03 Due | Mon, Feb 16, 2026 |
| Lab 04 Due | Mon, Feb 23, 2026 |
| Lab 05 Due | Mon, Mar 2, 2026 |
| Lab 06 Due | Mon, Mar 16, 2026 |
| Lab 07 Due | Mon, Mar 23, 2026 |
| Lab 08 Due | Mon, Mar 30, 2026 |
| Lab 09 Due | Mon, Apr 6, 2026 |
| Lab 10 Due | Mon, Apr 13, 2026 |
| Lab 11 Due | Mon, Apr 20, 2026 |
| Lab 12 Due | Mon, Apr 27, 2026 |
| Lab 13 Due | Mon, May 4, 2026 |
Projects
There will be 4 projects during the semester that provide an opportunity to apply course concepts to solve larger problems. (By comparison, the labs generally are short implementations of specific lecture concepts.) Each project will specifically state whether it is an individual or two-person project.
As with the lab assignments, you should always create your tests to verify your code’s correctness. In addition, course staff may create unit tests that are used to verify your code’s correctness when grading.
Projects will incur a penalty of 10% if submitted less than 24 hours late, or 20% if submitted less than 48 hours late. Projects submitted more than 48 hours late will receive no credit. However, due dates are set out far enough to accommodate schedules without the need to utilize the late days. You are encouraged to start projects early, work in stages to get small pieces working, and always submit what you have so far.
You may submit projects more than once, and the most recent version will be the one that is graded. So submit early and often!
| Projects | Date |
|---|---|
| Project 1 Assigned | Mon, Feb 2, 2026 |
| Project 1 Due, Project 2 Assigned | Mon, Feb 23, 2026 |
| Project 2 Due, Project 3 Assigned | Mon, Mar 23, 2026 |
| Project 3 Due, Project 4 Assigned | Mon, Apr 13, 2026 |
| Project 4 Due | Mon, May 4, 2026 |
Readings
There will be weekly reading assignments, due Mondays by 5 pm, which cover the material that will be presented in lectures that week. These assignments track your interaction with the participation activities (multiple choice questions, simulations, etc.), and award credit when you have fully completed the activity. You do not have to get the answer right the first time, you just have to get it right eventually (and before the deadline). Even if you do get an answer correct the first time, it may be helpful to select or enter incorrect answers and read the associated feedback.
| Readings | Date |
|---|---|
| Reading 1 Due | Mon, Jan 26, 2026 |
| Reading 2 Due | Mon, Feb 2, 2026 |
| Reading 3 Due | Mon, Feb 9, 2026 |
| Reading 4 Due | Mon, Feb 16, 2026 |
| Reading 5 Due | Mon, Feb 23, 2026 |
| Reading 6 Due | Mon, Mar 2, 2026 |
| Reading 7 Due | Mon, Mar 23, 2026 |
| Reading 8 Due | Mon, Mar 30, 2026 |
| Reading 9 Due | Mon, Apr 6, 2026 |
| Reading 10 Due | Mon, Apr 13, 2026 |
| Reading 11 Due | Mon, Apr 20, 2026 |
| Reading 12 Due | Mon, Apr 27, 2026 |
| Reading 13 Due | Mon, May 4, 2026 |
Participation and Engagement
Most lectures will have at least one hands-on activity that is designed to engage us through example and exploration. The activities must be completed at specific times during lectures as they are integral to the lecture material–often with related discussion on one or both sides of the activities.
Grading Policies
Categories and Weights
- 60% Quizzes (5 individual quizzes approximately every 3 weeks through the semester, lowest grade dropped)
- 20% Projects: 4 Programming Projects (5% each)
- 15% Labs
- 5% Reading Assignments
Grading Scale
Using the above weighting, a total of 90% and up will earn you some level of A, 80% and up at least some level of B, 70% and up at least some level of C, 60% and up at least a D. Your grade is determined on an absolute scale, so the performance of others in the class will not negatively affect your grade. We do not use “curving” to achieve a certain percentage of each letter grade, so theoretically, everyone can earn an A. Using the weights above, you can always know where your grade stands.
here is about a 50/50 split between exams and coursework. The coursework can be time-consuming and challenging. However, completing the coursework with excellence will help prepare you for the exams. In addition, there will be several practice problem sets posted during the semester that will help you prepare for the exams.
Regrade Requests
Must be submitted no later than 7 days after grades are posted. Regrade requests for midterms and quizzes must be submitted when they are handed back during the lab section (by the end of the lab).
Academic Integrity - Course Policy
On lab assignments, you will be strongly encouraged to work in pairs. The goal of working in pairs is not simply to “get it done quickly” but rather to make sure that, by working together and communicating ideas with each other, both of you master the material and help each other. But, communication between partners is essential. Communication is important for good software development. Be sure to communicate, and work closely together. Generally, splitting a project into pieces that each partner works on separately is NOT a good approach. Work on things together, exchange contact information, and let keep each other informed. It is highly preferable to work with a lab partner who is at about the same level as you. The TA staff can help to pair you with someone of a similar level.
Outside of working with one partner on labs and projects that specifically allow work with a partner, what you submit for grading is to be the result of your efforts exclusively. Copying or using another student’s work is academic dishonesty. Similarly, it is academic dishonesty to use code found in online tutorials, chat sites, code-for-hire, AI platforms, or code obtained from student help websites or similar sources without prominent complete, and detailed credit given to the site and author. Any ideas, help, or code that you incorporate into your work that is not yours or from the course staff must be specifically credited clearly within your work. Note that this is not limited to code; even ideas that were not your own and obtained from an outside source must be credited. Forgetting to credit an outside source does not excuse academic dishonesty.
In addition to obtaining code from elsewhere, sharing code directly or indirectly (via public posting) is academic dishonesty. Your code must remain private and it cannot be shared at any time, even after the completion of the course. If work you completed is shared directly or indirectly, purposely or accidentally, with another, it is a violation of course academic policy. Students are responsible for protecting their code from others both during the course and afterward. This includes public posting of project or lab code on websites or shared repositories at any time. For more information please see the Note on Academic Conduct for Students In CSci Classes.
Academic dishonesty will be dealt with severely and must be reported to the Office for Community Standards.
Exams and quizzes are individual efforts, and each exam and quiz will require signed statement by the student agreeing to this policy (see below).
The specific consequences of cheating will be determined on a case-by-case basis by the professor. As a general guideline all related assignments will be given a score of 0, which cannot be dropped (you will retain your drops, you just won’t get to drop this assignment). Secondly, one letter grade will be dropped from your final grade (if a grade of A a grade of B will be entered). The consequence for repeated incidents will be more severe, including failing the course.
General Policies
Quizzes and Exams
Quizzes and exams are to be taken without books or notes (unless specifically allowed) and are to be completed using only your knowledge of the course material. Copying, assisting, or collaborating on cheating is considered cheating which can result in failing the course and/or more severe disciplinary action. Violations are referred to the Office for Community Standards.
Incompletes
Incompletes will be given only in very rare instances such as when an unforeseeable event prevents a student, who has completed all the coursework to date, from finishing a small portion of the course (typically the final assignment or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentation must be provided for an Incomplete to be granted, and arrangements for the Incomplete should be made as soon as such an unforeseeable event becomes apparent rather than after the fact. A specific plan for completing work must be made and adhered to, and a formal plan to finish all remaining work must be submitted for a grade of Incomplete to be granted.
Due Dates
Please carefully read the schedule and be aware of the due dates for projects and exam dates; it is your responsibility to turn in assignments and take exams on the dates listed.
Updates
Watch the class Canvas page for announcements, changes, and updates to the information provided here.
Make-up Work for Legitimate Absences
Students will not be penalized for absence during the semester due to unavoidable or legitimate circumstances. Such circumstances include verified illness, participation in intercollegiate athletic events, subpoenas, jury duty, military service, bereavement, and religious observances. Such circumstances do not include voting in local, state, or national elections. For complete information, please see the official university policy regarding makeup work.
Additional UMN Policies
If you would like to review additional UMN Policies that apply to this course, you may read through them in this linked document Download this linked document. While these are important policies to be aware of, in case you need to use them, and we may discuss them briefly at the start of the semester, they are not specific to this course, so we include them as a separate document, to keep the syllabus a bit shorter.