====== Course Outline ====== The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed: ===== Week 1 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture1-1.pdf|Course introduction]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture1-2.pdf|Introduction to C]] === Lab === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab1.pdf|Lab Spec]] ===== Week 2 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture2.pdf|Files, Types and Opperators in C]] === Lab === In the lab we will repeat the exercise from week 1. * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab1-sol.c|Lab1 solution]] ===== Week 3 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture3.pdf|Arrays, Pointers and Memory Allocation]] === Lab === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab3.pdf|Lab Spec]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab3.zip|Lab3 solution]] ===== Week 4 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture4.pdf|Structures]] === Lab === This lab is a continuation and extension of [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab3.pdf|lab3]]. You can use the code developed during previous lab session (and are encouraged to do so). * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab4.pdf|Lab Spec]] ===== Week 5 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture5.pdf|Control flow]] === Lab === This lab is a continuation and extension of [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab4.pdf|lab4]]. You can use the code developed during previous lab session (and are encouraged to do so). Your goal is to implement the same behavior you implemented in lab4 (you used multiple dynamically allocated arrays) using a **LINKED LIST**. Your program should allocate memory dynamically and free it at the end. No memory leeks are should appear! Submit your code using the following command ''submit 2031 lab5 lab5.c'' Submission folder will be closed on Friday midnight! ===== Week 6 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture6.pdf|Introduction to UNIX]] === Lab === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab6.pdf|Lab Spec]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab6.c|Solution]] Submit before Friday midnight! ===== Week 7 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lecture7.pdf|UNIX - scripting]] === Labtest 1 === June 17 and June 18 in the lab ===== Week 8 - Midterm ===== June 24 2014 during the lecture ==== Lab ==== Please try to solve [[http://www.eecs.yorku.ca/course_archive/2013-14/F/2031/Labs/Lab2/lab2.html|this question]] Useful tutorials are posted in [[resources]] section ===== Week 9 ===== === Lecture === There is no lecture. **Happy Canada Day!** === Lab === We will use lab to answer all you questions. Also it is a chance to discuss mid-term results. ===== Drop Deadline ===== Last date to drop course without receiving a grade is **July 4 2014** ===== Week 10 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2009-10/S/2031/slides/lecture8.pdf|Unix utilities]] * [[http://www.eecs.yorku.ca/course_archive/2009-10/S/2031/slides/lecture9.pdf|AWK]] === Lab === * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab10.pdf|Spec]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab10.sh|Solution]] ===== Week 11 ===== === Lecture === * [[http://www.eecs.yorku.ca/course_archive/2009-10/S/2031/slides/lecture10.pdf|Shell-advanced]] === Lab === * [[http://www.eecs.yorku.ca/course_archive/2009-10/S/2031/lab/lab_ex9.pdf|Spec]] * [[http://www.eecs.yorku.ca/course_archive/2009-10/S/2031/lab/test.prn|Data]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/sample.awk|Sample]] == Solutions == * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab11.awk|AWK]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/lab11.sh|sh script]] To test your solution with AWK use the following command: ''awk -f lab11.awk test.prn'' **submit your AWK solution using the following command:** ''submit 2031 lab11 lab11.awk'' **NOTE:** Try to do the same thing with grep and other tools in sh **If you have your shell solution use:** ''submit 2031 lab11 lab11.sh'' ===== Week 12 ===== === Lecture === ==== Labtest 2 ==== July 22 and July 23 in the lab == Labtest info == You will be provided with small tasks and asked to write one or two shell scripts and one AWK script. You should review the work from lab and try to write some scripts such as * merging and joining files, * finding certain files in the system (using ls, grep, cut and pipes), * searching for and extracting information from semi-structured files (e.g. removing tags from html file using shell script, finding data in CSV files) * using AWK to process the file and print it in a specified format You will be able to use ''man'' pages during the labtest. Also your submissions will be available to you. __It is closed-book exam.__ You can have a clean sheet of paper and a pen/pencil with you. == Solutions == * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/myAvg.awk|AWK]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/mergeFile.sh|Merge Files]] (this the simpler way that, more complex is following the same scheme that you have in Join Files and modifying the echo accordingly) * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/joinFiles.sh|Join Files]] * [[http://www.eecs.yorku.ca/course_archive/2013-14/S/2031/homeSearch.sh|Search (swap '\.' and 't' to have name ending with t or extension starting with t]] ===== Week 13 ===== ===== Week 13 ===== Review will be held during our last lecture Last day of classes is July 29 2014 * [[http://www.eecs.yorku.ca/course_archive/2009-10/S/2031/slides/lecture12-notes.pdf|Slides]] Skip the slides about testing ===== Final Exam ===== The final test will be held on **Thursday, August 7, 2014** at **9:00 AM** in **LSB 106**