120 likes | 232 Views
Systems Programming Intro. Course Objectives: #1 RTE’s. סביבת הרצה. Building programs that interact with sophisticated Run-Time Environments (RTE) Key idea: programs are always created relative to other programs Interaction RTEs provide services/resources Programs we create exploit them.
E N D
Course Objectives: #1 RTE’s סביבת הרצה • Building programs that interact with sophisticated Run-Time Environments (RTE) • Key idea: programs are always created relative to other programs • Interaction • RTEs provide services/resources • Programs we create exploit them
Course Objectives: #1 RTE’s (cont’d) • 4 generic services: • Concurrency management • Memory management • Communication and networking • Persistent data management (file organization and database usage with SQL). • Compare RTEs: Unix, Win32 OS, Java Virtual Machine (JVM), Servlets, distributed RTEs.
Course Objectives: #2: Programming • Gaining experience and exposure to good practices for mid-size programming: • Intensive hands-on programming in pairs. • Learn C++ and systematically compare it to Java • Explain how programming languages provide an abstraction layer above RTE • Acquisition of good programming habits: documentation, code metrics verification, design patterns, unit testing, test driven development.
Course Workflow • Website: http://www.cs.bgu.ac.il/~spl111/Main • Experiment and explore: 4 large programming assignments + small HW’s • Lab sessions: run and experiment with code
Contact • Questions regarding an assignment: email to TA in charge • Questions regarding an assignment checking: email to assignment checker. • In e-mail state: name, id, group number
Textbooks and Internet Resources • Concurrent Programming in Java (2nd edition) • Computer Networking (2nd edition) • Effective Java, (2nd edition) • Accelerated C++ • Effective C++ (2nd edition) • More Effective C++ • Effective STL
Course Requirements • Experience programming = heavy workload • Do weekly HW right after practical session • Start working on the assignments as soon as you get them
Course Requirements: Weekly Homeworks • Each practical session will have a small HW assignment. • Immediate hands-on experience with class material • Very simple!!! require only an hour or two • Submission is obligatory.
Course Requirements: Assignments • 4 big programming assignments • Weight of each assignment in final grade 5% • Assignments must be submitted in pairs • Final Exam: weight in final grade is 80%.
Passing Criteria • Submit at least 10 weekly homework • Get grade >= 1 in each of 4 assignments • Final exam grade >= 56. • Overall average grade >= 56.