- Sections
- Course Description
- Learning Outcomes
- Instructor
- Course Material and Schedule
- Final Grade Breakdown
- Academic Integrity Code
- University Resources and Policies
Introduction to fundamental concepts and mechanisms of Unix and C programming. UNIX topics include Unix shells, shell variables, file system, and common Unix commands and programming with shell script. C language topics include structs, pointer arithmetic, call-by-value versus call-by- reference, strings, I/O basics, macros and conditional compilation, and program structure. Working with Ubuntu on the secure cloud services platform Amazon Web Services (AWS). Getting familiar with Git and Github to be able to use these tools on team projects.
Having completed this wonderful course, you should be able to:
- Understand the major differences between Windows and UNIX, and work comfortably in either environment.
- Use common UNIX commands to traverse the file system, create and delete files and directories, edit files, change file and directory accessibility, create links, and create and manage user accounts.
- Create simple UNIX commands using pipes and command substitution.
- Compose simple shell scripts to control system processes.
- Understand the main differences between C and Java.
- Develop efficient C programs using the basic data types and statements, functions, prototypes, structs, arrays and pointers.
Sebastián Romero Cruz (They / Them)
I like reading novels, listening and playing music, and watching slice-of-life anime. Nice to meet you.
Office Hours | |
---|---|
sromerocruz@pace.edu | calendly |
CS 271 Fundamentals of Unix and C Programming is a two-credit course and requires two instructional hours per week. These will be administered in the following way:
-
Weekly Lecture Videos: These will be your main source of the course material, and will be released on a weekly basis through YouTube (keep in mind that the videos themselves will be unlisted, so you will need the actual links in order to access them).
-
Lectures Notes: In addition to these videos, I will also post text versions of the material on this repository. You will, thus, get access to all of the code that I write throughout.
You can find both of these below (scheduling is subject to small changes throughout the semester, but we don't anticipate any major changes):
- Week 1: Setting Up, Unix Intro,
gcc
Intro, Hello Worlding - Week 2:
gcc
Usage, Unix/C History, Intro to Shell Scripting - Week 3: Basic Commands, Manual Pages, Standard I/O, Command Piping
- Week 4: File Systems, File Names, Directories, Permissions, Inodes
- Week 5: Shells, Environments, Shell Programming I
- Week 6: Filters,
grep
,egrep
, Regular Expressions,sed
, Shell Programming II - Week 7: Midterm 1
- Week 8: Introduction to C,
char
, Strings,int
,float
, Standard Library - Week 9: Operators, Assignments, Loops, Conditionals
- Week 11: Functions, Parameter Passing, Pointers
- Week 12:
struct
,enum
, Arrays, Array/Pointer Duality - Week 13: Dynamic Storage,
malloc
,calloc
,free
, Memory Leaks - Week 15: External References, Linkage Editing, Static Variables
- Week 16: Final Exam
While this material will mostly be managed here on GitHub, it will also be appropriately linked on Classes, where your grades will also be posted. Speaking of...
Your performance on this course will be assessed the following way:
Course Work | Percent of Final Grade |
---|---|
Homework Assignments | 66.6% |
Midterm Exam | 16.7% |
Final Exam | 16.7% |
Depending on how your overall score on these, your final grade will be calculated through the following percentages:
Rounded % | 0 - 59 | 60 - 69 | 70 - 76 | 77 - 79 | 80 - 82 | 83 - 86 | 87 - 89 | 90 - 93 | 94 - 100 |
Letter Grade | F | D | C | C+ | B- | B | B+ | A- | A |
Homework assignments will be released every two weeks and will be based on the material covered the two weeks prior. This means that you will have about 6 assignments this semester, each accounting for 11.1% of your grade. You work must be submitted through Classes, and absolutely no unexcused late submissions will be accepted. Any potential extension must be approved by me at least 12 hours in advance.
Both exams will be administered through Classes as a "quiz" (i.e. you will be able to find them in the Quizzes
section of Classes). Both exams will be available for you to take for exactly one week. Any topic covered in my lecture videos and notes up until that point is fair game. Note, however, that once you begin the exam, you will only have two hours to finish it, so make sure that you prepare appropriately (i.e. start at least two hours before the end time, make sure you have good wifi, full battery, etc.). Both exams will have two sections:
- Multiple Choice / True or False (70 pts)
- Scripting / Programming (30 pts)
The exams are closed book–your browser will be locked the moment you begin. Classes keeps track of all sorts of activity once you begin the exam, like how long it takes you to answer a question, whether you've switched tabs and for how long, etc.. I can't have eyes everywhere, but please understand that if I see anything glaringly suspicious, you are liable to get a zero on the entire exam.
As this class is being held asynchronously, it is all too easy to fall into the temptation of simply having an AI tool like ChatGPT do all your work for you, and virtually impossible for me to stop you from doing so. However, I would like to give you a fair warning that all of my assignments and exams are run through ChatGPT and other similar tools (such as Copilot) prior to release. When I grade your assignments, the first thing I will do is compare your answer to the AI generated ones. If I find that your solution bears too close a similarity to any of these AI-generate solutions, you will receive a 0 for the assignment.
And don't try doing something silly like changing variable names or adding whitespace–that's the programming equivalent of changing your font size to make an essay look longer. Manage your time well, and do your own work. Your future programmer self will thank you for it.
Students in this course are required to adhere to Pace University's Academic Integrity Code. The Academic Integrity Code supports honesty and ethical conduct in the educational process. It educates students about what constitutes academic misconduct, helps to deter cheating and plagiarism, and provides a procedure for handling cases of academic misconduct. Students are expected to be familiar with the Code, which can be found under "University Policies" in the Student Handbook.
The University's commitment to equal educational opportunities for students with disabilities includes providing reasonable accommodations for the needs of students with disabilities. To request a reasonable accommodation for a qualified disability a student with a disability must self-identify and register with Student Accessibility Services for his or her campus. No one, including faculty, is authorized to evaluate the need for or grant a request for an accommodation except Student Accessibility Services. Moreover, no one, including faculty, is authorized to contact Student Accessibility Services on behalf of a student. For further information, please see the Resources for Students with Disabilities page.
- List of all Pace Information Technology Services.
- For assistance with a technological concern (Classes, Internet, Computer, etc.), contact the Pace Helpdesk at 914-773-3648 or create a help desk ticket.
Pace endorses the following statement on software and intellectual rights distributed by EDUCAUSE, the non-profit consortium of colleges and universities, committed to the use and management of information technology in higher education. The statement reads:
Respect for intellectual labor and creativity is vital to academic discourse and enterprise. This principle applies to work of all authors and publishers in all media. It encompasses respect for the right to acknowledgment, right to privacy and right to determine the form, manner and terms of publication and distribution.
Because electronic information is volatile and easily reproduced, respect for the work and personal expression of others is especially critical in computer environments. Violations of authorial integrity, including plagiarism, invasion of privacy, unauthorized access and trade secret and copyright violations, may be grounds for sanctions against members of the academic community.
Pace’s appropriate use policy applies to recordings of classroom instruction and digital artifacts created by faculty and students.
Pace University is committed to providing a safe environment for every member of its community and to ensuring that no student, faculty or staff member is excluded from participation in or denied the benefits of any University program or ac:vity on the basis of sex. Accordingly, the University prohibits the following forms of Sex-Based Misconduct: sexual assault, sexual harassment, gender-based harassment, da:ng violence, domes:c violence, sexual exploitation and stalking.
Instructors are a non-confidential resource and have an obligation to report any information about sexual assault with Ms. Lisa Miles, Executive Director of Institutional Equity and Title IX Coordinator (163 Williams Street, Room 1017, 212-346-1310, amiles@pace.edu). The Title IX/Affirmative Action Office is responsible for investigating violations of the sexual misconduct policy. For more information about the Pace University sexual misconduct policy, see the Sex-Based Misconduct Policy and Procedure (PDF).
Members of the University community who believe that they have been subjected to Sex-Based Misconduct are encouraged to report such incidents to the University and, where applicable, to local law enforcement. Confidential resources include the University Counseling Centers, Offices of Sexual and Interpersonal Wellness and University Healthcare. Contact information for those offices may be found in the self-care section below.
Your academic success in this course and throughout your college career depends heavily on your personal health and well-being. Stress is a common part of the college experience, and it often can be compounded by unexpected life changes outside the classroom. The Pace Community strongly encourages you to take care of yourself throughout the term, before the demands of midterms and finals reach their peak. Please feel free to talk with me about any difficulty you may be having that may impact your performance in this course as soon as it occurs and before it becomes unmanageable. Please know there are a number of other support services on campus that stand ready to assist you. I strongly encourage you to contact them when needed.
Department | Pleasantville | New York City |
---|---|---|
Counseling Center | 914-773-3710 | 212-346-1526 |
Dean for Students Office | 914-773-3351 | 212-346-1306 |
Health Care Unit | 914-773-3760 | 212-346-1600 |
Residential Life | 914-923-2791 | 212-346-1295 |
Student Development and Campus Activities | 914-773-3861 | 212-346-1590 |
Office of Multicultural Affairs & Diversity | 914-773-3775 | 212-346-1563 |
Sexual Assault Prevention & Education | 914-597-8783 | 212-346-1931 |
Academic Advisement | ||
---|---|---|
Advising Center For Exploring Majors | 914-773-3847 | 212-346-1798 |
College of Health Professions | 914-773-3961 | 914-773-3552 |
Dyson College | 914-773-3781 | 212-346-1518 |
International Student / Scholars | 914-773-3425 | 212-346-1368 |
Lubin School of Business | 914-773-3531 | 212-618-6550 |
Pforzheimer Honors College | 914-773-3941 | 212-346-1697 |
Seidenberg School | 914-773-3254 | 212-346-1864 |
Studying Abroad | 914-773-3447 | 212-346-1368 |