CS 241 Data Organization using C

Similar documents
CS 241 Data Organization. August 21, 2018

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

CSCE 441 Computer Graphics Fall 2018

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

CS 0449 Intro to Systems Software Fall Term: 2181

COSC 115A: Introduction to Web Authoring Fall 2014

CS503 Advanced Programming I CS305 Computer Algorithms I

COSC 115: Introduction to Web Authoring Fall 2013

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

INFS 2150 (Section A) Fall 2018

AE Computer Programming for Aerospace Engineers

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CS 3030 Scripting Languages Syllabus

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

EECE.2160: ECE Application Programming Spring 2017

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

EECE.2160: ECE Application Programming Spring 2019

ESET 349 Microcontroller Architecture, Fall 2018

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

Gerlinde Brady Phone: Office Hours: see Web at:

ISM 324: Information Systems Security Spring 2014

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

CPSC 2380 Data Structures and Algorithms

Introduction to Programming System Design CSCI 455x (4 Units)

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CS 375 UNIX System Programming Spring 2014 Syllabus

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

Computer Science Department

San José State University Department of Computer Science CS166, Information Security, Section 1, Fall, 2018

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

Web Programming Fall 2011

INF 315E Introduction to Databases School of Information Fall 2015

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

ECE Object-Oriented Programming using C++ and Java

CS157a Fall 2018 Sec3 Home Page/Syllabus

Introduction to Computer Systems

ITSC 1319 INTERNET/WEB PAGE DEVELOPMENT SYLLABUS

You must pass the final exam to pass the course.

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid)

Introduction to Computer Systems

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

Object Oriented Programming Using C++

Syllabus of ENPM 691: Secure Programming in C

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

MGMT 4336 Networks & Data Communication Section D10

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

Operating Systems, Spring 2015 Course Syllabus

Course Description. This course combines semesters three and four of the Cisco Networking Academy CCNA

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

Instructor: Anna Miller

CISC 3130 Data Structures Spring 2018

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Course Title: Computer Networking 2. Course Section: CNS (Winter 2018) FORMAT: Face to Face

ECE573 Introduction to Compilers & Translators

CSE 504: Compiler Design

CSCE 206: Structured Programming in C

Oklahoma State University Oklahoma City ITD 1113: Windows Expert User Syllabus Fall, 2014

Updated: 2/14/2017 Page 1 of 6

CS 211 Programming I for Engineers

Linear Algebra Math 203 section 003 Fall 2018

Computer Science 1321 Course Syllabus

Network Fundamentals and Design Fall Semester 2014

Compilers. Computer Science 431

CSc 2310 Principles of Programming (Java) Jyoti Islam

Syllabus. Computer Science Information Technology 975. Information Storage and Management for Computer Networks

CS 3270 Mobile Development for Android Syllabus

Network Security

CS 3230 Object Oriented UI Development With Java Syllabus

CIS 3308 Web Application Programming Syllabus

CS/SE 153 Concepts of Compiler Design

CSCI 201L Syllabus Principles of Software Development Spring 2018

Compilers for Modern Architectures Course Syllabus, Spring 2015

COURSE SYLLABUS AND INSTRUCTOR PLAN

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

CS/SE 153 Concepts of Compiler Design

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

INST Database Design and Modeling - Section 0101 Spring Tentative Syllabus

CS 3030 Scripting Languages Syllabus

X

CENTRAL TEXAS COLLEGE INDUSTRIAL TECHNOLOGY DEPARTMENT SYLLABUS FOR GRPH 1459 VECTOR GRAPHICS FOR PRODUCTION SEMESTER HOURS CREDIT: 4

Object-Oriented Programming for Managers

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

ESET 369 Embedded Systems Software, Fall 2017

CS240: Programming in C

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

CENTRAL TEXAS COLLEGE INDUSTRIAL TECHNOLOGY DEPARTMENT SYLLABUS FOR DEMR 1449 DIESEL ENGINES II SEMESTER HOURS CREDIT: 4

