Skip to content
@bucs580u

Binghamton University CS580U

Classroom Organization for CS580U - Programming Systems and Tools

CS 580U: Programming Systems and Tools

An unofficial markdown version of the syllabus is available here.

🛈 Description

Programming Systems and Tools is a review of programming concepts, programming environments, debugging tools, and software engineering within a team including version control.

Purpose

The purpose of this course is to prepare students who do not have C programming experience to handle the coursework for a graduate degree in computer science. The target audience is a student who has a background programming in one or more general purpose programming languages other than C (e.g. Python, Java, Rust, Swift, Objective C, etc.). This course makes no assumptions about pre-existing knowledge other than that you understand the high level structure and interpretation of computer programs (e.g. syntax, structure, control flow, and data models).

Learning Objectives

Upon successful completion of this course, you will be able to:

  • Understand the C programming language, to include syntax and idioms.
  • Utilize the GCC compilation toolchain including the C preprocessor and the ld linker
  • Employ debugging tools such as GDB and Valgrind, and testing frameworks such as CUnit to produce efficient, error-free code.
  • Perform collaborative versioning control using Git. Explore bug tracking, software feature requests, task management, and continuous integration using Github.
  • Master data structures and algorithms needed for core courses such as computer architecture (CS 520) and operating systems (CS 550).

🕮 Bibliography

Required

  • The C Programming Language, Second Edition, Brian Kernighan and Dennis Ritchie (1988). ISBN: 978-0131103627

Supplemental

  • The Art of Debugging with GDB, DDD, and Eclipse, Norman Matloff and Peter Jay Salzman (2008). ISBN: 978-1593271749
  • Programming in C, Fourth Edition, Stephen Kochan (2015). ISBN: 978-0321776419
  • Understanding and Using C Pointers, Richard Reese (2013). ISBN: 978-1449344184

🯄 Frequently Asked Questions

  • I don't speak C, should I take this course? Yes! Other courses like CS 575: Programming Languages and CS 550: Operating Systems presume that you can speak C proficiently. If you can't, the coursework is difficult to complete.
  • I don't speak any general purpose languages, should I take this course? I won't say no, but I will say that your undergraduate degree probably didn't prepare you for a graduate degree in computer science. Talk to the graduate director whether you should re-classify into the Master of Science in Information Sciences (MSIS) program instead.
  • I do speak C, should I take this course? Depends. On one hand, if you're taking it for an easy "A", you're probably better served by moving on to CS 575. Taking this course might delay taking other core courses and therefore hinder you if you plan to take a semester for an internship in your second year. On the other hand, if it's been a really long time since you programmed in C (e.g. returning or professional students) and honestly could use a refresher, you may find this course particularly helpful.

Pinned Loading

  1. .github .github Public

    ✨special ✨ repository hosting the organization profile

Repositories

Showing 3 of 3 repositories
  • sorting Public

    Implement sorting algorithms, then analyze their performance with benchmarking

    bucs580u/sorting’s past year of commit activity
    C 0 Unlicense 0 0 0 Updated Apr 26, 2024
  • .github Public

    ✨special ✨ repository hosting the organization profile

    bucs580u/.github’s past year of commit activity
    0 MIT 0 0 0 Updated Jan 12, 2024
  • fuzzing Public Forked from BenH11235/libtiff-fuzzing-lab

    The Blitz Tutorial Lab on Fuzzing with AFL++

    bucs580u/fuzzing’s past year of commit activity
    C 0 GPL-3.0 2 0 0 Updated Mar 5, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…