ECE434: Introduction to Computer Systems
my wechat:Yooo932851
Don't hesitate to contact me
Course Overview (1)
Goals:
Understanding of OS and the OS/architecture interface/interaction
Prerequisites:
14:332:331 (Computer Architecture and Assembly language)
14:332:351 (Data Structures and Algorithms)
Good familiarity with C and Linux (or be willing to gain such familiarity)
What to expect:
We will cover core concepts and issues in lectures (aim for roughly 7 Chapters in your official textbook: SGG -- if time permits).
3-5 programming assignments (in groups)
3-5 homework assignments (in groups)
1-2 Group Presentations (approx.)
2 Midterms (NO FINAL EXAM)
Course Overview (2)
What to expect (more info):
We will cover core concepts and issues in lectures (aim for roughly 7 Chapters in your official textbook: SGG --- if time permits).
3-4 programming assignments (in groups)
3-4 homework assignments (in groups)
1-2 Group Presentations (approx.) on: researching and digging further on concepts in chapters instructed, on state-of-the art topics (current development), reviews, hardware/software analysis and comparison, and more …
2 Midterms (NO FINAL EXAM)
A number of 30 minute quizzes (pre-announced)
A number of in class activities
In class group and individual activities:
In-class problem-solving OR questions-answers (with rewards to individuals or groups)
Quizz (multiple choice or open-ended) question in class – statistics-interpretation on the fly
Useful Facts (1)
Fact no 1: ECE Intro to Comp Sys vs. CS Operating Systems:
Not the same course and should not be the same course
There may be overlap in a number of sections, even in textbook and a portion of PPTs, BUT there is aBIG DIFFERENCE in: courseobjective, courseexpectations, courseorientation.
As ECE is different from CS, so is the purpose of teaching this course. Those who have taken it with CS, you will find that in ECE it is taught differently this semester.
There have been related changes in the ECE Curriculum since Fall 2019.
Fact no 2: The programming assignments may take some amount of time (depending on your familiarity with C and Linux)!
Don’t take this course if you are very unfamiliar with programming.
You need good familiarity with at least one other programming language to be able to effectively catch up with C and learn LINUX.
Useful Facts (2)
Fact no 3: The class has 2 TAs and max. 2 graders as supporting staff. Class size may get: ~ 220 students.
We all need to learn to be very practical and efficient in our communications
Cheating
Borrowing code from github is considered CHEATing
Textbook and Topics
Silberschatz, Galvin, and Gagne. Operating System Concepts. John Wiley & Sons.
Reading assignments based off of 9th and 10th edition. Any of 6th, 7th, or 8th edition should be ok
Your favorite C book
Topics
Processes and threads
Processor and Thread Synchronization (a lot of emphasis here)
Processor scheduling
Memory Management
Virtual memory
File systems (if time allows)
Grading (before update)
Rough guideline (approximately – depending on how many assignments we turn out to complete).
2 Midterms: 30-40%
Projects: 21-30% (depends on the number issued ***)
Presentations: 5-8% (depends on the number issued)
Homework: 12-18% (depends on the number issued ***)
Quizzes (announced) &Class activity drills (unannounced):
22-27% (depending on how many will be issued***)
*** special circumstances because of remote instruction this semester.
This is all, but please read the next page:
Grading (2)
Participation: important for assimilating the material, while contributing towards the effort to deliver a lecture that is clear for all, intellectually fulfilling and challenging.
Participation to questions and discussion in class, will serve as (extra) credit for you.
However, during some lectures there may be certain spontaneous activity drills: problem-solving questions, or open-ended questions, that will be marked separately and registered in canvas right after.
Presentations: There will be 1-2 groups presentations this semester on a number of representative topics for this course. If time permits, the top 3 (approx) presentations every time, and these groups of students will present to the class. Groups that are selected to present will receive extra credit.
Grading (3)
Exams Grading Insight
Your first quiz will have lower weight than the rest so that you get familiarity with the course, the instructor and my teaching style.
Exams Makeup Policy
Makeups only for the midterms can be accepted only for university sanctioned reasons. But, to be fair to the rest of the students makeups will be on different problems.
There will be no make-up for the quizzes and activity drills. If you miss a few for any reason, this is fine, you will still have enough opportunities. The more you end up doing, the better. But you are responsible for making decisions on how to keep up with the lectures and how to efficiently distribute your workload.
Participation in class
Answering questions, participating in discussions, short drills in class is not only a plus… it may result in considerable credit for you. Game Rules: described in
syllabus and will be discussed later in class with more details.
Exams Schedule (1) (approximate)
Final Presentations Slots (tentative): Tue May 9th, 1.30-3.00pm.
Midterm 1: Most likely right before Spring Break: March 6 (Mon),
March 8 (Wed) or right after: March 22 (Wed)
The final decision will be made upon how much we have progressed with the material.
Spring Break 2022: Sat Mar 11 – March 19
Midterm 2: Preferably close to end of Classes, after the CAPSTONE
projects venue. But it could be the case that it will be held on the official
departmental slot for finals: Tue 05-09 at 12.00pm (it will take 1h30 mins).
Last Day to Withdraw from an Individual class with W: Monday, April 3, 5.00 pm
Exams Schedule (2) (approximate)
Exams/Quizzes: TBA, but most likely when we are done with major chapters:
e.g., processes and system calls, then threads introduction, then threads
synchronization, memory, etc (unless there is a midterm that coincides).
Last Day of Lectures (officially): Monday May 1st
Remember: Occasionally I will try to set up a few recitations – most likely remote
asynchronous – or, towards the end of lectures on a time that is convenient for the
majority of the class.
Presentation Assignments
Presentation assignments on various OS topics
Shell & system call (Linux kernel), Processes, Threads package, Multi-threaded
servers, Thread Synchro, Thread Scheduler, Physical vs Virtual Memory, File
System, State-of-the art topics, CPU specs then and now), GPU specs (then and
now), and freedom to select your own topic of interest (based on the class material
of course), presenting state-of-the art or seminal conference papers.
Goals
Learn to dig deeper on complex concepts, work on your programming skills, learn how to do
unsupervised research, and learn how to organize thoughts in concrete output
Work and Practice on your presentation skills (use Rubrics issued)
Learn how to be a great team player.
Presentation assignments must be submitted via Canvas
We will NOT accept any other form (in particular, NO EMAIL)
Late hand-ins may be accepted but with late penalty
Programming Assignments
3-4 programming assignments (tentative)
Shell & system call (Linux kernel)
Partial threads package & multi-threaded server and/or Thread Synchro
Thread Scheduler or Thread Synchro or Physical vs Virtual Memory or File
system (Linux kernel)
Goals
Improve design, implementation, and debugging skills
Learn to read and understand existing code
Learn the internals of an actual operating system
Programming assignments must be submitted via Canvas
We will NOT accept any other form (in particular, NO EMAIL)
Late hand-ins may be accepted but with late penalty that adds up on a daily
basis.
Programming Tools
Emacs
Compiler: cc (g++, gcc)
Project build: make (gmake)
Debugger: gdb, ddd – front end for debugger
共有 0 条评论