ISATI 231: Windows Client (4 credits) Spring 2018 Mon, Tue, Wed, Thu, 13:10-14:40, MTB 105

CS120 Computer Science I. Instructor: Jia Song

CMSC 132: Object-Oriented Programming II. Administrivia

Course and Contact Information. Course Description. Course Objectives

Syllabus -- CIS Computer Maintenance / A+ Certification

CISS 341 Implementing Windows Operating System Security (Online) Fall 2016 Course Code 17339

Transcription:

CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am (and by appointment) Textbook Mandatory: Kernighan, Brian W. & Ritchie, Dennis M. The C Programming Language, 2nd ed., ISBN: 0-13-110362-8. This little book has been around since 1988, so it shouldn t be difficult to find a copy. Optional: Kochan, Stephen G. Programming in C, 4th ed., IBSN: 0-32-177641-0. The other book is the canonical book for the course. If you struggle with C, or are retaking the course, I recommend buying this book as well. Description CS 241 is an introduction to the C Programming language, an introduction to using a command-line interface of the Linux operating system, and an introduction to machine level data organization and memory allocation. Students taking this course should already be familiar with basic concepts of computer programming such as variables, conditional control flow and loops. Developing mastery of these fundamental concepts is one of the goals of CS 241. Students in CS 241 author many C programs. Some lab assignments will be short and relatively simple. Others will be more interesting and touch on a wide range of computer applications including encryption, numerical analysis, databases, artificial intelligence, genetic algorithms and games. Many examples used in this course involve implementation of standard data structures such as linked lists and trees. However, mastery of such data structures is not within the course s domain. The primary goals of CS 241 are for the student to be able to: 1. Read and apply the C syntax covered in the textbook (The C Programming Language by Kernighan and Ritchie). 2. Without a computer, determine the output of C language source code involving triply nested loops, conditional control flow, function calls, pointers, arrays, arithmetic, logical and bit operators, structures and memory allocation. 1

3. Use a Linux command-line environment to manipulate files, and directories, and to edit, compile, run and debug C programs. This includes the use of simple makefiles and a low level debugger such as valgrind. 4. Implement, in C, any given algorithm with a complexity level equivalent to that of quicksort or a doubly linked list with accuracy, efficiency and clarity Grading Your grade will be calculated as follows: 40% Homework Assignments 20% Lab Assignments 30% Exams (midterm and final) 10% Lecture, quizzes, and participation I use standard cutoff points when determining grades (e.g. A is [93-100], A- is [90-93), B+ is [87-90), etc.). I reserve the right to curve grades up, but not down. Assessment of Homework For each homework assignment, you are required to turn in the code you wrote as well as the output of running your code and additional testing cases. Every homework assignment will be graded as follows: 60% Code works on given examples 20% Code follows good CS241 coding style. Code is efficient, readable, and no dead code is included. 20% Student includes additional testing cases that are comprehensive of correct outcome as well as edge cases. Code works on the given test cases. Assessment of Labs There will be two signin sheets for each lab: one at the beginning and the other at the end. Each lab is worth 10 points: 2 points for being on time to lab and signing in. 3 points for staying for the entire time and signing out. 2 points for turning in the assignment. 3 points for completing the assignment correctly. Please coordinate with the lab instructors ahead of time if you wish to change sections. At the end of the semester, the lowest two lab scores will be dropped. 2

