This course explores the foundations of computer science including discrete mathematics, abstract data types, data structures, and algorithm analysis and design. Students will compare and contrast iterative and recursive algorithms to analyze design and performance tradeoffs.
Students will implement and test data structures including lists, stacks, queues, sets, maps, and trees. Students will then apply these to real-world problems like phone call routing to understand their tradeoffs. Students will also write technical blog articles about these topics to deepen understanding, improve technical writing, and bolster their online presence as knowledgeable and proficient software engineers.
Students must pass the following course and demonstrate mastery of its competencies:
Course Delivery: Synchronous | 7 weeks | 12 sessions
Course Credits: Synchronous: 3 units
By the end of this course, students will be able to:
- Implement, compare and contrast iterative and recursive algorithms.
- Analyze best-case and worst-case time and space complexity of an algorithm.
- Implement several abstract data types and data structures including linked lists, stacks, queues, hash tables, maps, sets, and binary search trees.
- Implement tree traversal algorithms: depth-first and breadth-first ordering.
- Write technical articles to deepen understanding and demonstrate mastery.
Course Dates: 2023 Term 4: March - May 10th
Class Times: Monday, Wednesday 4:00pm - 6:45pm PST
| Class | Topics | Assignments |
|---|---|---|
| 1 | Algorithm Analysis | |
| 2 | Linked Lists | Module 1 |
| - | Lab | |
| 3 | Number Bases | |
| - | Lab | Module 2 |
| 4 | Stacks & Queues | |
| - | Lab | |
| 5 | Recursion | Module 3 |
| - | Lab | |
| 6 | Hash Tables | Module 4 |
| - | Lab | |
| 7 | Trees | Module 5 |
| - | Lab | |
| 8 | Introduce Word Jumble / Technical Article | Module 6 |
| 9 | Lab Word Jumble / Technical Article | |
| 10 | Algorithm Optimization Word Jumble Solution Review & more! |
Word Jumble, Technical Article due Sunday after class ends @ 11:59pm PST |
We will be using Gradescope, which allows us to provide fast and accurate feedback on your work. All assigned work will be submitted through Gradescope, and assignment and exam grades will be returned through Gradescope.
Each lesson will have an associated module consisting of review, conceptual, and coding activities as well as interview prep related to the topic. At the end of each week you will turn your module work into gradescope for feedback and a score.
Resubmissions are open until 11:59pm on the Sunday that follows the final day of class.
Students will also write a technical article about a topic related to course content to deepen their understanding, improve their technical writing skills, and demonstrate mastery of computer science, which will bolster their online presence as knowledgeable and proficient software engineers.
As soon as grades are posted, you will be notified immediately so that you can log in and see your feedback. You may also submit regrade requests if you feel we have made a mistake.
To pass this course you must meet the following requirements:
- Pass all modules with a score 70% or higher
- Your lowest module will be dropped
- Complete and publish the Technical Article by the end of the term
- Actively participate in class and abide by the attendance policy
- Make up all classwork from all absences
- This course will use a self paced format
- You will be given recommended dates to turn assignments in to stay on track, but you can turn in any assignment later than the recommended date with no penalty provided Modules 1-3 are turned in no later than midterm and modules 3-6 are due by Friday on the final week of class.
- The technical article and Word Jumble are turned in no later than the Sunday following the final day of class at 11:59pm PST.
- You can resubmit any assignment after receiving feedback to improve your score provided it is turned in no later than the last day of class.
- Assignments should be completed by the recommended date in the above schedules section in order to receive timely feedback. Students falling behind should connect with the instructor for help staying on pace!
- Any modules not submitted by Friday on the final week of class will receive a score of 0.