Course Orientation and Intro
Ashok Kumar Veerasamy
1 Welcome to CS 361
- Course website: divided between Canvas and main website.
Course Themes
-
Common data structures and algorithms
- expanding your programming toolkit
- when/how to choose among alternatives
-
How do they do that in C++?
-
Interfaces to common data structures provided in the C++ std library
-
-
Predicting program performance
-
Analysis of algorithms (“big-O”)
- (Yes, there will be math.)
-
-
Algorithm design techniques
-
Desigining own algorithms
(considering some common patterns or styles)
-
2 This Semester
2.1 Course Delivery
- Asynchronous lectures
- Weekly review/question meetings by Zoom- office hours
- check Announcement section in Canvas
2.2 The Course Website
-
Start at the Canvas site
- Hosts announcements, calendars, tests
- Links to upcoming Zoom sessions
- Recordings of past sessions
-
Most of the content is on the main website
- Lecture notes, labs, assignments
- This material remains accessible after the end of the semester
The Outline Page
The Outline page is the “heart” of the course
-
Lecture notes
-
Assigned readings from the text book
-
Labs
-
Assignments
The Policies page
- Syllabus
- All students are responsible for reading the syllabus and adhering to the policies described there!
2.3 Communications
-
Office hours will be conducted by Zoom.
-
email to instructor
- Make sure that “CS361” appears somewhere in the subject line
- But that should not be the only thing in the subject line
- I try to answer all emailed questions within 24 hours on weekdays, 48 on the weekend.
- But email does get lost/blocked, so if you don’t hear from me in that time frame, send it again.
- Make sure that “CS361” appears somewhere in the subject line
2.4 Grading
Labs: | 10% |
Assignments & Quizzes: | 45% |
Part 1 & part 2 Exams: | 25% |
Final Exam: | 20% |
- The lowest assignment/quiz grade will be dropped
2.5 Due Dates
2.5.1 Exams
- Course is divided into three parts
- Each part ends with an exam
- final (part III) exam is cumulative
- Exam dates are fixed
- Each part ends with an exam
2.5.2 Assignment & Lab Due Dates
-
Assignments & quizzes in each part are due on the date shown in the outline, at 11:59:59PM EDT.
- Late submissions will not be accepted on exams, quizzes and non-programming assignments.
- Programming assignments will be accepted
- one day late at a penalty of 10%, or
- two days late at a penalty of 20%.
- Submissions more than two days late will not be accepted.
-
Readings, self-assessments, & other activities, if not given an explicit due date, should be completed by the ending date given for that entire module.
2.6 Labs
- Graded, but low-stakes
- Often involve practice or preparation for a later assignment
- Labs will be distributed and submitted via GitHub
2.7 Assignments
-
Assignments will be distributed and submitted via GitHub
-
I place a lot of emphasis on testing in these assignments.
- System testing refers to the testing of the entire program.
- Unit testing refers to testing the modules that you are working on, in isolation from the rest if the code.
-
My tests are designed to be self-checking
-
They tell you whether your code is passing or failing the tests
-
2.7.1 Unit Tests
- In most assignments, I will provide unit tests for the specific class or functions that you are supposed to be implementing in a larger program.
- These are often the quickest way to discover problems in your code.
- These are usually the quickest way to debug problems that you have discovered.
2.7.2 System Tests
- I will provide some of these, but not many.
- You are responsible for system testing your own code.
- When grading, I will run my own system tests on your submitted code.
- My system tests will not be revealed until after the assignment is completed.
3 Keys to Success
Pace Yourself
-
There’s a lot of material in this course.
-
Plan to finish the readings and ask any questions you have about them in the first half of the time allotted to a module.
Work on the assignments in the 2nd half. Not just the last day!
-
There’s not time to waste by staying stuck on one assignment.
- If you get stuck, ask questions.
- Take the time to frame your question carefully so that I have enough info to actually give you a helpful answer.
- If you are stuck for more than a few days, it’s time to move on.
- Read my solution and tests.
- Run the tests through your own code.
- If you don’t understand how my solution works, ask.
- If you get stuck, ask questions.
3.1 Where to Go from Here?
-
Go to the Policies page.
- Read the Syllabus.
- Read the Communications policy.
-
Then head off to the Outline Page