Syllabus 1 Weeks Topics Chapter 1-2 Types, Operators, Expressions, Scope, Control Flow, Intro K&R: Chap 1-3 to Functions, and Bit Manipulation. 3-4 Functions and Program Structure K&R: Chap 4 5-6 Pointers, Arrays, Structures, Linked Data Structures K&R: Chap 5-6 7-8 I/O and System Interface K&R: Chap 7-8 9-10 Linear Data Structures, Efficient debugging techniques, Supplemental reading Lists, Strings, and Dynamic Memory Allocation 11-12 Hashing and other efficient data structures Supplemental reading 13-14 Sorting, memory management Supplemental readings 15 Makefiles, Debugging, Profiling and performance tuning, Review Supplemental readings Submitting Assignments All assignments must be in the 241 dropbox on the CS servers to be graded. If the servers are down, then the entire class will recieve an extension. If you are having trouble submitting to the dropbox, see the instructor or one of the TAs before the deadline. It is your responsibility to make sure the correct file is submitted before the deadline. double-check your submissions. Always Assignments are due at 11:59PM. You are permitted to submit multiple times and the most recent on time submission will be the one graded, so feel free to submit partial solutions as you complete milestones. Assignments timestamped after the time will be ignored. This means that if you submit something late and accidentally overwrite a previous submission, your assignment will not be graded. Pay attention to deadlines! Assignments are not always due on the same day of the week. You will generally have at least a week for each one, but some larger assignments may give you more time. Lab Attendance Lab class meets once per week in a computer lab. You are expected to attend. If for some reason you cannot attend your regularly scheduled lab class but are able to attend one of the other lab classes during the same week, then that other lab can count as your lab attendance. NOTE: Before attending a different lab section, check with that sections lab instructor to make sure there is an open space for you. If you feel you need extra help or would simply like to attend lab section in addition to your own, then you are encouraged to do so. First, however, please contact the lab instructor of the extra lab you want to attend to make sure that there is enough space. 1 Exact schedule subject to change. Please consult the online schedule. 3

Cheating and collaboration I encourage students to work together on homework assignments and studying. Collaboration is essential part of science. However, directly copying material from another source is not allowed and will result in an F. Collaborating can look like: Sharing a couple lines of your code on the course Piazza page asking for help. Talking about the coding assignment with classmates. Whiteboarding solutions to the coding assignment with classmates. Looking up small difficulties about your program online, but not for outright solutions. Incorporating a couple lines of C code from a programming help website into your code with a comment that outlines what the code does and includes a link to the website. Reviewing past semester tests that the entire course has access to. Going to an instructor or TA s office hours and showing them your code. Working with a TA or tutor to help you with the course, provided that you write your own code. Cheating can look like: Looking up solutions for the programming assignment online. Asking a classmate to see a copy of their code. Failing to cite any code you did not write or copy from course resources, even if it s just a small amount and not integral to the assignment. Copying code from another person or having someone else write your code. Copying code from the Internet or another source. Reading or attempting to read others submissions on the course dropbox. Attempting to disassemble, decompile, or otherwise reverse engineer compiled example programs. Allowing another person to copy your code. Leaving your code (paper or electronic copies) where others can find it. Using outside help (outside of allowed resources) on a quiz or test. Violation of copyright or license agreements on external libraries. If you use external library code, it is your responsibility to understand and comply with the appropriate copyright and license issues. Violation of the University policy on acceptable computer use. Late Work I expect you to submit your work on time. There are three exceptions to this: 1. You will be given eight lateness coupons that you may spend on homework assignments. Each coupon is good for one 24 hour extension. You may not use more than four on any one assignment. Otherwise, you may stack them as needed. 2. If there are extenuating circumstances such as a serious illness, let me know as soon as possible to work out an accommodation. 3. If theres an unforeseeable incident affecting most students (eg power goes out on campus for hours right before the assignment is due, the servers are down, etc.), then I will provide a reasonable accommodation. 4

Extra Credit I do not grant extra credit on a per-student basis. Computer Science Advisement Whether or not you have been officially admitted to the CS program yet, please consult a Department of Computer Science Undergraduate Advisor with any questions you may have. This is especially important when navigating the prerequisites for certain courses and resolving scheduling issues. More general university advisors are not always familiar with the details of the computer science program. Ethical scholarship and proper use of UNM resources You re responsible for understanding the laws and UNM policies pertaining to everything we do in class. You are expected at all times to comply with all policies and laws, and to behave in an ethical and responsible manner. UNM statement of compliance with ADA Qualified students with disabilities needing appropriate academic adjustments should contact the professor as soon as possible to ensure your needs are met in a timely manner. Students must inform the professor of the disability early in the class so appropriate accommodations can be met. Handouts are available in alternative accessible formats upon request. 5