Compsci 61c is an in-depth course that covers the fundamentals of computer science. It's designed for students who want to gain a strong foundation in computer science principles.
The course is divided into several topics, including algorithms, data structures, and software engineering. These topics are taught through a combination of lectures, assignments, and projects.
Throughout the course, students will learn how to analyze and solve complex problems using computational thinking. This includes learning how to design and implement algorithms, as well as how to test and debug their code.
Course Structure
Compsci 61c is a comprehensive course that covers a wide range of topics in computer science.
The course is divided into four main units: data structures, algorithms, computer systems, and software engineering. Each unit is designed to provide a solid foundation in its respective area.
You can expect to spend about 12 weeks studying and learning the material, with a mix of lectures, discussions, and hands-on projects.
Labs
Labs are a crucial part of the course, giving you hands-on experience with the material.
Lab sections are held on Wednesdays and Thursdays, lasting 2 hours each. You can choose to attend any lab section you want, or work on labs asynchronously.
The first hour of each lab section is a review of the topics covered in the lab. This is a great opportunity to get a refresher on the material.
During the second hour, you'll have "lab party" style work time to collaborate with other students on the lab. Staff members will be available to provide help if you need it.
You're encouraged to work on labs in small groups, but make sure each student turns in their own solution. Lab assignments are autograded on Gradescope.
Projects
Throughout the course, you'll have the opportunity to work on four projects that will help you apply the course content in a practical way. Each project is designed to give you hands-on experience.
You can choose to work with a partner on each project, but be aware that partnerships must be registered on Gradar. Adding a partner to your Gradescope submission doesn't create an official partnership.
If you do decide to work with a partner, all work must be done in a pair-programming fashion, meaning you'll both work together on the project at the same time. Both you and your partner are responsible for the work in your repository and the work you submit.
Projects are submitted to Gradescope and graded on correctness. Make sure to add your partner to every Gradescope submission and activate the submission you want graded.
Collaboration and Academic Misconduct
Collaboration and academic misconduct are two closely related topics in Compsci 61c. We encourage you to interact with your peers to understand course material, but you must write your solutions strictly by yourself.
You can get conceptual help, but you can't share, receive, request, or submit solutions from other sources, such as other students or online platforms like Stack Overflow.
Make sure your solutions are not visible to anyone else, including private tutors. If you use GitHub or another code hosting platform, ensure your account is configured so your solutions are not publicly visible.
For questions with randomization, you can't share the question or any related data with anyone else, even after the assignment is due.
Here are some examples of what may be considered cheating:
- Sharing or receiving a solution from a friend
- Submitting a solution from a friend to see what the autograder looks like
- Looking at a solution that is not yours for "ideas"
- Using ChatGPT or GitHub Copilot's output as your solution
- Publicly posting your solutions for any reason
- Sharing a specific variant of a randomized question
If you suspect academic misconduct has occurred, or you've accidentally shared solutions with someone, email cs61c@ immediately.
Course Information
CS 61C is a comprehensive computer architecture course that covers a wide range of topics. The course is divided into several units, each with its own set of lectures, readings, and assignments.
The course schedule is quite packed, with homework assignments due every week or two. Here's a rough outline of the course:
- Homework 1: Number Rep (Due 9/2)
- Homework 2: C Concepts (Due 9/11)
- Homework 3: Floating Point (Due 9/21)
- Homework 4: RISC-V (Due 9/30)
- Homework 5: Logic, Timing (Due 10/9)
- Homework 6: RISC-V Datapath (Due 10/21)
- Homework 7: Caches (Due 11/9)
- Homework 8: Virtual Memory (Due 11/9)
- Homework 9: OS and I/O (Due 11/16)
- Homework 10: Performance Programming/Dependability (Due 11/24)
- Homework 11: ECC, Parity & Potpourri (Due 12/2)
Be sure to check the course website regularly for updates on assignments, readings, and lecture schedules.
Discussion
Discussion sections will be held on Mondays and Tuesdays, starting Week 2, and will last for 1 hour.
You have the flexibility to choose which discussion section you attend, and attendance is not graded.
A 2-hour bridge discussion section will also be offered, covering the same material as a regular section at a slower pace.
Pre-recorded discussion walkthroughs may be released as supplementary material, but they are not a replacement for attending a live discussion section.
CompSci 61c
CompSci 61c is a comprehensive course that covers various topics in computer science. The course is divided into several units, each focusing on a specific area of study.
The course starts with an introduction to computer architecture, including number representation and C programming basics. Students learn about C pointers, arrays, and strings, as well as memory management and C memory management.
The course also covers RISC-V architecture, including lw, sw, and decision-making instructions. Students learn about RISC-V procedures, instruction formats, and pipelining.
In addition to computer architecture, the course covers synchronous digital systems, including state, state machines, and combinational logic. Students learn about finite-state machines, logisim, and CPU design.
The course also explores parallel computing, including thread-level parallelism, mapping PL objects to the machine, and managing the address space. Students learn about redundant arrays of inexpensive disks and the datacenter as a computer.
Here's a list of topics covered in the course:
* Computer architecture
+ Number representation
+ C programming basics
+ C pointers, arrays, and strings
+ Memory management
* RISC-V architecture
+ lw, sw, and decision-making instructions
+ RISC-V procedures
+ Instruction formats
+ Pipelining
* Synchronous digital systems
+ State
+ State machines
+ Combinational logic
+ Finite-state machines
+ Logisim
+ CPU design
* Parallel computing
+ Thread-level parallelism
+ Mapping PL objects to the machine
+ Managing the address space
+ Redundant arrays of inexpensive disks
+ The datacenter as a computer
Sources
Featured Images: pexels.com