CS250:
Foundations of Computer Systems

red-line
[Schedule] [Assignments] [Infospaces] [Grading] [Syllabus]

[Canvas]

[Home]

Syllabus

Prerequisites Professor
 
  1. CS 163 or CS 164 with a C or higher
  2. Concurrent Enrollment in CS 165
  Shrideep Pallickara
Office: Room 364, Computer Science
Office Hours:
1:00-2:00 pm Friday
E-mail: compsci_cs250 {aT} colostate.edu
(with the obvious change)
Tel: 970.492.4209


Teaching Assistants
Office Hours in CSB 120 and Teams
E-mail: compsci_cs250{aT} colostate.edu

Graduate Teaching Assistants
Paige Hansen

Yanye Luther

Santoshkumar Tongli


Undergraduate Teaching Assistants
Emily Cosgriff

Omar Soliman

Readings and Texts:

There is no required text for thes course. Readings will be based on the following recommended texts. I will only test on meterials that I cover in class.

[NS] The Elements of Computing Systems, second edition: Building a Modern Computer from First Principles. 2nd Edition. Noam Nisan and Shimon Schocken. ISBN-10/ ISBN-13: ‎ 0262539802 /‎ 978-0262539807. MIT Press.
[MJ]
How Computers Really Work: A Hands-On Guide to the Inner Workings of the Machine. Matthew Justice. ISBN-10/ISBN-13 ‏ : ‎ 1718500661 / ‎ 978-1718500662. No Starch Press.
[JS] The Secret Life of Programs: Understand Computers -- Craft Better Code. Jonathan E. Steinhart.
ISBN-10/ ISBN-13‏ : ‎ 1593279701 / ‎ 978-1593279707. No Starch Press.
[RN] Crafting Interpreters. Robert Nystrom. ISBN-10/ ISBN-13   ‏ : ‎ 0990582930 /‎ 978-0990582939.
Genever Benning.
[PD] Computer Networks: A Systems Approach. Larry Peterson and Bruce Davie. 4th edition. Morgan Kaufmann. ISBN: 978-0-12-370548-8.
[MK] Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. Martin Kleppmann. ISBN-10/ ISBN-13  ‏: ‎ 1449373321 / ‎ 978-1449373320. O'Reilly Media
[PH] Computer Organization and Design MIPS Edition: The Hardware/Software Interface. 5th Edition. David A. Patterson and John L. Hennessy.  ISBN-10/ ISBN-13  0124077269/ 978-0124077263. Morgan Kaufmann.
[RR] Unix Systems Programming. Kay Robbins & Steve Robbins, 2nd edition. Prentice Hall. ISBN: 978-0-13-042411-2.
[SGG] Operating Systems Concepts. Avi Silberschatz, Peter Galvin, Greg Gagne. 8th edition. John Wiley & Sons, Inc. ISBN-13: 978-0-470-12872-5.




List of Topics

1. Elements of Computer Systems
  CPUs, the stored program concept, Turing Machine, the Harvard architecture, and the vonNeumann architrecture.
  Moore’s Law and Dennard Scaling,
2. All things Boolean
  Boolean Logic, Boolean algebra, the fundamental theorem of logic design and the expressive power of Nand gates.
  Machine Language.
3. The Memory subsystem & Co-processors:
  Registers, Caches (L1, L2, and L3), and main Memory.
  Speed differential of the memory hierarchy,
  Co-processors: GPUs (Graphics Processing Units)
4. Communications
  (a) Data encoding schemes
(b) Basic Networking: IP (v4 and v6), UDP, TCP (flow control and congestion)
(c) BGP and DNS systems.
5. Storage Systems
  (a) Contrasting file systems and databases.
  (b) Deficiencies of in-memory data structures for on-disk accesses. Data structures for storage systems: B+-Trees.
  (c) Log structured storage systems: LSMs (log structured merge) and SSTables (sorted strings)
6. Scalable Computing Frameworks
  Parallel vs Distributed Computing Systems
7. Future Gazing: Computing Systems on the Horizon
  Neuromorphic Computing Systems





Late and Makeup Policy
Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, family emergency). Students must consult with the Professor as soon as possible, preferably before the start of the exam. Course examination dates are listed on the schedule page; be aware of them and plan accordingly.

Quizzes: There will be several quizzes. No make-ups will be given for missed quizzes. We will be dropping two of your lowest scores. Scores for quizzes that were missed will be zero.

All assignments are due at 5:00 PM on the due date. There is a late penalty of 7.5% per-day for up to a maximum of 2 days. All assignments will be posted at least 2 weeks prior to its due date. We will have a mix of both written and programming assignments. All assignments will be posted on the assignments page. All assignments should be submitted using Canvas.




Fall 2022 COVID Information
Important information for students: All students are expected and required to report any COVID-19 symptoms to the university immediately, as well as exposures or positive tests from a non-CSU testing location. 

If you suspect you have symptoms, or if you know you have been exposed to a positive person or have tested positive for COVID, you are required to fill out the COVID Reporter (https://covid.colostate.edu/reporter/). If you know or believe you have been exposed, including living with someone known to be COVID positive, or are symptomatic, it is important for the health of yourself and others that you complete the online COVID Reporter. Do not ask your instructor to report for you. If you do not have internet access to fill out the online COVID-19 Reporter, please call (970) 491-4600. You may also report concerns in your academic or living spaces regarding COVID exposures through the COVID Reporter. You will not be penalized in any way for reporting. When you complete the COVID Reporter for any reason, the CSU Public Health office is notified. Once notified, that office will contact you and, depending upon each situation, will conduct contact tracing, initiate any necessary public health requirements and notify you if you need to take any steps. 

For the latest information about the University’s COVID resources and information, please visit the CSU COVID-19 site: https://covid.colostate.edu/.



Professional Conduct
All students are expected to conduct themselves professionally. We (the instructors and GTAs) assume you are familiar with the policies in the student information sheet for the department and the department conduct code. Additionally, you are computing professionals, albeit perhaps just starting. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.

This course will adhere to the CSU Academic Integrity Policy as found in the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.

Students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it. Academic dishonesty will be dealt with severely. The first instance of cheating will result in negative credit. The second instance will result in a failing grade and other penalties dictated by departmental and university policies.

We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular: 

  • Please turn off the ring on your cell phone. If you are expecting an emergency call, sit near the door and slide out discretely to take it.
  • If at any time the instructor judges that an electronic device is becoming a distraction the student may be asked to to turn it off and put it away.

We require you to follow the guidelines listed below for postings on Canvas:

  • Be professional.
  • Be courteous.
  • Do not post any questions about your grade or any grading issues. Such questions are private communication and must be emailed.
  • Do not post any opinions regarding your graded assignment or any aspect of the course. You will have a chance to submit anonymous reviews at the end of the semester. Email feedback to the instructor regarding the course is acceptable and welcome.
  • The instructor reserves the right to delete postings that do not promote a conducive learning experience for students in the class.



 


Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 2024 Colorado State University