Instructor: Dan Leyzberg
Description of Course Goals and CurriculumIntroductory course in computer science and engineering using Java and object-oriented programming. Course includes basics on computer hardware and software systems, algorithms and data structures, optimization, etc.
Learning From Classroom InstructionThe lecture videos for this course provided by Dr. Sedgewick are very well planned, organized, and presented. Just watch these as fast or as slow as you need to and refer back to them as needed and you’ll be fine. Did not find it necessary to read the textbook or even attend the in-person lectures (which are semi-optional). Precept is a good time to bring up any questions you may have or get clarification on topics you may not have fully understood from the lecture videos and the precept problems help give you a good start on working with the necessary code before having to use it for the weekly assignment.
Learning For and From AssignmentsThe coding assignments in this class are very well put together and the instructions for them are very clear. The only other material provided for the course are the precept problems which are optional, something you should do if you are unfamiliar with some of the data structures/code but if you have some coding background you can go straight to the weekly assignment. For the exams, coding and written, they provide previous years exams that you can practice with. If you’re relatively proficient with Java and basic comp sci (e.g. AP Computer Science level), you shouldn’t have any trouble with the coding exams. For the written exams, some level of memorization is required for some topics that are course specific (e.g. TOY machines) which you should be able to pick up from the lecture videos, precept problems, and completing the previous years exams. The exams in this course are not difficult as it is not curved, so try to and expect to do well (>90 % for A-/A) on them from a raw score perspective.
External ResourcesOffice hours are a helpful resource for this course on some of the later coding assignments as you could get stuck on some bug and waste a lot of time when you can quickly get through it with help from a TA. For some of the later assignments, its worth it to just start and plan to work though most of it during office hours to just get it done with in the least amount of time necessary.
What Students Should Know About This Course For Purposes Of Course SelectionOverall, this is a very well structured introductory computer science course that starts from the basics and leads to a reasonably good fundamental understanding of the subject at a fairly complex level for such a short period of time. Highly recommended both for beginner coders and for people with some coding experience who are looking for a refresher course to built good fundamentals before going into higher level computer science subjects.
Computer Science: An Interdisciplinary Approach